Blog Projects
Escape Keys
A ColdFusion and Web Development Blog by Tom de Manincor
 
ColdFusion and beyond...Python or Ruby?

I have been doing quite a bit of research to help decide which open source language would be a good choice to work in parallel with CF.

It seems that Ruby and Python are the dominant choices. I am aware of Groovy's popularity amongst the CF community, and it's justified with it's ties to Java.

However, this decision needs to be as isolated as possible from outside dependencies. By that I mean, the most portable. No requirement for a JVM or a specific platform.

I stumbled on to this article To Ruby from Python outlining the differences between the two languages. It looks pretty straight forward, and it should be. It's directly from the Ruby language site.

There's more to this for me than just core language specifics. Most will say to choose a base language then decide on a framework. I can understand that, but I need to keep one factor in mind: learning curve.

Time is of the essence, and from what I have seen, some of the frameworks out there play a large role in development time. Rails is infamous in the Ruby community, but the word on the street is that it's becoming dated. A new kid on the block, rather the 'Chairman of the Board', Sinatra is making quite an impression and gaining lots of traction. Especially, for whipping up a Proof of Concept in a timely manner.

In the Python scene, it's Django that most swear by. After checking out their website and documentation, I was ready to roll with it myself. I kept on digging, just to be sure. It seems the web.py framework is a popular choice for rapid prototyping in Python. I have also heard that dealing with dependencies in Python and distributing development environments for teams is not a pretty process.

I am sitting on the fence right now. Looking for something to push me over one side or the other.

I am reaching out to the CF community, but by no means is it limited to just that realm. I am open to all feedback and suggestions.

Comments:


(Comment Moderation is enabled. Your comment will not appear until approved.)

[Add Comment]

Raymond Camden says:

I'm checking out Python and so far I think it's pretty darn cool.

2/2/11 2:46 PM

Mike Henke says:

Why settle on one :-) Have you checkout the Seven Languages in Seven Weeks book?

2/2/11 3:45 PM

Henry says:

If you wanna stay with JVM, try Groovy. If you want something more different, try Python.

2/2/11 3:47 PM

Craig Kaminsky says:

I've wrestled with this exact question in the past couple of months. I've tinkered with Ruby and really enjoy it (and Rails ... and Sinatra looks pretty darn cool, too) but, ultimately, I've gone with Python. The main reason being that the job market looks slightly better with Python over Ruby ... and Google's 'backing' of Python made it more enticing, too.

2/2/11 3:59 PM

Jeff Self says:

Why not learn both? Python and Ruby are both great languages in their own way. Python is probably easier to pick up and forces you into a certain style. Ruby reminds me more of Perl in the way it allows you a lot of freedom in how you write it. I still prefer Python slightly more but I'm currently working as a Rails developer.

2/2/11 5:24 PM

Chris Hayes says:

For my money node.js is the next "big language". I play with a lot of languages and am a huge believer in Rails and its spinoffs (Cake, ColdBox, Wheels, etc..). However after doing some initial benchmarking with node.js I really think it has great potential. It's javascript running server side on the Chrome V8 engine, and it's blazing fast. Chances are you already know a great deal of Javascript too. I'm not saying it's a widely used language yet, but given all the things it has going for it, it could be.

2/2/11 7:23 PM

John Engstrom says:

I second the notion of nodeJS and server side JS. One language to rule them all...

2/2/11 9:12 PM

Andrea says:

I am using Ruby and Rails since a while now and I have to say I am impressed. Try that out with a complete open mind and you will be surprised on how easy is to use Ruby for making effective dsl.

2/3/11 5:43 AM

Tom de Manincor says:

@Ray, @Craig, @Jeff, @Andrea - After hearing everyones feedback, I don't think I could live with myself, if I choose one and never give the other a chance. So I've decided not to limit myself, but to try to take on both of them in time. I'm going to start with Python for a few months, then move on to Ruby for a few months.

@Mike - I have heard of the Seven Languages in Seven Weeks book, and I have checked out a few of Ben Nadel's posts in response to it. I wanted to spend a little more time on each language and narrow the selection down a bit. I guess with age I have been more conscious of how I spend my brain cells. :)

@Chirs, @John - I was intrigued by nodeJS initially. However, I had been advised it was not enterprise ready and did not scale well. Those same references aren't putting it off, just patiently waiting for it to evolve. It does look like the language of the near future.

@Henry - I'd like to move away from the JVM. For some reason, I have always had this feeling that Java is just too heavy.

2/3/11 1:05 PM

Chris Haubner says:

Tom, as an avid CF user myself, I also struggled with this as a "what to learn next" type of exercise. The position I am in now sort of drove me down the path of Python and I have been loving it. It has been great to be able to do full OO programming to work on an overall solution for a project I am working on currently.

Another thing I have discovered along my way, is that Python is used in may many vendor products as well and allows easier integration/extensibility as well.

I am just venturing into the Python web-app scene and have been looking at Django and Pylons as well. While I liked Pylons, I noticed they are spinning that off in favor of their "Pyramid" framework based on "repoze.bfg" (They apparently merged)

So that said, I may go back to looking at Django with more focus.

That said, I am also dipping into Java and soon to be Rails, so although many will say to use this language or that language, I think it is even better to have a rounded foundation to understand how to use multiple languages and the applicability of them to a particular situation ;)

Just my 2 cents :)

2/22/11 4:50 PM

Matt Reider says:

Funny. Raymond Camden and I used to work on things together back in the day. He was the first response to this thread. I cowrote a book on ColdFusion, and worked for Allaire from 1997 to 2001. I taught ColdFusion courses across the country and wrote much of the curriculum.

I also agree that Python and Ruby are the two new kids on the block. Either is a great choice.

For me it's all about Rails and Ruby. Whoever said Rails is dated is behind the times himself. Rails 3 came out late last year and it is a significant upgrade.

Ruby is fun, it has a lot of support, especially in the cloud where it is used by Amazon, VMWare, and and SalesForce (purchased Heroku). Rails or Sinatra are both awesome for different reasons. I love them both.

2/23/11 9:39 PM

Raymond Camden says:

Wow, Matt, long time no talk. :)

2/24/11 1:49 PM

Jody Brewster says:

Its best to learn both actually. Also check out web2py, it's a pretty incredible alternative to django

12/21/11 12:05 AM

[Add Comment]