Why learning ColdFusion today is a waste of time.
It seems I managed to stir up the ColdFusion world yesterday on Twitter by responding to a tweet by Peter Elst that read:
free coldfusion technical workshops, shame they're splitting it into separate Dutch and French sessions in Brussels -- http://is.gd/eLpJ
If you follow the link, you'll see that it leads to a blog post by Andrew Shorten from Adobe UK announcing that Adobe is offering free technical workshops around Europe to teach developers ColdFusion 8. That can't be bad, right? I mean free is good, isn't it?
My response, which kicked off a small wave of conversation was:
@peterelst Surely _they_ should be paying people to take Coldfusion classes; why waste time learning a dead-end proprietary technology?
The immediate response of an Adobe CF evangelist was to ask me to refrain from being a "player hater" (Adobe's so street these days, yo) and inform me that "ColdFusion and it's community pioneered the RIA movement", adding that ColdFusion "is paying for Flex/Catalyst" so I shouldn't "piss in my own pool" by dissing ColdFusion.
Man, that's some old-school Spanish Inquisition-style evangelism right there! :)
Before I move on, a little observation and fact checking on that tweet is in order:
ColdFusion did not pioneer the RIA movement, Flash did. Any rich-client technology in ColdFusion comes from Flash/Flex, not the other way around. We were building RIAs with Flash in Flash 5, before Macromedia acquired Allaire, even though the term had not been coined yet.
That's not to say that ColdFusion wasn't revolutionary when it debuted in 1995, thirteen years ago. It greatly simplified the creation of dynamic web sites and was subsequently copied by PHP and ASP. When I was creating my first web application, a pet project to build an online video catalog for my university's library, I wrote the back-end in C as a CGI. Coldfusion would have greatly simplified my task.
Finally, it's irrelevant whether or not ColdFusion sales are paying for Flex and Flash Catalyst development. Adobe needs to remain competitive with the Flash Platform and it's internal accounting is its own business. Coldfusion sales could drop to zero today and Adobe would invest as much if not more in Flash. The two are not linked in any way.
To get back to the topic at hand: why do I think that young web developers should not waste their time learning ColdFusion? Is it dead, dying, or alive and well and living in the enterprise?
Is it dead?
It's no surprise that people have been pronouncing ColdFusion dead for some time now. ComputerWorld famously included it in its list of The top 10 dead (or dying) computer skills.
Dave Lowe makes this point in his blog post from last year:
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.
Is it dying?
It's a matter of perspective. I'm a web developer. As far as consumer-facing web applications go, ColdFusion has zero mind share. It is, effectively, dead. How many new web applications (not enterprise apps/intranet apps) do you know that run on ColdFusion?
It's not modern, it's not exciting, and it's not a skill that can be easily transferred.
To state that ColdFusion is dead, however, would be to deny the huge number of legacy ColdFusion apps in enterprises across the globe. No, it's not dead. But it is living out its last days in a comfortable retirement home.
Coldfusion is alive and well and living in the Enterprise
The first time I encountered ColdFusion, about eight years ago, was when I inherited a ColdFusion-based student registration application at a prestigious law school in the US. It was linked to an MS Access database and would, like clockwork, go down every year on registration day. Not the best start to a relationship but definitely not unheard of in the ColdFusion world where the promise of non-programmers creating applications creates for good marketing but crappy applications.
However, it is good marketing that sells to enterprises and I'm not surprised that Adobe is still selling CF to enterprises today. They'll probably continue to do so. More power to 'em.
Enterprise, however, is not the web.
Why you have better things to learn than ColdFusion
If you're just starting out as a web developer and you'd like to spend the best years of your career maintaining legacy applications in an enterprise then, by all means, learn ColdFusion.
The simple truth is that in the age of Web 2.0/3.0, in the era of cloud and utility computing, the application server is a commodity. A commercial, proprietary app server simply cannot survive in this environment anywhere outside the lethargic, soft-padded walls of the enterprise.
That's why I feel that it's a waste of time for a developer to learn ColdFusion today and I don't see how an impartial party (i.e., without short-term financial self-interests) could, in good faith, advise any young developer differently.
If you want to work on cutting edge Web 2.0/3.0 sites, learn modern development paradigms, deploy applications on the cloud and possibly reach and affect millions if not billions of people, then learn Python or Ruby (and less so PHP), and, of course, JavaScript. Learn Flex and ActionScript. Learn Objective-C, AIR, and QT. More importantly, read up on MVC and understand how frameworks like Django, RoR, and CakePHP work. Learn about graphic design, user experience design, web standards, and accessibility. Those are skills that will not only make you a better designer and developer but that you can reapply and reuse, even if the technologies themselves eventually fall out of favor.
But surely you can learn ColdFusion too, especially if the course is free, right? Sure you can. But there's free and then there's free. The opportunity cost of your learning ColdFusion is the time you will be wasting not learning the relevant skills and technologies of our day. And time, given all that there is to learn and experience out there, is your scarcest resource. When you factor in the opportunity cost, free starts to look rather costly.
What's the big deal?
I'm very passionate about education, and it saddens me to see, for example, that kids in the UK are being taught a computer education curriculum that is almost entirely focussed on teaching them secretarial skills with Microsoft products. It's very important that we give the next generation a modern set of computing skills; these skills are the new literacy. I was lucky enough to have had some great mentors at a time when personal computing was still in its infancy and I want to make sure that my children have the same, if not better, opportunities for achieving literacy in the information age. This is a topic that I will, no doubt, continue to explore in future blog posts and it is an area that I want to get more involved in — at least in the UK — with the aim of actually helping improve the status quo.
Comments
by Brian Kotek on 2009-01-08 15:57:42
by Daryl Teo on 2009-01-08 12:45:26
by Raymond Camden on 2009-01-08 13:03:48
by Justin Carter on 2009-01-08 13:44:18
by KM on 2009-01-11 03:24:21
by Catherine Pope on 2009-01-08 12:00:26
by Rahul on 2009-01-08 13:10:50
by Simon Whatley on 2009-01-08 12:37:54
by Burak T. on 2009-01-08 19:22:37
by Sebastiaan on 2009-01-08 18:31:03
by dave on 2009-01-08 23:04:06
by Ryan on 2009-01-08 15:19:02
by pete on 2009-01-08 13:23:24
by Joshua on 2009-01-08 13:50:16
by Rick Mason on 2009-01-08 16:54:30
by Rick Mason on 2009-01-08 17:03:19
by Stefan Richter on 2009-01-08 14:32:10
by Daniel Gasienica on 2009-01-08 13:14:42
by Mark Aplet on 2009-01-08 16:57:29
by Scott Stroz on 2009-01-08 14:35:02
by Rob Carlson on 2009-01-08 15:02:45
by Simon on 2009-01-08 18:06:20
by Sarah on 2009-01-08 18:11:15
by Brian Rinaldi on 2009-01-08 14:00:21
by Mike Chandler on 2009-01-21 04:19:20
by cfbollocks on 2009-01-08 15:27:22
by barry.b on 2009-01-08 15:30:15
by Scott Stroz on 2009-01-08 19:07:24
by dfguy on 2009-01-08 19:07:50
by Chris H on 2009-01-08 14:03:10
by Jonathan van Zuijlekom on 2009-01-08 17:11:23
by dan on 2009-01-09 00:02:33
by Patrick Tai on 2009-01-09 00:41:49
by pete on 2009-01-09 12:43:21
by Bret on 2009-01-09 13:45:09
by Steve Rittler on 2009-01-08 14:24:49
by Luke on 2009-01-08 18:37:51
by crazysheep on 2009-01-08 16:22:13
by Gov on 2009-01-08 16:22:53
by Henry Ho on 2009-01-09 02:00:41
by Mark Drew on 2009-01-08 15:36:58
by Justin Carter on 2009-01-08 16:18:07
by Kumar on 2009-01-08 16:36:47
by John Farrar on 2009-01-09 15:42:15
by Greg Ferrell on 2009-01-08 18:15:36
by Nicholas on 2009-01-08 14:37:16
by Keith Peters on 2009-01-08 14:45:06
by TJ Downes on 2009-01-08 14:45:54
by Worzel Gummidge on 2009-01-08 14:48:18
by Marwan Narian on 2009-01-08 14:50:15
by Kumar on 2009-01-08 14:56:59
by Adam Haskell on 2009-01-08 14:59:28
by Dan Wilson on 2009-01-08 15:27:11
by Gov on 2009-01-08 16:14:22
by crazysheep on 2009-01-08 16:26:01
by Gov on 2009-01-08 16:30:26
by TK on 2009-01-08 18:47:44
by Brian Meloche on 2009-01-20 08:45:21
by ColdFusion is Dead, or is It? | Peter Elst on 2009-04-03 21:01:17
by Kevin Schmidt on 2009-01-09 16:21:10
by Mark on 2009-01-09 11:26:00
by Adrian J. Moreno on 2009-01-08 15:52:17
by Luca on 2009-01-08 15:52:45
by Sebastiaan on 2009-01-08 16:04:39
by Danny Patterson on 2009-01-08 16:06:00
by Rounding up Last Week on 2009-01-12 19:07:53
by anon on 2009-01-08 15:20:23
by Raymond Camden on 2009-01-08 15:21:22
by Mark Drew on 2009-01-08 15:25:14
by Joe Rinehart on 2009-01-08 17:37:14
by Rounding up Last Week | Padub on 2009-01-17 22:51:13
by The State of ColdFusion | Peter Elst on 2009-01-09 19:15:13
by William from Lagos on 2009-01-09 16:56:24
by Louis Muloka on 2009-01-09 15:35:39
by localToGlobal » Blog Archive » news review -> 2nd week of 2009 on 2009-01-09 13:31:03
by Aral Balkan drop the bomb « cfbollocks on 2009-01-09 13:27:16
by Daryl Teo on 2009-01-08 13:32:09
by Gov on 2009-01-13 15:20:43
by Fluffy the Destroyer on 2009-02-13 01:08:12
by codegecko on 2009-01-20 16:43:47
by Neil Middleton on 2009-01-08 15:30:43
by Erwin Verdonk on 2009-01-09 21:21:38
by ColdFusion - Let’s be honest here | Nate Beck on 2009-01-09 21:53:21
by Alex on 2009-01-09 23:41:09
by Stephen Beatie on 2009-01-10 14:28:26
by Gilles Vandenoostende on 2009-01-08 21:27:43
by Art on 2009-01-08 22:02:15
by dave on 2009-01-08 22:17:39
by cfAdmin on 2009-01-08 22:29:00
by Toad on 2009-01-13 14:16:45
by someone on 2009-04-28 18:25:07
by Ryan McIlmoyl on 2009-02-12 21:25:00
by Seattle Guy on 2009-01-13 23:32:37
by Derek O'Brien on 2009-02-13 13:02:25
by Cliff Rowley on 2009-02-13 13:26:04
by Mark on 2009-03-30 20:40:15
by Gil on 2009-03-17 04:02:18
by Mickey Mouse on 2009-03-17 22:51:21
by Gov on 2009-01-17 18:41:52
by atomi on 2009-02-09 19:33:51
by Brandon Hansen on 2009-02-12 18:44:07
by Steven on 2009-03-03 15:50:20
by Igor Spegosh on 2009-06-09 17:34:30
by cfdeveloper on 2009-04-28 11:51:04
by Kevin Clark on 2009-06-23 10:21:24
by CJM on 2009-09-16 18:57:20
by Edward A. on 2009-12-15 12:21:57
by Abdullah on 2009-09-29 04:53:14
by TobiasBeuving on 2009-09-29 12:27:07
by Edward A. on 2009-12-15 12:30:24
by Bob Toleron on 2010-01-20 04:31:26
by Coldfusion Developer on 2010-02-09 16:50:51
by Russell Youngblood on 2010-01-31 16:17:31
by Miguel Ulloa on 2010-02-12 03:11:44
by Aral on 2010-02-13 13:53:24
by Aral on 2010-02-13 13:55:19
by Marc Chapaux on 2010-03-15 18:21:26
by Aaron Neff on 2010-03-11 13:26:48
by christo on 2010-05-18 03:57:48
by Miguel Ulloa on 2010-05-28 21:40:56
by Miguel Ulloa on 2010-05-26 12:03:43
by John on 2010-06-01 14:13:28
by Miguel Ulloa on 2010-06-06 00:43:18
by slateblue.org » Blog Archive » Scotch on the Rocks 2010 on 2010-05-30 13:29:26
by schlub on 2010-08-03 10:38:53
by Unibands on 2010-09-02 03:37:47
by jondavidjohn on 2011-01-15 04:43:45
by Miguel Ulloa on 2011-05-01 03:59:17
by Cathy Shapiro on 2011-08-17 19:54:24
by IanG on 2011-09-01 19:16:27
by Lukin on 2011-11-23 05:30:14
by jason on 2011-10-05 13:15:50
by kristof polleunis on 2011-09-28 23:04:30
by Miro Hryckowiak on 2011-12-01 09:06:31
by CFDave on 2011-11-02 11:59:51
by Michael on 2012-06-28 05:22:54
by Andy on 2012-06-08 10:03:24