ColdFusion is Dead
Adobe just announced ColdFusion 8 and launched a public beta not long ago. But here's a secret they don't want you to know: ColdFusion is dead. Sound a little controversial? Good.
At my day job, I'm currently lobbying to move away from ColdFusion and IIS for the public web site and we've been in a conversation for months now with IT. We know what our ideal server environment is (XServes + Apache + Python + Django) and we know there's a huge difference between what we're able to do now and what we'll be able to do in the future with that setup. But first, a little background.
I've been working with ColdFusion for 7+ years. It was the first server-side language I learned, and I've built many different web applications with it. I started out as very much a rookie programmer and gradually moved to best practices and started leveraging components for as much as possible. From there I quickly learned that ColdFusion didn't have much more to offer, and if I were to continue using it, I would be doomed to code redundant line after redundant line. On top of that, if I wanted any modern libraries that exist in the open-source world, I'd have to reinvent those wheels myself.
No thanks.
In my spare time, I started researching other languages. I tried out PHP for a while, briefly landed on Rails (didn't like what I saw) and, probably a little more than a year ago now, finally discovered Python and Django and haven't looked back since.
ColdFusion Frameworks
But let's get back to our cadaver, ColdFusion. Part of the process we've been going through with IT has had us re-investigate all the various frameworks for ColdFusion. Why frameworks? Well, it was clear to everyone at the table (IT included) that for ColdFusion to be useful, it needed a framework on top of it. Why re-investigate? Rest assured, when I was trying to make the best of ColdFusion I looked for every tool out there that could help.
We gathered a list of requirements for what a framework needed to do based on our own day-to-day process, our clients' needs (both explicitly requested and what we strongly felt were needs), and technical standards and best practices. Then we looked at every significant ColdFusion framework and evaluated them against the list. Here's a list of the frameworks we looked at:
- ModelGlue
- ColdFusion on Wheels
- Reactor (not a full framework, just an ORM)
- Mach II
- Fusebox
Results
Out of 11 requirements, the best framework scored a 3. That was Fusebox which isn't even a consideration (ugliest URLs ever and doesn't care about object-oriented design) and only because it has documentation and active user and developer communities. The others met 1 or 2 requirements and often barely.
Let's set aside Fusebox because it doesn't even qualify as a modern web framework like what we're looking for. Of the rest, none of them have any significant user or developer communities. When were any of these last updated? Only one (Mach II) is even in a remotely finished state.
Conclusion: ColdFusion frameworks are dead. More than that, they never really even existed in any usable state.
But, ColdFusion 8 is coming!
My dear readers, let's face it, ColdFusion 8 is nothing more than a marketing release. They claim it's "highly-anticipated" and I read a few forum posts where some developers were pointing to it as proof that ColdFusion was going to take over the world, but let's look at the features Adobe's specially promoting:
Server monitoring to help identify server bottlenecks, allowing for tuning and improved performance.
The first feature has nothing to do with ease of development. Sound a little odd to anyone else but me?
Step through code debugging in a new Eclipse plug-in debugger.
ColdFusion does need better debugging. But... I don't use Eclipse and many other developers don't. This feature only helps a subset of CF's audience.
Adobe Flex and Ajax features that let ColdFusion power personalized, multimedia-rich applications to enhance users' experiences on the web.
Great, just what we need: more Ajax in the world. Okay, it has its place but I bet this will only encourage more bad decisions on when and how to use Ajax. And let's not forget: Ajax is pretty darn easy to do right now. Integrating it into ColdFusion isn't a huge bonus.
High-quality, dynamically created on-demand multimedia presentations.
I'm sorry, what? Oh yes, that's right. On-demand multimedia presentations are at the top of my wishlist and every other web developer out there... in crazy land! This is not a gap in the marketplace that needs to be filled, this is a marketing feature.
PDF document and form integration for a printable, portable way to intelligently capture and share information.
The last ColdFusion version has PDF capabilities, so what this is doing in addition is unclear. This is arguably the only feature on the list with potential, but it also has great potential to be a dud. The need for something like this is extremely small unless it's implemented brilliantly.
Image creation and manipulation with more than 50 new CFML tags and functions.
Finally! But it doesn't provide anything for those developers that already purchased a capable set of custom tags for image manipulation, and I'd argue that's every serious CF developer. So, great feature for CF to have, but not any sort of step forward in the real world. (Possibly a sad day for Efflare though).
Native support for .NET objects to easily integrate ColdFusion applications with enterprise data and infrastructure services.
Really?! Joy! Oh wait, I don't care about .NET at all. And why should .NET developers care about ColdFusion?
Significant application runtime and server performance improvements.
Finally, a solid improvement. But to sum up here, there's not one feature that eases the development pain or moves ColdFusion forward into being a robust agile development environment. Unless you're drinking the Adobe Kool-Aid (Flex flavor), or wanting to start moving away from .NET.
So how about it, ColdFusion developers? Are you all working in an intense enterprise environment that's locked into ColdFusion, or do you just happen to enjoy writing redundant code?
Full disclosure: I'm intentionally trying to be incendiary with this, genuinely because I want to know who the remaining ColdFusion developers are and why they haven't switched to a better language. My guess is that most work for companies that are heavily invested in ColdFusion, where the value "Don't Fix What Ain't Broken" is plastered across every cubicle and printed on every napkin.
I should also add that CF8 does add welcome features like incrementation through cfset var++. But these are extremely basic features that all decent languages have from the beginning. The fact that it took ColdFusion 8 versions to obtain this simple functionality is just sad. I could have used that years ago, before I learned there are better choices out there.
Recent Posts
-
- Comments and ColdFusion
- 08/29
- 2
Regarding a flaw or two in the comments system (and/or the site's messaging) and the response to my 'ColdFusion is Dead' entry.
-
- The Redesign
- 07/22
- 4
The day I've been working towards for over a year has finally arrived: I have launched a complete redesign of my web site.
-
- Should I Be Worried?
- 05/24
- 0
A disturbing problem with my iMac, and discovering the beauty of a UPS.
-
Overcoming a particularly frustrating problem with TinyMCE and multiple domains/subdomains.
-
- LogoMaid: Brazen Logo Theft
- 03/25
- 0
Doing my part to spread the word about this thieving company.
In Between is the blog of Dave Lowe, a web designer and developer in the Orange County (Southern California) area.
Biola Undergrad
Hey Dave, I couldn't help but notice that you didn't bother sharing the "list of framework requirements" that none of the CF frameworks were able to come close to meeting. I think myself and a few other CF developers would really like to be enlightened as to the handicap we've been working with all these years that for some reason has failed to manifest itself. Could you post those eleven "MUST HAVES" for the rest of us?
Thanks. Doug :0)
Permalink