Thursday, August 25, 2005
Comparing ColdFusion to Ruby on Rails
Michael Buffington has been posting his thoughts on transitioning from CF to Ruby on Rails. I've been enjoying the articles but I think things are getting a bit distorted. It's difficult to make comparisons between a framework+language with a language; they're just not the same things.
There is little if any value in saying that CF is not as productive as RoR. You'd be better off comparing Fusebox or Mach-II or any other popular CF framework. Ruby On Rails looks great but heh if Rails as a framework is so marvellous what is stopping say .NET on Rails, Java On Rails or CF on Rails from emerging.
Is there something specific to Ruby that enables Rails? If not, are other languages adopting the Rails approach? These would be interesting answers.
Posted by modius at 12:38 PM | Permalink
Actually there are Rails ports underway for java, php, perl, python and asp.NET.
Question: Why isn't ColdFusion on this list?
I do agree that it's much fairer comparing Rails to Fusebox, Mach ii, Model Glue etc. I am still learning the language and though Ruby has some nice features I don't think it is inherently more productive to develop in than ColdFusion. Only with the addition of Rails does it become so.
I sincerely believe that a Fusion on Rails would take rapid application development to new heights.
Posted by: Rick Mason on August 25, 2005 01:13 PM
One could easily argue that ColdFusion itself is a framework to java as ROR is to Ruby.
Though I'll admit, 'productive' is a very subjective term.
Posted by: Robby on August 25, 2005 02:57 PM
I'd agree that CF has a lot of features that provide more framework scaffolding than most languages. However, I'd have to disagree on it forming a framework for Java. Sounds like sophisticated sophistry to me.
Posted by: Geoff Bowers on August 25, 2005 03:05 PM
Actually I would argue that Rails does owe much of its balance of power and simplicity to Ruby. Rails is effectively a DSL (Domain Specific Language) that targets database-driven web site development. Ruby's flexible syntax allows Rails to appear like its own language, with the full power of an dynamic OO language under the hood. Folks can try and port Rails to other languages, but it will not be Rails. Languages do more to guide how we express ourselves than we care to admit sometimes.
Posted by: Rich Kilmer on August 25, 2005 10:29 PM
Thanks for the link - I do mention on the "ColdFusion vs. Rails" entry that it's not fair to make the comparison of a framework to a raw language. I think it's fair to make the comment, though I don't agree that I'm making any kind of distortion.
A lot of people have been asking (both in emails to me and through mailing lists and blog entries) if a Fusion on Rails is possible, and I'm of the opinion of maybe.
I say "maybe" with a fair degree of ColdFusion experience under my belt (approaching ten years now), and only some experience with Rails (only half a year now) so keep that in mind.
There are truly some things that Ruby can do that ColdFusion can't. Some things they can both do, but only Ruby is able to do at acceptable speeds. Honestly, I'd love a Fusion on Rails, but only if it were as good as Ruby on Rails, but I just don't think it's possible.
ColdFusion doesn't lend itself to having a robust domain specific language on top of it. Ruby does, and like Rich says, Rails is essentially a DSL on top of Ruby. You can get by without writing much Ruby code at all in Rails and still make a significant application.
There has been some talk of developing ColdFusion as a DSL on top of Ruby to be used within Rails (which I find very interesting), though your controllers and models would always be in Ruby.
Posted by: Michael Buffington on August 26, 2005 02:51 PM
Ruby supports the Template Method pattern without requiring function pointers or specific inheritance paths. Frameworks use the Template Method pattern a lot. That's a reason coding with Ruby on Rails is concise.
Posted by: Thomas L Holaday on September 27, 2005 05:12 AM