This post is more than 2 years old.
A few days ago, myself, Adam Cameron, and others, were chatting on Twitter about having moved on from ColdFusion, and what's keeping other people from doing the same. I know I've spoken with folks via email who would like to try something new, but aren't sure where to start. One of ColdFusion's strengths is how easy it is to pick up, and certainly it stood out for that quality for many years. However, that ease of use is no longer something ColdFusion can necessarily be proud of. There's numerous platforms now that are just as easy, just as approachable, and far more powerful than ColdFusion. Even more critical, there's far better options in terms of support (both from corporate entites as well as the community) than what you'll see with ColdFusion.
With that being said, Adam created a survey, "CFML usage and migration strategies", that attempts to gather information about just this topic. I'm going to steal another good idea from Adam and share my answers here. You can see his answers on his blog: "Survey: CFML usage and migration strategies"
1. Provide a brief comment about yourself (don't worry about your CFML usage or dev work just yet: this is just about you). Don't worry if you'd rather not give too much detail, that's cool. Note if you mention your name, I might end up sharing it in the context of what you had to say in your other answers.
I'm a 43 year old slightly overweight guy living in Louisiana. I've got a great wife and six (yeah, six) kids.
2. How did you come to be a developer, and are you primarily a developer or is it an adjunct to another role (like a sysop or designer or something like that)?
I've been using computers since I was 10 or so, and entered college in Comp Sci with the idea of becoming either a hacker for the CIA (yeah, seriously) or a game programmer. I then discovered math was hard. Like real hard. This was about the same time the web was launching and I got into that - building web pages and the such. I quickly found that I enjoyed doing server-side stuff with Perl and mainly focused on the back end for the next 20 years or so. For the past ten or so I've focused more on the front-end and now consider myself more a full stack type of person.
I'm not primarily a developer. I'm a developer advocate which means my primary job is to help other developers learn, and get excited, about technology. I love sharing things with other people so this job is exactly where I belong.
3. Summarise your CFML usage timeline (just timeline for this one). Include things like what year you started, when you moved on, if you have. (or what's the time timetable for moving on if it's just planned). Mention versions in this one.
As I said above, I started doing back-end work with Perl. I discovered ColdFusion in 95/96 or so. It was version 3.x. I used CF primarily up until the 9 time frame or so.
I worked on about 6-8 books on ColdFusion, as either a contributing author or main author. I also worked at Allaire for a short time on the team itself.
I started moving to other technologies about 10 years ago. My "go to" back end technology is Node.
4. During that time was it your primary or sole dev language, do you think? Or was it always an adjunct to some other language? How did it fit within the mise en scene of your daily usage? For the purposes of this answer, let's consider "a wee bit of client-side JS and a bunch of HTML & CSS" as a given. Only mention those if they represent a significant part of your work.
I'd say for 90% of my time using CF as my back end tech, it was all I did. I did HTML/JS, but it was a "wee bit". I'd say towards the end, the JS stuff grew rapidly, and was part of the reason I looked more at Node and less at CF. I also began to realize that the front-end could do a lot more than it used to in the past. That also led me away from CF because I simply didn't need all the stuff CF did.
5. Did you work on just in-house code bases for your employer, or did you also work on third party code bases - like open source projects - too.
Both. I did a large amount of open source in ColdFusion. My blog-ware (BlogCFC) was in use by hundreds of users. I built a forum app, a wiki app, a survey app, and more. I also built RIAForge, a site to help Adobe users adopt open source.
6. If you're still primarily a CFML developer... why? That's not a loaded question, and I'm not suggesting that you're wrong for being where you are. It's just good framing information. Don't answer this if you've moved on from CFML: the next question is for you.
I'm supposed to skip this, but I won't. While I don't choose to work with CF anymore when I can, I still do write CF when my clients want me to. So basically, I use it when the client demands it.
7. If you've moved on from CFML: why? Did you just change jobs? Did other languages you were using just seem more appealing? Over time did you find yourself using CFML less and less? Did you actively change because of career-longevity considerations? What language(s) did you move to? Stuff like that.
A few reasons. First, I really felt like I had learned all I could from CF. Not to say I was the best CF developer and knew 100%, I just felt like I had hit the limit in terms of how I could grow.
I started learning Node, and pretty much fell in love. It was much more lightweight, easily to create apps, easier (and a lot cheaper) to deploy. I could reuse my existing JS knowledge and frameworks like Express made it even simpler to use.
The other area I moved into was mobile. I initially began with Flex Mobile, but switched to PhoneGap when Adobe bought them. As I said above, I was doing more and more in the browser, and PhoneGap was a great extension of that.
In both cases, learning, and blogging, on Node and mobile significantly helped my career and helped me get the job I have now.
8. Do (/did) you use primarily or solely ColdFusion; or Lucee or Railo; or some variation of BlueDragon? In what proportions? If you migrated from one to another: why?
I primarily used ColdFusion. Now I only use Lucee.
9. Do (/did) you participate in any CFML-based open source projects? To what degree (like you are the owner or primary committer of the project; or just a single commit; or raised some bugs but never actually coded anything; or wrote some docs, or whatever)?
I think I covered that above. I was pretty big into CF open source stuff. I had 41 projects up on RIAForge (http://blogcfc.riaforge.org/index.cfm?event=page.myprojects&id=15) and - oh - I built RIAForge. ;) (To give credit where credit is due - RIAForge was Ben Forta's idea, and Adobe paid me to build it.)
10. And what about in other languages?
I'm in the Apache Cordova PMC, but my main contribution to it is with docs and helping. I've written a few things in JS I've shared, but not a lot (yet!). I do a lot with the open source LoopBack project as part of my job, but mainly writing/presenting, not slinging code on the project itself.
I want to do more OS in the Node world - but I feel like I'm still a bit too new. :)
11. What is or was - for you - the best feature of CFML which has you going "yeah, that's pretty cool actually". List more than one if you like. Importantly: had you compared similar functionality to how it's done in other languages, or was it just based on liking the CFML feature?
It was really, really, easy. I liked Perl, but CF was even simpler. Also, I found it incredibly easy to query databases and that's precisely when I started to switch from Perl - mainly because I was needed to use SQL Server.
Basically - easier than Perl.
I also loved how easy it was to mix HTML + CF together. That was a real pain in Perl.
12. Are there any CFML features that would have fallen into that category for you when you were doing CFML, but ended up not being as cool as you thought when you looked at other languages?
I'll ditto Adam Cameron here mostly. cfquery was a killer feature back in 95. In 2017? Nope. Heck, probably not for the past 10 years. CF was incredibly easier when compared to other languages for a while, but it has loss that advantage now.
13. What is it about CFML (or the underlying ColdFusion / Lucee / etc platform) you like the least? Explain why, if poss. Again, list as many or as few as you like. If this/these contributed to you moving on (if you have, I mean), mention that too.
I'll ditto Adam here again. I have not been shy about sharing my disappointment with the Adobe CF team. I like them all personally. But as a CF user, I felt, well, shit on. Especially after the way the past few Betas were run. (In fact, I don't think the beta's were "run" - that implies someone was there managing and caring for the beta program. My 5 year old could have done a better job.)
I don't think the Adobe knows how to work with developers at all. (And I'm talking about the greater Adobe, not just the CF team.) Just look at the huge inroads they made with the web and their Edge suite which they promptly crapped on once they realized they couldn't make money from it. This was incredibly depressing to see. I saw luminaries in the web developer community praising Adobe for their work. Adobe earned a huge amount of good will and they just walked away from it.
But hey - it's not making money like PhotoShop, and I'll give them credit for killing these efforts off instead of letting them whither and die from inattention. Which is basically how the CF side is handed.
The community is rather small too, but as I've said in the past, they are the friendliest community I've worked with. I miss em!
14. If there was a project similar to ColdFusion UI the Right Wayhttps://github.com/cfjedimaster/ColdFusion-UI-the-Right-Way, but aimed at any part of CFML (like how to make a DB query in PHP instead of CFML for example), would you be keen to help on it? Would it be of interest to you to be a "user" of it (I mean actively interested; not just a "[shrug] yeah, why not?")?
Since I said I would on Twitter, yes. ;)
15. What else do you think might be useful to share?
At the end of the day, use what makes you productive. If you're producing great results for your clients and feeding your family, awesome, keep slinging CF. But if you are looking for future safety, I cannot recommend enough branching out to other technologies as soon as possible. People have been saying ColdFusion would die now for probably ten years. It's still here. But hey, so is COBOL.