13
Feb
06

Does Cold Fusion Have a Future?

If you aren’t aware that ColdFusion has a problematic future, then here’s another nail in the coffin in the form of an article entitled ColdFusion Job Opportunities Going Inert

I have nothing against ColdFusion. It might be the greatest thing ever. However, it just hasn’t caught on, and nothing I’ve seen in the past six years tells me that we’re going to see a turnaround. If anything, CF seems to be losing momentum.


Every once in a while my web development firm gets calls from clients who need something done in CF. I’m no longer embarassed to tell them we don’t offer that service. From a business perspective, the platform is dying, at least in my opinion. That doesn’t mean it’s dead, there are still thousands of companies using it, but like the article says, you’ll have a much easier time finding a job as a Java or .NET developer as opposed to CF, and that’s because companies aren’t using it nearly as much.

But why not? Maybe it’s the $1,299 price tag for the Standard Edition or $2,999 for Enterprise. Then again, .NET isn’t exactly cheap to run when you consider buying Windows 2003, SQL Server, and other related software.

Maybe it’s a lack of functionality? But since when have the people writing the checks cared about nuts and bolts functionality as long as it gets the job done, and from what I can see, CF can get the job done in most, if not all cases.

My theory is that we’ve got a textbook Crossing the Chasm situation here. What Geoffrey A. Moore knows that CF developers might not is that there is a technology adoption lifecycle out there, and CF is not crossing the chasm that exists between early adopters (read developers) and mainstream customers (read the business guy cutting the checks). Why is CF not crossing the chasm? Because it takes some momentum to make the leap, and that’s what I believe CF lacks. To put it in other words, they never got enough of a market share with the early adopters, and not having enough of them they couldn’t jump the chasm, and now the early adopters are dropping it so it will ultimately die unless something changes.

What would need to change for CF to be a credible and monetarily successful development platform?

1. Get it used heavily in the schools as early as programming courses are taught.

2. Address concerns by developers that CF is an “amateur’s development platform” compared to Java/.NET/PHP. Either show them that it’s not just for amateurs, or bring it up to snuff with the other languages.

3. Lower prices. Do you think people use Java and PHP just because they’re dedicated to open source and hate Microsoft?

4. Market the thing.

It still might not be enough, but I know for myself and others I talk to, #2 and #3 are major barriers to adopting CF right now. We’ll see what Macromedia/Adobe decides to do. I wouldn’t be all too surprised to see them cancel the effort altogether within the next three years.

Then again, I’m just an outsider. Anyone else have another perspective?

  • http://jeremyvotaw.com Jeremy Votaw

    I USED to LOVE Cold Fusion – talk about a quick development language. CF developers could build apps in days instead of weeks – and weeks instead of months – etc…

    Where Cold Fusion stood a chance was when ASP.NET came into existence. Sure it touted being awesome – but it wasn’t yet – and it was hard to make than transition. So developers reverted back to CF because it was one of the only platforms that really seamlessly integrated with SQL server on a Windows Platform.

    Now that ASP.NET has entered the world of Master Pages, and the VDE is free and easy – a lot more people are jumping ship to the MS platform. And OOP is the future due to portability and international development. I guess that’s why Neumont/Northface failed – I am guessing “The World Is Flat” was not a part of their required reading. (Sad Note: Where will the students go?)

    But how about PHP? In the Corporate world – PHP was a no-no. I lost countless deals because I said the word PHP in a million dollar boardroom. It’s biggest weakness was how it communicated with enterprise database products. Now it’s support is seamless.

    And how about MySQL – with the introduction of foreign keys and other 5.0 functions – this has turned into a REAL player too.

    Cold Fusion exists in too many corporations to cease completely – but yes – it does need to be re-branded… as do a lot of Macromedia Applications.

    My wonder is JSP – I know it exists in a lot of ORACLE apps – but aside from that – who is still using that? And PERL/CGI – I know I thought this was completely dead – but look at Movable Type…

  • http://www.mwi.com Joshua Steimle

    Good comments Jeremy. But isn’t Neumont/Northface mostly MS based? I hired a few of their guys recently and as far as I can figure out they don’t teach anything but MS.

  • http://jeremyvotaw.com Jeremy Votaw

    You are right – they are Java/.NET. I didn’t want to ramble on forever – so my point got confused as I tried to be brief.

    My point was the WORLD is moving to a .NET platform – including our foreign neighbors – who are killing it…Shaun White style.

    What I wanted to convey is that learning to be a cubicle programmer (of any language) in the states is a bad idea for anybody looking to get into the programming world. Which is a big reason behind the Neumont troubles.

  • http://www.mwi.com Joshua Steimle

    Gotcha. That reminds me, I need to write a post one of these days about outsourcing work overseas.

  • http://smoothharold.com Blake

    Adobe really is having a hard time with development platforms altogether. AJAX is showing what intuitive animation and motion should be like on the web that Flash has never been able to do (with exception to video where Flash does a decent job). CF just never did anything for me and never positioned itself as a brand compared to .Net and PHP.

  • http://jeremyvotaw.com Jeremy Votaw

    I had another thought about Cold Fusion – I think we are starting to see more hyrbid uses – For example: myspace.com – runs a fusebox coldfusion app – but is run on top of a .NET backend. Cold Fusion merely controls the presentations and calls to the .NET backend….

  • psa

    i used to work at amazon — amazon is build with perl mason, interfacing with c and c++ for the fulfillment and inventory management software. there are bits and pieces of java, but amazon.com is written in perl mason. perl rocks the hizzo.

    cold fusion really sucks. it’s not considered a “real” language by software engineers. at best, it’s a presentation layer thing, but there are better alternatives. cold fusion will die eventually.

  • http://jeremyvotaw.com/technology/cold-fusion-is-dead/ Jeremy Votaw

    So a few weeks ago I called my contacts at Macromedia/Adobe to get clarification – and yes – Adobe plans on phasing out Cold Fusion.

  • Eddie

    I have been a ColdFusion developer for 7 years now and I have been hearing the same gloom and doom about the death of the platform ever since I took my first class. The same thing happened after the Macromedia merger – everyone said Java, .NET, and LAMP were going to make everyone jump ship.

    Guess what? Not only is CF still breathing, you can now look on the web and see infinitely more mainstream sites using it than you did 5 years ago. Furthermore, there is a lot more that can’t be seen because CF is used extensively in firewall protected Intranet apps. Why? Simply stated, CF works extremely well and you can do more with less.

    I run a dev shop for an organization with nearly 100 small to large scale CF/Fusebox websites and internal applications with only two developers including myself. Having worked with Java, ASP, PHP, and others I just don’t see how it would be possible to maintain millions of lines of code, crank out new apps in days (not weeks), and make real-time improvisational code changes to live apps in any other language without doubling our staff.

    Another reason CF isn’t going anywhere is that most Federal Government agencies have adopted it as their standard dynamic web platform, which accounts for around 40% of CF sales. Based on the sheer volume of existing CFML code I saw as a federal contractor, I can tell you that it would cost millions, possibly billions of dollars in taxpayer money to rewrite all of that code from the ground up in another language. The government has almost single handedly kept Lotus Notes/Domino afloat for the same reason (I’m not saying that’s particularly good thing).

    CF will always be a bit of a red-headed stepchild in the developer community due to it’s unorthodox tag based lanugage syntax and proprietary nature. However, with the addition of cfcomponents, cfscript, XML parsing and countless other enhancements, the platform has evolved with the times and is now more appealing to traditional OOP developers than ever before.

  • Dave

    Eddie writes:

    … I can tell you that it would cost millions, possibly billions of dollars in taxpayer money to rewrite all of that code ..

    Hate to let the cat out of the bag on this, but wasting millions, billions or even trillions of taxpayers’ dollar has never stopped the federal government before.

  • Reinaldo

    I had the chance to work on both ends: Microsoft shops and Cold Fusion shops. I can tell you, even with all the “hassle” of OOP (the main argument against ASP.NET) you get a lot more done, in a more elegant fashion and with more possibilities of code reuse using .NET than using Cold Fusion. The problem with Cold Fusion is exactly the same problem ASP 3.0 had: The mixed between business and presentation layers. The spaghetti code is something you can not avoid in Cold Fusion. It is easy to write, but that same freedom can cost you dearly on the long run. Then enter the “frameworks” Mach-ii, Fusebox. There are nothing but a false sense of OOP or modular designs. They are just ways to control execution with enforcing any concrete design aspect of the application. These “framework” will not prevent that you break their own rules. So, what’s the point of using a “framework” that does not enforce a minimum quality control over the code? I know how strong many people feel for Cold Fusion and how many more feel against Microsoft. But business is business, at the end of the day what development tool helps you to get more things don’t in the best way possible. Career-wise, you don’t want to get stuck with working with a tool that requires 3 times more code to get things done. If that was the case, I would still working on my very first job as a COBOL programmer.

  • http://www.geocities.com/tablizer/oopbad.htm Tom Minderson

    OOP is way overhyped. There is no objective evidence it is better. OO fans cannot even agree what the benefits are! They change their tune every 4 years. The “reuse” claims have fallen out of favor, as has “modeling the real world better”. Now they just tend to talk about “better organized code”, but they cannot for the life of them articulate exactly how they are measuring organization benefits.

    I would like to see a realistic business app that OOP objectively improves. I want to then try my *own* change scenarios on it, not just those exaggerated by OO books. OO books inflate change-scenarios that benefit OO. Real changes are different than they show. Real changes will require one to override 1/3 of a method, for example, showing that their granularity of reuse or extension is all wrong. OO is optimized for textbook change patterns, not real change patterns. OOP works far better on paper than the front line.

  • Kent

    I agree that OOP suffers from the disillusionment that always follows anything that gets overhyped. I also agree that there is no substantial, believable proof that it provides bottom line benefits to an organization (if there is information out there about this then someone please post it). However I don’t see any proof to the contrary either. I view it as more of a paradigm for managing complexity with opportunities for reuse (both objects and designs), modelling, etc. Its success depends on the characteristics of both the problem and the ability of the architect. It obviously doesn’t work all the time.

    As for ColdFusion, there is little that prevents high quality software from being developed with it, but high quality software requires a little bit of thoroughness and that flies in the face of rapid development. I have worked with ColdFusion developers and I do not respect them. While they were prolific in some cases, I always had to work around their failures and corrupt data. Also ColdFusion developers by nature do not want to learn general purpose languages (or else they would realize the could accomplish the same thing for free), so they often refuse to solve problems that require other tools. Good riddance.

  • Some JavaDeveloper

    I use CF, sometimes even for monetary gain. The bottom line is that most CF developers whose work I have had the displeasure of inheriting I believe do not know how to correctly design a good application. The page centric approach is a nightmare in my opinion for large applications and thats all I see the CF guys do is page Centric. They don’t even leverage the J2EE power within Cold Fusion. Duh, Its the poorly skilled script kiddies using it that gives it a bad wrap. For now I make some money with CF then get back to enterprise Java. he he he…

    P.S You can do more than put SQL and functions to execute a query in a .cfc, you can even practice a little OOP with a cfc…hint hint!!! Ever heard of MVC?????

  • Mark G

    Rewind to the year 2000.

    Mr. Client: How long will it take to build this thing?
    PM: If we use ASP, 8000 hours. If we use Cold Fusion, 1500 hours.
    Mr. Client: We are using Cold Fusion.

    Cold Fusion put the ‘rapid’ in rapid development. It was startlingly fast to build data driven web applications in.

    However, all was not well. The extreme ease of creating moderately advanced functionality also invited horrendous coding habits, stuff that an experienced programmer wouldn’t even think of doing. Though there was some solid code being written, most of it was pretty bad, and very very hard to maintain.
    The problem here was with the programmers, not the language.

    It didn’t take long before Mr.Client became sensitized to the longer term cost of crap code, and began to associate that cost with Cold Fusion instead of with crappy programmers.

    Along come the great white horse, the savior of CF, Object Oriented Programming. It promised the world on a silver platter! Your code will be easy to maintain and reusable! Wait a second, any decent programmer already had those didn’t they? Well maybe, but now you can have those but with 3 – 8 times as much code! And never mind that OO CF has never delivered on its promises. Ugly truth is, the Emperor is butt nekkid.

    2008:
    Mr Client: How long will it take to build this thing?
    PM: 8000 hours if we use .NET, 8000 hours if we use OOP ColdFusion.
    Mr. Client: ColdFusion? Doesn’t everyone just use .NET? I see no advantage to ColdFusion. We are going to use .NET.

    In a knee-jerk reaction to the proliferation of truly bad code and architecture early in Cold Fusion’s days, its makers provided more and more ways to use a much more highly structured methodology, trying to make it more idiot proof. The CF Community gobbled it up, and propelled CF down the path of product suicide.

    ColdFusion lost its competitive advantage when everyone got all googley-eyed over the lies of OOP. That is why the language is dying. There is no longer a compelling reason for stakeholders to choose it.

  • Joshua Steimle

    Wow, well put. I should pay people for comments like that…but I won’t.

  • Tom Minderson

    I agree that no magic methodology or paradigm will “fix” bad developers. A lot of the problem is institutional: the market forces don’t favor long-term-oriented design. In fact, accounting principles in general emphasize a roughly 18-month return-on-investment curve, and globalization has pushed stable commodity services offshore. Targeting 18 months is not going to produce code that lasts 18 years. We need to find ways to reward long-term-oriented developers rather than mad copy-and-paste. As far as “page-paged architecture”, most businesses want desktop-like GUI’s and widgets, but the web natively lacks that. What’s needed is a desktop-like GUI open-standard, sort of like Flex/Flash but not proprietary, so that we can make business GUI’s more naturally without worrying about HTTP cycles or HTML limits.

  • Thomas

    This post is almost 4 years old right now.
    What do you guys think about ColdFusion’s future now? Is it still dying?
    I’d really appreciate some your thoughts.
    Thanks.

  • Joshua Steimle

    Well, in the past few years I’ve had one, maybe two clients contact me saying they needed help with existing ColdFusion sites. I don’t think I’ve received any requests for new ColdFusion sites, and I haven’t heard of any sites built in ColdFusion in years. I’m sure somebody is building them somewhere, but these days all I hear about is .NET, php, and ruby. I don’t hear about jsp much anymore either. Man, jsp seemed to be the thing a few years ago, and now where is it? Haven’t heard anything about it in years.

  • Iain

    I read this thread with interest for two reasons:

    1. I am one of those terrible programmers mentioned in the thread
    2. I am trying desperately to move the site(s) that I did build badly in CF to something else so I can get someone else to do it properly for me/my clients.

    This post has been around for a long time yet I see no evidence that Adobe is giving up on ColdFusion. I do find it curious that it’s not being actively marketed. I often wonder what would happen if they just open sourced it.

    A real cf developer once said to me that CF is basically the mother of all Java Tag Libraries. I don’t know how much truth there is to that, but it seems to me that the focus continues to be on streamlining the most common things that bad developers like me need to do.

    There are, however, some shops that are still almost exclusively coldfusion based. I worked as an information architect at a small place that uses Fusebox and Coldfusion for everything they can. They all hate PHP, they’re embracing Flex like it’s the second coming, and they do .NET grudgingly when asked. Shops like that still manage to convince clients to invest in dedicated or VPS hosting with CF licensing. I’m not sure how they manage.

    Another thing to note is that, for a long time, there were no ColdFusion based CMS platforms to speak of, which made it almost invisible when CMS was the shit. I’ve been watching Muracms a bit, to see whether they get any traction.

    Keep on writing the good code to make up for mine.

  • Laxman

    Hi,
    I code both in .net and CF. in India.I do not why any one would use silly ‘run at” server and error page prone ‘web config’ .Net. It is of course from an excellent marketeer like Microsoft.Microsoft has actually screwed up implementation of .Net….just to send an email requires all types of contortions..ugh.

    And for php there is no one backing it as a company commercially-forget Zend.It is obsolete. What else one can use for the web other than CF. Java ..or Sun is dead as a company.
    Adobe does not know it has a jewel as a product.

  • Austin

    I have used cf, php, asp, Jsp and ruby. I still think cf is the best and getting better. The original post is nearly five years old, and cold fusion is still around and getting stronger. It ties well into java, is multi platform, and there is an active open source alternative with railo and what used to be bluedragon. These facts answer the question…the future is bright for cf.

  • Tushar Saxena

    Hi,

    It’s gr8 to use CF for business. I hv worked with both CF and .NET and i think CF is much better for business. It is easy to maintain and robust. In my project, ppl working on so called OOP .NET are always in tension. My application may have bad written code and over the period of 9 years quality of code has got worsen.. but the system still run’s much much more smoother and less error pron…

    It is easy to argue that cf is not up to mark, but in reality CF provide better ROI then others…
    CF rocks and it will rock in future.. n of course.. this artical is 5 yrs. old that is.. it is future where cf is still rocking..

  • http://vitalsoftwarecorporation.comflsenate.gov Americo

    What I like the most about CF is that it is reliable. That means that the documentation is great and the code does what it is supposed to do. Very, very, very stable.

    For those who mistakently think that programming with CF tags is equivalent to slower performance.. wake up and smell the roses. The CF app server at runtime will automatically complile the source code into java bytecode and cache it in memory, plus eliminate programmer’s comments and empty space. DUH

    Guessing at why CF is not gaing popularity… I say that is not due to the CF platform. I will tell you why. By flaunting that CF is “easy to use”, the marketing people shot themselves on the foot. That invites untrained people to dable in CF. CF is not something you can learn in a short time.

    With CF you can definitelly build a cutting-edge website.

    vitalsoftwarecorporation.com
    flsenate.gov

    These are two CF sites that will blow you away. What you don’t see is that both of these organizations have a larger, non-public, website for the internal business processes. Both private and public sites are perfectly integrated.

    Knowing the strenghts and weaknesses of CF makes a big difference. CF is absolutely amazing for server-side development. Read my lips.. JavaBeans. CF is weak on the client-side development. Using AJAX components and/or JQUERY plugins and/or Knockout to handle the font-end development is needed to fill in the gap.

    Definitely use OOP language with a visual IDE and drag and drop compnents for traditional, compiled, installable, windows applications. For the web? I tried .NET, PHP, ASP, JSP, Javascript, etc. CF is my hands-down choice for web development.

    I repeat, CF is not for the novice. You will need to plan the arquitecture or end up with a mess. If you know how to use it, CF is super fast web development.