That's ColdFusion?
I just realized that I have some catching up to do. At work I spend my days looking after a fairly large number of ColdFusion applications running on ColdFusion 7 and 8. Most of the underlying code in these applications was written back in ColdFusion 5 and subsequently adjusted to work in newer versions, but it's rare that we need to update the framework in a really fundamental way. It does a great job and has lots of little whiskers all over it from where it's been ammended and beaten into doing whatever we need it to do. However, it's all procedural code and scantly makes use of any of the newer features offered by the ColdFusion engine. In my off-hours (if there is such a thing), I'm doing a lot of the same except for other clients who are also running older versions of ColdFusion or have applications originally written for older versions. Then, I read a blog post from Terrence Ryan inviting ColdFusion skeptics to give the platform a try. In the post, he outlines some of the concepts and features that we all know and love about ColdFusion. He also links to some recent CF code on GitHub showing what "modern" ColdFusion can look like (in an attempt to show that not all ColdFusion code has to resemble your favorite pasta).
When I first clicked the link, I began to wonder if it was directed to the wrong place. That doesn't look ANYTHING like what I'm used to seeing ColdFusion code look like. I recall reading that components (ColdFusion's answer to classes in other languages) could now be written entirely in script form (as opposed to the usual tag form), but I had never actually seen one in practice. Furthermore, ColdFusion 9 has made just about every tag available in script form, so we end up with code such as:
var httpObj = New http(); httpObj.setUrl(variables.apiUrl & "translate"); httpObj.addParam(name='v',type='url',value=variables.v); httpObj.addParam(name='q',type='url',value=arguments.q); httpObj.addParam(name='langpair',type='url',value=arguments.from & "|" & arguments.to); var result = httpObj.send();
This was pulled from Ryan's sample on GitHub. Usually this would be done with the CFHTTP and CFHTTPPARAM tags, but this is the first I've seen someone using the script form. It all looks alien to me, which means that I need to take my own advice and re-read the tag and function references (my number one piece of advice to new CF programmers at Annex ten years ago). Hopefully I will be able to find some time to refresh myself and convince my employer or a client or two that an upgrade to ColdFusion 9 is necessary so I can get some hands-on experience. I do have CF9 installed on my laptop for development purposes, but the code all gets deployed to older servers, so I can't use the new features and put them into production just yet. It's one thing to toy around on the local system, and another thing entirely to actually put code into production.
Recent Comments