QueTwo's Blog

thouoghts on telecommunications, programming, education and technology

Monthly Archives: November 2012

State of ColdFusion Platform in 2012

It’s been a long, hard year for anybody who is an Adobe fan.  Especially so if you worked at all on any of Adobe’s “enterprise” products like Flex, ColdFusion, or LiveCycle.  With the disaster that big red threw on us last November, we learned that Flex was killed (then spun on to Apache, which is actually ending up to be awesome), ColdFusion was moved to India, LiveCycle was made “government only”, and Adobe was left to pursue new markets instead of ones they had put energy into before (like HTML5 and Gaming).  This post won’t be about Flex — I help with a monthly newsletter which can give you all the background on that project at the Spoon Foundation. The LiveCycle suite of products died because Adobe felt that anybody not associated with a Fortune 50 company could handle the power it offered.

Anyway, back to ColdFusion.  This is the product I’ve been associated with for the longest (since 1997?), and arguably the one that has made me the most money out of any Adobe technology.  Lets face the facts, ColdFusion, while not dead is in a downward spiral.  Today is not the day when I see new ColdFusion projects being started, and I certainly don’t see new faces in the ColdFusion community.  That’s a problem and a tall-tale sign that the platform is slipping into the “Dated” cycle of technology.  That’s not a bad thing (unless you are looking for a job), it will just be different.

To my surprise, there was an online panel titled “CFML 2012: State of the Platform” this past week.  In my searching of the web, I only found three references to it (two blog posts and a mailing list post).  I’m not sure what the panel exactly talked about (I couldn’t find any reference to it being recorded), but Judith Dinowitz did a blog post about it after.  I’m going to make some assumptions about the conversations based on the summaries since I didn’t attend live, but I do want to interject my 2 cents…

  • ColdFusion is past the point where it needs a “killer app”.  PHP has a few of these (WordPress, Drupal, etc).  Most people simply USE these applications — very few contribute to them.  They are not the reason why they have so many developers.  I have lots of customers who want WordPress on their domain — not because it is PHP.  Consequently, they don’t care that it is written in PHP, they just want that App.  Sure, now they have PHP on their site, but it does not really matter anymore — everybody has PHP available on their site.  ColdFusion already has what I think is a killer app — Mura from Blue River.  It’s the nicest thing that we got, and everybody who does anything with CF should give it a try.
  • Education is great, but it won’t save CFML.  We have years and years of books, blogs, magazines, etc. at people’s disposal that want to learn CF (some of these may be out of print, but you can still find plenty).  A site dedicated to learning CF in a week is cool, but it’s not the savior.  What is the incentive for people to even look at CFML as a language.  No jobs, no demand, nobody cool using it — everybody is just passing it up.  If I were looking to pick up a new language, would I honestly pick CF?  Nope.  Would a website that shows somebody how to use it be beneficial to those who need to learn it for their job?  Yup.
  • A stable platform from Adobe is what is mucking up the place.  Look, I’ve been an Adobe/Macromedia/Allaire CF fan for years and years.  CF10 was a huge disappointment.  Not only was it super buggy out the gate, but when the biggest feature (auto-updates) fails to work a few months after the release, and the fix to it is even harder to find — you know you have a problem.  In all honesty I’ve spent more time debugging weird issues in CF in the past 6 months than writing new features in my apps.  Weird issues like if you accidently point an ORM relationship the wrong way you have to restart the ORM engine in order for it to work again, or if you call .NET library through and the library tries to return a pointer that CF stops processing requests, cause me and others headaches.  The lack of attention to detail for the last 3 releases has been alarming and has caused weird bugs that then need to be reproduced for the end of time because many of the features were done by copy/paste coders rather than engineering the code from scratch.  Who the hell would want to touch a platform if all they see is work-arounds instead of new features?   Ask any system admin about installing CF and the laborious process that can be.

What would I do to change it if I had the community’s support?

  • Have the community switch their primary support to Railo. They care, and they fix bugs.  It’s free*, and when you want their support, they actually support their product.  Gert and their engineers care and they care about the community and the community’s future.  Because the barrier to entry is lower for Railo (and don’t give me the BS that you can develop real applications in CF and then buy it later on.  I’ll show you each application that I’ve written that needed to get around the three IP barrier just to do simple debugging), it will make it easier for people to try.  The trick is getting people to know about it and actually try it.
  • Marketing.  This is the big one.  Right now, we have very few cheerleaders left.  I don’t know very many Adobe employees that are really saying much about CF.  The usual subjects like Forta, Ray Camden made very little noise about CF10 being released when compared to the previous versions.  Heck, Adobe didn’t even do a road-show to the user groups and communities to tout the features of CF10 (they are planning one now — nearly 10 months after the release).   In addition to the dismal marketing effort by Adobe, the other CFML engines have not had much luck with their marketing campaigns.  It’s amazing how many active CFML developers I’ve talked to in the last year that never heard of Railo, let alone have used it.  They are all scared to try it — it’s different — and it’s not Big Red.  That is one thing that the remaining cheerleaders can do to help — help us get the word out of what is out there, how cool it is, and how ‘fun’ it is to use it.
  • More Marketing.  Close your eyes for a moment and think of a “typical” Delphi or Pascal programmer.  What kind of image pops in your head when I ask you to think of a COBOL programmer?  I bet they have beards, work in cubicles, wear ties and probably are closer to retirement than college.  Now think of a Ruby programmer or a Node.JS programmer.  I bet you thought of a hipster working out of a Starbucks or some cool Silicon Valley office overlooking the hills.  This is totally generalizes a whole swath of people (which I hate), but it makes a point.  ColdFusion programmers are not seen as “cool.”  ColdFusion is not seen as “Cool.”  It is not what the cool kids use, and it’s not what the startups use.  No idea how to fix this one.  This has nothing to do with the feature set of the language, how it performs under load or how fast it is to create an application for it.  In fact, it may be those things that CAUSE the “not cool” issue… I still see too many hipsters arguing about how to break JavaScript just so they can win the game of using less semicolons.  It might also have something to do with us constantly arguing with each other about which framework is cooler when the rest of the world is looking to do cool stuff.  Again, we are probably way past where we can fix this one.  Just don’t make me shave my beard.
  • Make CFML easy to use.  Not for us developers.  Make it easy for server admins to use.  There is nothing worse than trying to install CF9 onto Windows Server 2008 (CF9 came out /after/ 2008).  Between getting the server to even run, and run well, you need to go into IIS hell to get it to answer pages properly.  Install CF10 on RHEL with Apache?  Hope you have all weekend. The truth of the matter is installing Adobe’s CF is torturous if it is not your passion.  This is why we get so much resistance from IT people who don’t do development.  Sure, there are blog posts and some tech support documents scattered all over the place on how to do it, but for many people (some of them become decision makers), this is their first experience with the engine.  Railo is not free and clear in this one either — while what they offer is much better, it is still much harder than it needs to be (installing the connectors can be a real pain).   This could be solved by making configurators and wizards to help with the processes.  But the biggest thing is to make sure they work WELL.   What would be even better would be to offer a quick and easy way for developers to package up their apps, all the settings and allow us to make our own installers.  Adobe strictly prohibits this (they don’t OEM CF licenses), and the licenses from Railo seem to avoid the issue all together.  An extension of this idea would be to make the CFML engine packageable so that we could make our own WAR files and be able to just drop them into Tomcat or WebSphere.  You can /kinda/ do it today with a deep understanding of the engine and how Java works.

If you made it this far, well then you managed to make it through my mind-barf.  Am I giving up on CF?  I’ve pretty much given up on Adobe CF.  Unless they turn that ship around, and quick, I don’t see spending thousands of dollars on the frustrations they call a product.  Am I giving up on CFML?  No, but I see my time being spent on many other languages and products.  I’ve been getting better and better with Java, and ActionScript still has a lot of my attention.  Do I see myself dropping everything and picking up the language de-jour some day?  I have paying customers that expect me to get work done, so probably not.

I hope not to offend anybody — and please do leave your comments below.  An open discussion is one I want to see and contribute to.