The Blog

Sep 22, 2007

Abandoning ColdFusion? 

by Maxim Porges @ 12:25 AM | Link | Feedback (7)

Following several discussions at work recently, it looks like we might be abandoning ColdFusion.

I've said it before and I'll say it again: I think ColdFusion is a great front end complement to back end Java. However, at this point in time, I'm not convinced it's the best complement.

Most of the web sites we build at CFI are simple CRUD apps, or front ends to our enterprise applications with either a local database or nothing at all. For all of these scenarios, we get to design our web application databases as we see fit, and pretty much everything is based on Active Record. For something like this, ColdFusion looks seriously long in the tooth compared to frameworks like Rails or Grails.

Besides that, CF is just plain verbose. I was critical in the early days of CFCs due to the tag-based syntax. This didn't really bother us as much when we started writing our back ends in Java, but it has slowly worn away at our web developers to the point where they're ready for something with a terser syntax. You just can't justify the length of a CFC compared with a class from a scripting language.

Wearing my business hat for a second, I've got the option of either upgrading our twelve CF 7 server licenses to CF 8 for around $45,000, or getting a competing platform for zip/ziltch/nada.

So, we've been discussing switching to Groovy on Grails or Ruby on Rails. Since Grails is still figuring out its place in the world, and with Ruby being a pretty awesome language and JRuby being available, we've decided to start with JRuby. If the Rails on JRuby POC is successful, we're not looking at it as a supplement to CF; it will be a wholesale replacement.

On the one hand, I'll be a little sad to see CF go. After all, I built my career on CF development, and was able to combine the language of my profession (CF) with the language of my passion (Java) until we could actually transition our technology environment over to a more Java-centric model. However, like all technologies, CF has to be constantly evaluated against its competition for its merits from a productivity and capability standpoint. Unfortunately, we're guessing that the productivity aspect just won't stand up to the alternatives, especially Rails.

We've got some pretty critical items that the POC needs to address.

1) Will Rails-based apps plug neatly in to our forward-looking enterprise service bus architecture?

2) How does RJS compare to the new Ajax features in CF?

3) Is WAR-based deployment with JRuby going to play well with our current server configuration, or require a substantial rework of our web server infrastructure?

4) Are Ruby builds going to be as seamless with Maven as our CF builds would have been?

5) Is there really more productivity in a Ruby-based environment over a CF-based one?

6) Performance/scalability?

There were a couple more items, but they are on my whiteboard at work. In any event, I'll be blogging on the outcome, so stay posted for more.