I recently had the honor of being a panelist at the August 2011 Bay Area ColdFusion user group, alongside such notables as Sean Corfield and Nolan Erck regarding the topic du jour – is ColdFusion Dead?
The topic was the result of a survey sent to the user group with two choices, and this topic was the clear resounding winner with over 95% of the vote (I can’t remember what the other topic was).
It’s a topic that’s has been gaining a lot of attention over the years, and back in March of 2011 I wrote an article on RIA Rockstars regarding my perspective as a manager and the scarcity of talent.
Here’s a recap of some of my points of view, as well as other perspectives shared by the panelists and audience.
Dying but not dead
I started off by asking is Cobol dead? Last I read, there are still more active lines of Cobol in use than any other language. So technical Cobol is not dead, but it certainly has contracted to a point of a nominal maintenance existence.
Cobol will take awhile to fully go away, this is because it all boils down to a business decision. Many of these Cobol systems were developed at the cost of millions, so does it make good business sense to rewrite a Cobol app that only needs to be in maintenance mode? If it’s humming away, doing whatever it needs to do to support some operations, or maybe it has an old user base that doesn’t care about new stuff (I know of such products), then leaving it alone might be the proper business decision.
It will make sense eventually when the last of the Cobol generation (who are now in their late 50s) is about to die off, and even maintenance mode becomes at risk and the product is revenue generating where the revenue justifies the expense of a rewrite or mission critical. If it’s neither criteria is true, the product dies.
And it appears ColdFusion is headed down this path – the volume of jobs is decreasing, many of us have seen companies that have bit the bullet and rewrote their CF apps in other languages, and anyone who has tried to get a full time job (even in this hot tech market) has struggled to land a good growth opportunity.
Look around you – your team, your user groups, the blogosphere, birds of a feather sessions at Adobe Max, etc… It’s the same crowd – and we’re all aging together. Very few younger developers get into ColdFusion.
And much like Cobol, ColdFusion does have a big enough customer base (particularly with the government institutions) that it will be worth it to justify keeping the technology fresh.
So is ColdFusion dead? No. But at the current trajectory, it is certainly dying.
Chicken and egg
Unless there are a lot of high paying CF jobs, people won’t migrate to CF. And unless there are a lot of skilled CFers, businesses won’t risk starting new projects based on a technology with such a scarce resource pool.
Juniors, Intermediates, and Seniors
From the literally hundreds of developers I’ve interviewed, I’d roughly size the community up as 70% juniors, 25% intermediates, and 5% senior.
Of course, everyone is fighting for those seniors. The types of folks who really understand not just syntax, functions, and deeper aspects of the technology, but also a strong grasp of computer science, and the art of writing software.
Many people have Sr. level titles from purely working for a long time, but when they interview with us they realize how much they don’t know. Though we often use that as an opportunity to coach such candidates during the interview so that they know what steps to take in order to grow their skills.
The problem is ColdFusion is so easy. That’s what we love about it. That’s what I love about it! Everything that is hard in other languages is easy in CF. But there in lies the problem, you can get really far on minimal knowledge, and there’s nothing to really motivate you to progress further.
Some people mentioned they want to learn more, but attending things like conference sessions don’t go deep enough to get a true understanding. And this is where you should leverage the community; one advantageous aspect of the CF community is that everyone is very passionate about helping each other.
And there are a lot of great online resources. E.g. if you want to get into using a framework, check out the ColdBox Connection, you’ll find out everything you need to know to use ColdBox.
If you can’t find them, make them
If you have the time, find smart ambitious folks of other technology backgrounds and train them. ColdFusion is easy to learn, and their skill from other languages adds more strength to your team.
This technique doesn’t work on Sr’s however, by then they’re invested in their chosen technology and are unlikely to switch.
Learn Other Languages
Learning another technology can only strengthen your abilities as a ColdFusion developer. You’ll learn about topics, concepts, and techniques that are a natural part of that language, which you can then apply to ColdFusion.
Secondly, if ColdFusion is dying, it just makes good career sense to have a relevant skill set.
Pricing and open source
The $7K CF Enterprise price tag has been an agonizing issue. In order for enterprise customers to take CF seriously, they psychologically expect a high price tag otherwise it must not be enterprise.
Plus Adobe is a business after all – there’s no point in creating a product if they can’t profit from it.
However wouldn’t it be possible to create a CF Lite version that disables many of the extended features?
A lot of companies and public institutions are being given a mandate of open source only in order to control costs. If that’s the case, just use Railo.
The audience mentioned how on the various discussion forums that the online community can be intimidating and snobbish with folks who have strong chastising opinions.
Another observation (by Sean) was as a community we tend to dig our own holes by isolating ourselves from the broader technology community. E.g. instead of participating in StackOverflow, you have well intention folks wanting to create a ColdFusion version of that site. Which then results in the outside community thinking there’s no CF activity.
Per Nolan, as much as we want Adobe to do something, we have to take ownership of the problem ourselves.
Those of you who know you who want to become real Sr. level developers, you have to invest in yourself and get the training you need to grow – even if you have to pay for it yourself. The cost of $1500 is nothing compare to the return you’ll get.
If you feel the blogosphere only writes about super advanced features, yet you’re still trying to understand the deeper fundamentals – get on the forums and ask for it. Don’t be afraid to have a voice, the community wants you to succeed.
I threw out that I think there’s an opportunity to reposition CF as an integration technology.
Instead of something that competes with Java, .NET, RoR, and PHP – how about something that empowers developers of all such languages? And btw, it just happens to have it’s own language (CFML) as well.
What CF excels at is making stuff easy to do. Whether it’s reading in an excel spreadsheet, hooking into exchange, or interacting with a search engine, it’s all easy in the land of CF.
Running on the JVM, it lends itself to being able to interoperate with other such JVM platforms such as Clojure, Groovy, Java, Scala, Jython, JRuby, etc… Plus CF already supports .NET assemblies, so some early plumbing might be there.
Wrapping it up
At the very end, Sean conducted an informal poll to capture everyone’s take and the result was that people feel neither positive or negative about CF’s future. Everyone is in a wait-and-see mode…