Thoughts on CFML in Railo, ColdFusion and Open BD

by kai on 09/02/2013



Recently I’ve become more involved with the Railo community. A lot of clients (and myself, too) are really impressed with what the Railo team has delivered with version 4 of the Railo server. There’s a lot of interest and inquires from people wanting help to investigate what’d be involved with moving/porting their application from Adobe ColdFusion 9 to Railo 4.

Working on some of those scenarios, I kept looking at language differences and language support for certain features. Obviously there are differences: in language specifications at compile time, but also when it comes to the runtime behavior of certain language features. Before I get onto (some of) these, let’s have a quick look at CFML as a language.

CFML in public perception is mainly driven by Adobe and Adobe ColdFusion. For quite a while, Railo (and Open Blue Dragon) essentially were playing catch-up and trying to be as compatible as possible while bringing new ideas and features to the table. At some point, this resulted in the instantiation of the CFML Advisory Committee with luminaries such as Ben Forta, Sean Corfield, Gert Franz and some others being involved. That lasted for about two years until Adobe left the Committee. There are obviously different accounts of why and what exactly had happened and I don’t want to go into all the details of it at this stage.

Fact is – a language standard for CFML would be useful for the common developer out there. Fact is – different CFML server vendors innovate and develop the language on their own terms and for their own user base. I like coding in script very much nowadays and both Railo and Adobe have recently made some very good progress on that (I’d probably argue that Railo’s implementation is slightly better and more consistent than Adobe’s, but that’s my personal take).

Over time CFML has evolved quite a bit into a language reaching back nearly two decades now. I think when the Railo guys implemented their product they had the freedom to make a lot of really good, clean slate-type choices when it comes to the internal implementation of CFML on their server. There’s no doubt that CFML needs to be modernised further to appeal to new developers who are used to “in” languages such as Ruby, Javascript and others. But how would one do that without massively breaking backwards compatibility? I think Adobe has to seriously consider doing the latter and starting to deprecate “old ways” of doing certain things. An interesting list of ideas has recently been started by Adam Tuttle on Github – CF_CleanUp – mainly focussing on Adobe ColdFusion’s CFML implementation, but worth having a look for anyone dabbling with CFML.

Coming back to language differences in CFML between Railo and Adobe ColdFusion – I’m currently working on a series of blog posts outlining some of the things I found and consider worthwhile to be documented. First post should be out at some point later today (keep in mind that it’s Saturday here in Australia/New Zealand) as I’ve got a few hours in Qantas’ First Class lounge in Sydney to come… 🙂 Stay tuned!

{ 3 comments… read them below or add one }

Jason Sheedy February 9, 2013 at 1:54 pm

Interesting to see how things are playing out for CF these days. There’s a few reasons I moved away, one being language inconsistencies. It’s a shame because I really love the features you get with CF, but as a language / server I think it tries to do too much. I’ve been out of the loop for a few years now.

Would you consider using any other languages/frameworks like Groovy/Spring?

We also moved away from Flex for client development in preference for GWT. I am loving it!!

Reply

admin February 9, 2013 at 2:39 pm

Jason, yeah – I do use other languages occassionally as well. I’ve got a bit into Clojure and have used that for some tiny CF/Clojure integration stuff. I’ve played with Groovy a bit and like it – I think it’s a very nice approach to script the monster that Java has become and I wouldn’t hesitate using it more if a project/client required. Re Spring… well, my mind is very torn about it. It seems to be on a very good way to become a bit like the aforementioned monster in the Java world.

Re Flex – that’s probably a good move. Have you looked into GWT with ExtJS? I think Sencha has done a quite good job with tying those two together.

Reply

Adam Cameron February 13, 2013 at 10:23 pm

I’d be quite keen to see a blog article at some stage that explains your fixation with airport departure lounges… 😉


Adam
(coincidentally sitting in one now, albeit just one for the hoi polloi, not the Special People)

Reply

Cancel reply

Leave a Comment

Previous post:

Next post: