My Encounter With a ColdFusion Detractor (Part 2)

For those readers who didn't see my previous post regarding my conversation with Glen, Glen is a technical trainer who treated me to the usual "ColdFusion is dying" mantra we normally hear from other programmers.

The big question I had after that first encounter was why, as a trainer rather than a programmer, he had developed that opinion about ColdFusion. So when I ran into him again at the gym the other day, I asked him about that.

Turns out his belief that ColdFusion is dying is based on the job market for ColdFusion jobs. He told me he works/interacts with a dozen recruiting firms in the Washington D.C. area, firms looking to fill positions for government contractors like Lockheed, and that the number of ColdFusion positions compared to the number of positions programming in Java or Ruby is just so small. He added that a lot of the ColdFusion positions that did exist were senior positions where candidates were expected to know how create web services, work with Java, write object-oriented code, etc., making it hard for up-and-coming ColdFusion developers to find work.

I also found out that most of his training work involves training/teaching programmers OO-based languages over several weeks, so his perspective on programming trends isn't all that different from an actual programmer. Glen (who doesn't mind talking) went on to give me the standard advice given to modern-day programmers (the importance of having multiple programming language skill sets, the need to have a new job lined up before leaving your current one, etc.) before we parted company once again.

My thoughts? I don't doubt there are more jobs out there for languages like PHP, Ruby, and Java just as Glen said, but whenever I go out on websites to look for ColdFusion jobs, they're out there, and while many of them are senior-level positions, there are a few junior-level jobs to be had. Actually getting hired, however, made take some effort, as Michael Dinowitz noted in his recent blog post, "Are There Really ColdFusion Jobs?"

In the end, Glen's position on ColdFusion is nothing original: lack of marketshare is at the heart of every "ColdFusion is dying" argument we hear. But marketshare is only one metric, and it shouldn't be the main consideration when choosing a programming language.

The main consideration should be "does this technology allow me to build the web application I want?" And when that question is directed at ColdFusion, the answer is almost always "Yes."

My Encounter With a ColdFusion Detractor

Yesterday I ran into an old colleague at the gym (we'll call him Glen). Glen conducts training sessions on technical topics.

Glen asked me if I knew if anyone at the university was using Ruby on Rails. I told him that I didn't think so. He then told me that he was giving Ruby on Rails training at John Hopkins University because they were looking to reduce their use of Java. I responded by saying that I thought Hopkins also used ColdFusion for certain things.

I expected him to either simply agree with my observation, or perhaps offer an explanation about why Hopkins was looking at RoR verses expanding their use of ColdFusion. I was not expecting him to respond with the standard FUD about ColdFusion: it's dying, people are moving away from it, etc. He even went so far as to refer to it as the "COBOL of web programming languages."

I countered with the numbers announced at cfObjective(), that the number of ColdFusion developers had increased dramatically over the past year. That elicited a "well..." and then another assertion that ColdFusion use was decreasing in the federal government as well (there are a lot of government-oriented CF jobs here in the D.C. area).

There wasn't much else to say or do at that point. I couldn't hold him up from where he was going and I had somewhere else to be as well. So I shook my head, laughed at his prediction of ColdFusion's demise, and basically said "Yeah, we'll see about that."

My immediate feeling after the conversation was more amusement that annoyance. Year after year, we hear the annual proclamation that "ColdFusion is dead," yet the proclaimers never seem to realize that if they keep saying it year after year, ColdFusion obviously must be still around. And more often than not, they have no hard numbers to support the idea that CF use is waning, just statistic-free assertions.

Now that I'm several hours removed from the conversation, I find myself more curious about why Glen even had an opinion on ColdFusion in the first place. I don't know him all that well, but he's always struck me as a fairly rational person and not someone who's looking to make and win an argument, yet he immediately began disparaging ColdFusion the moment I mentioned it. What or who lead him to having this opinion about CF? I may have to ask him that the next time I run into him.

Do We Need A Better Way To Survey the CFML Community?

I just finished reading Issac Dealey's recent blog post (worth reading, by the way) where he shares some of the results from a survey he conducted regarding framework preferences back in September.

In the post, he mentioned how difficult it seems to be to get folks to participate in these kinds of surveys, and it reminded me that someone else in the community was recently pleading with folks to take their survey (unfortunately, I forget who, but I did take it). And I wonder what kind of a response Hal Helms is getting with his ColdFusion Web Developer Survey.

So it got me thinking: is surveying the community/getting feedback from the community a problem in need of a solution? Are these surveys being neglected because people don't see the point or don't have the time? Or is the low response rate more the result of a lack of publicity or poor technical implementation of the survey itself?

Any thoughts?

Idea: Give Adobe Bolt Collaboration Features

In my last blog post, I suggested that Adobe include a list of CFML community resources in the upcoming Bolt IDE in order to promote the community to isolated developers who might otherwise be unaware of all the resources out there.

After thinking about it a bit more, it occurred to me that maybe Bolt could take it one step further. Instead of simply using Bolt to point developers to the community, have Bolt bring the community to the developer. Build in an RSS viewer that displays the latest ColdFusion posts from Adobe Feeds. Put in a communicator tool so the developer can converse with other CFML programmers via IM or Twitter. Let the developer screen-share their code with other developers both inside and outside of their organization. Integrate geolocation into Bolt and show the developer a list of other Bolt users (and maybe Adobe user groups) that are nearby. Instead of using e-mail and message boards to communicate with CFML developers, Adobe could broadcast any news announcements to all of the Bolt installs, and Bolt users could submit questions to Adobe and other users via discussion forums displayed in a window of the IDE that gets refreshed automatically.

I'll admit, it's a pretty pie-in-the-sky idea. Given that Adobe only has a finite amount of time and resources, I would certainly not want Adobe to leave out any traditional IDE features, the things that allow developers to code quickly and efficiently, in order to take the time to add all of the things I just suggested.

But if they did have a little extra time, I think adding even one or two simple collaboration/informational features would certainly enhance the product, and perhaps set a trend for other IDEs to follow.

Reaching the "Invisible" CFML Programmers

On Monday, Sean Corfield's thoughts on how Adobe MAX 2008 went were published on the Fusion Authority website. One of the events Sean cited in his article was a Birds of a Feather session moderated by Adrian Moreno about bridging the gap between expert/guru CFML developers (the ones most visible in the online CFML community) and "9 to 5" CFML developers.

I don't know the details of what was discussed in that session, but it relates to an issue that crosses my mind every once in a while: how do you reach out to developers when you don't know who or where they are? And, conversely, how do we help these "invisible" developers find (and participate in) the community?

I was a full-time ColdFusion developer for almost two years before I really became aware of the ColdFusion community. My predecessor, to my knowledge, never participated in the CFML community or went to any conferences or user groups, so it never crossed my mind that such resources existed. I don't remember how or when I realized that there was a community of folks with which I could converse about ColdFusion development (though it was probably at CFUnited '05), but the point is is that it wasn't an automatic process.

I think this is an area where Adobe needs to step up and promote the community as part of the overall "ColdFusion package". Every sale of ColdFusion should include a list of CFML community resources and a statement that encourage organizations to share that list with any ColdFusion developers they are aware of. If Adobe is skittish about including links to resources that might disappear over time, at the very least they can include Adobe-sponsored resources like Adobe Feeds or the new Adobe Groups site.

Even that kind of effort might not reach all the CFML developers out there: in some organizations (like mine) where the ColdFusion server is running in a shared environment, the organization that owns the CF license may not know who all is using the CF instance. So here's another idea: put links to community resources into the new Adobe Bolt. If Bolt is meant to be the premier IDE for CFML developers, then there's a good chance that even the "invisible" CFML developers will grab it and gain access to all the resources it provides.

Applications Are Only as Beautiful as the Processes They Replicate

In an ideal application development process, you work with the client to get an accurate picture of all of the business logic involved in the process the application is supposed to handle, and the end result is a robust system built with clean, understandable code.

But it doesn't always work out that way (some would say it never works out that way). Most of us have had to deal with "scope creep." In fact, one could argue that most modern CFML-coding frameworks and patterns came out of the need to deal with "scope creep" and other reasons for changing our applications.

But sometimes the challenge in creating a clean application comes from the nature of the business "logic" itself, the real-world process that your application is supposed to mimic and replace. It occurred to me the other day that that is often the biggest hurdle I have to overcome with the applications that I'm asked to construct.

When I work with my clients to figure out what exactly what tasks the software needs to perform, I often discover that the processes at work are often riddled with exceptions and conditionals. Sometimes my clients are consciously aware of these exceptions, but other times I have to point them out and we have to figure out how they need to be dealt with.

We humans can handle exceptions within our thought processes very easily. Computer logic, on the other hand, doesn't handle exceptions so casually (which is probably why errors can be referred to as "exceptions"). Coding for even a single exception to an otherwise iron-clad rule can make the code involved twice as complex and perhaps a bit less than pristine.

While we do all we can as responsible programmers to deliver a beautifully-coded application, I think that sometimes there's no avoiding the touch of ugliness that comes from trying to represent and replicate an "ugly" human-driven process.

CF411 and ColdFusion for Educational Use (Oh, And That New Browser...)

Blogging bullet-point style tonight:

  • Charlie Arehart's new CF411 site has a MASSIVE amount of links to tools and resources for CFML and web development. Stop what you're doing right now, go to the page, and store it somewhere (your bookmarks, Delicious, wherever).

  • The announcement that ColdFusion 8 Enterprise is now available for free for educational use (in other words, for learning purposes) was made on Monday. You can find out more at https://freeriatools.adobe.com/coldfusion/

    While I'm glad the announcement is out, I just wish it had been promoted better. There's still nothing about it up on the Adobe home page or even on Adobe's ColdFusion product page. Why not?

  • Last (and least...), Google surprised everyone this week with their new Chrome web browser. It got so much attention that everyone stopped talking about the iPhone, which is admittedly pretty impressive.

    Like everyone else, I've played with it. Here's my take on it (yep, more bullet-points):

    • It runs pretty well.
    • It does seem to run JavaScript more quickly than other browsers.
    • It has a few nice innovative features.
    • It can be quirky at times and it has some flaws (but it is a beta).
    • It has promise, but it doesn't provide any new functionality that I find particularly useful to me.
    • FireFox will remain my browser at work and at home.

Rare mid-week edition of CFConversations podcast now available

I've been a little lax in posting about new episodes of the CFConversations podcast (and lax in my blog postings in general), but I wanted to point out that episode #9 (the 5th interview episode) was released today.

The reason this episode is being released mid-week is because part of the interview is about the Michigan Flex Camp which will be held on July 30 and 31.

I've heard very little chatter about the podcast in the CFML blogosphere, so I'm curious: are folks listening, and do they like what they hear (content-wise)?

CFConversations podcast #5: interview with Liz Frederick and Nafisa Sabu of TeraTech/CFUnited

Hey, folks, the first CFConversations interview podcast is now available. Check it out--you can either subscribe to the podcast via iTunes (just search for "CFConversations") or download each episode directly from the CFConversations website.

Episode 4 of CFConversations podcast:: ideas for promoting CFML

The fourth episode of the CFConversations podcast, the last of the three episodes recorded at CFUnited, was released early this morning.

This episode focuses on some ideas that came out of Brian Meloche's conference session on promoting the use of CFML outside of the ColdFusion community. Check it out!

BlogCFC was created by Raymond Camden. This blog is running version 5.1.004.