If ColdFusion is dead, it’s Adobe that killed it.
Wednesday, September 15th, 2010
(Or, ‘Controvertial ColdFusion post #34124′)
I’ve been using ColdFusion happily for the last 6 years. I can honestly say that if it weren’t for the ease of learning ColdFusion, and the instant gratification to be gained from rapidly developing apps that interact with databases, I’d have never found my way into backend development.
Like any language however, ColdFusion is not without its problems. We can compare functionality until the proverbial cattle return to their domiciles, but what I’d like to talk about is the culture of elitism that surrounds ColdFusion.
‘Elitism?!’ I hear you cry, ‘But ColdFusion is so easy to pick up, and the community is so friendly and welcoming! That’s hardly elitist, is it?’.
Yes. You’re right… but what I’m concerned with is the difficulty ColdFusion developers face in the environment in which they work. Adobe have done a very good job of making ColdFusion inaccessible to the masses by focussing on enterprise clients, inadvertently turning ColdFusion into quite an exclusive club.
Don’t believe me? Reel off the names of some well known ColdFusion celebrities… Ray Camden, Ben Nadel, Ben Forta, Et al. I’ll bet if you’re a ColdFusion developer, you’ll know who those people are. You’ll have read their blog posts, be aware of projects they’ve done. You’ll probably be able to list 10 more without too much trouble…
Well, you shouldn’t be able to do that – because the list should be huge. If we were talking about PHP, there’d be maybe 5,000 people in that list. In ColdFusion there’s maybe 20.
Let me explain…
I’m a freelance web developer, who happens to favour ColdFusion as my back end language of choice. It should be as simple as deciding which language is right for the task, or which you feel most comfortable using, but with ColdFusion there’s more to consider.
First and foremost, I have to think about hosting the websites I create. If I were a PHP developer, I’d have the pick of pretty much any host you can think of. Hundreds of thousands of web hosting companies the world over and every single one of them offer PHP as standard with all their packages, right? For us ColdFusion developers though, it’s a much tougher choice. We have to find hosting companies that specifically cater to ColdFusion developers. Not an easy task. I’ve had accounts with ColdFusion hosting companies both here and in the US, and in my experience they’ve nearly all been so unreliable as to be detrimental to my business and reputation. It’s an issue we all face and I’ve had numerous conversations with other ColdFusion developers on the subject; finding a reliable ColdFusion hosting company is difficult. It’s a case of getting what you pay for, and a reliable CF host costs far more than a reliable PHP host, because a CF license is expensive for a hosting company to invest in.
CFML Developer = Part time sysadmin
The conclusion most of us come to eventually, is that it’s far easier to host our sites ourselves, getting a dedicated server or VPS with a reliable host, and installing ColdFusion onto it.
Now, aside from the huge cost of a ColdFusion licence, what this means for us is that nearly every ColdFusion developer has to have a sideline as a sysadmin. I’ve learned from experience that being a good sysadmin is a full time job on its own. This means there are a bunch of novice sysadmins out there, running their own servers through necessity – novice sysadmins mean insecure systems. Before you know it, we have ‘ColdFusion is insecure‘ rumours floating about the web. Just what we need.
What this also means is less choice for our clients. With every new client, I have to have the same conversation: “I need to let you know that if you take up my services, we will need to move your site to another hosting company, or host the site on my own servers“. This isn’t so much of a problem for enterprise clients, but at my end of the scale, speaking to small companies with even smaller budgets and a knowledge of how the web works that is even smaller still, these words are strange and daunting and often a dealbreaker.
Most of my clients have never heard of ColdFusion. They’ve never heard of PHP either, but wheras with a PHP developer they could continue to live in blissful ignorance, with a ColdFusion based solution they will quickly learn that ColdFusion requires a hefty licence fee or at least more expensive hosting.
The situation gets worse too, because apparently ColdFusion cannot reliably be run in a shared hosting environment. “What?? That’s ridiculous!!!” Yes it is, and I would never have thought it were it not for a conversation I was having recently with Andy Allan of Fuzzy Orange. (We all know who he is too, right? See? CF… good if you want to be famous, bad if you want an easy life.) All this time I was thinking that most CF hosting companies were complete morons, incapable of offering a reliable service, but in fact it seems that they’re at a disadvantage right from the beginning because CF Enterprise sandboxing has numerous problems that plague the everyday plight of the sysadmin.
Now, it’s my contention that if this is the case, it should be a huge priority for Adobe, but apparently it’s not.
The big picture
ColdFusion is less used than PHP and ASP. That’s a fact. I’ve heard a million arguments about enterprise users and fortune 500 companies, etc. We as a community are constantly battling against the ‘Coldfusion is Dead’ bullshit and frankly, I’m with you guys. It’s very much alive, very much out there and being used all over the place… great, but you can’t deny that PHP is the most widely used back end language.
This has a knock-on effect for us. It makes it more difficult to sell ColdFusion as a solution to clients. It’s easy for our competition to mis-inform. I’ve lost clients to PHP because of higher hosting costs, I’ve even lost a client to an SEO cowboy who claimed that ColdFusion was ‘Bad for SEO’. The fact is that ColdFusion is less known and less used than the free alternatives, and we as a community are constantly trying to raise awareness, spread the word and in many cases, defend our beloved language.
How exactly can we make ColdFusion more prevalent when so few hosting companies offer it as an option? How can we encourage new developers towards CFML, when they’ll also need to learn about how to set up and manage servers in order to use it reliably?
The answer I usually hear is that if there’s enough demand for ColdFusion, then bigger hosting companies will offer it as a service. But that’s a chicken / egg argument. How will the demand grow, unless it’s there as an option for the masses? How many PHP developers began their learning solely because they needed to update or configure a PHP app they were using such as WordPress or PHPBB. Why are there no real CF ‘killer apps’ like WordPress and PHPBB?
The way I see it, CF will remain mostly at enterprise level, behind the scenes, until such time as it comes as standard with many, many more hosting packages. And this won’t happen as long as it’ll cause a support headache for the big hosting companies. We can all argue about the price of CF, but that’s not really the concern for the big hosts, they can get bulk discounts anyway… their problem is that if they offer CF in a shared hosting environment, they will have reliability problems, and will eventually have someone like me announcing to the world that they’re a bunch of useless wankers.
Railo to the rescue!
Sure, I know there are a lot of people out there who will tell me that Railo is the answer to all of this. It’s free, it’s fast, it’s open source and the community are great. I agree on all counts, and indeed I’m now offering reliable hosting to my clients with my own servers running Railo. Brilliant.
But it’s not the answer to everything.
Firstly, Railo has only really come into its own, at least in my opinion, over the last year. About 18 months ago I tried to make the move to Railo and there were just too many bugs and inconsistencies for it to be a viable solution. It simply wasn’t capable of running my apps, or at least not without some serious reworking of a lot of functionality. V3.1.2.001 has changed all that, and it’s now able to handle damn near everything I throw at it – but it still contains bugs. The Railo community are great and bugs, once identified, are fixed quickly – but this means that I as a developer have to spend some of my time testing & reporting. Sometimes I run into a brick wall with something I’m working on, and have to wait for a fix from the Railo team before I can move forward with it. That’s fine, it’s the nature of open source and I’m very happy to be contributing to the project, finding issues in a live real-world environment – but it’s still unpaid man-hours that I wouldn’t have to deal with, were I using Adobe ColdFusion.
Secondly, while there are community members out there doing great work on installer projects, posting tutorials and the like, there’s still a much steeper learning curve in the setup of Railo compared to ColdFusion. What you’re rewarded with is a much faster CFML engine, Railo’s lighting fast compared to ACF, but the point I’ve been making throughout this post rant is that I don’t want to be a sysadmin, I don’t want to have to learn about application servers and web servers, I just want to code bloody CFML!
What’s the answer?
Hell, I don’t know… but it occurs to me that the CF community is fighting a constant war against misinformation, defending CFML to clients and colleagues alike. The community as a whole seems to want to raise awareness of ColdFusion, and if indeed this is the case, then I think Adobe needs to take a serious look at who they’re aiming at.
As Andy pointed out, most of Adobe’s CF customers are enterprise, so they may not see hosting companies as a big sales generator… but it never will be be unless the sandboxing issues are resolved. Meanwhile, it’s people like us who suffer. This isn’t a concern if you’re a CF developer working in a bluechip traded company with a huge IT budget, but if you’re a freelance developer with a love of ColdFusion, this should matter to you and I think it’s time Adobe looked at the big picture – A lack of reliable CF hosts is a barrier to entry, which means less CF developers in the wild, and a harder time for those already out there.