ColdFusion vs. CFML

<rant>

Every time TIOBE comes out with new listings people bitch about ColdFusion.  It bugs the shit out of me.  Here's the deal folks:

ColdFusion is a server product.  It is NOT a language.  CFML is a language.  You don't write ColdFusion, you write CFML and then you run your CFML on ColdFusion (or Railo, or OBD).  ColdFusion (or Railo, OBD, etc.) provide a framework for your CFML to run in, along with various bits of helpful functionality.  You might consider yourself a ColdFusion developer, because while ColdFusion isn't the language you use, it is the framework that you use.  You're a ColdFusion developer who writes CFML.

This is exactly like saying you're a JEE developer.  People don't write JEE code, they write Java/Groovy/etc. code, but they're still JEE developers.  JEE provides a pile of nifty features (Servlets, JNDI, JavaMail, XA, etc.) that you can leverage if you're running your code in a JEE server.  And different servers provide different sets of functionality (though all at least meeting the base spec).  So you write your Java (or whatever), and run it in a JEE server.  You're a JEE developer who writes Java.

This is also exactly like saying you're a Rails developer.  People don't write Rails code, they write Ruby code, but they're still Rails developers.  Railos provides a framework for your Ruby to run in, along with a pile of helpful functionality.  You're a Rails developer who writes Ruby.

I am a ColdFusion developer.  I am also Railo developer.  I'm also a JEE developer.

I write CFML, Groovy, Java, JavaScript, and a pile of other languages.

So if you want TIOBE to list ColdFusion on there, then they should also list JEE and Rails on there.  They don't, they won't, and they shouldn't.  Period.  End of story.

</rant>

I've intentionally not linked to the TIOBE listings.  They're easy to find if you care, but they're pretty irrelevant.  Bordering on retardedly stupid.

29 responses to “ColdFusion vs. CFML”

  1. Matt W

    Good explanation. But shouldn't CFML the language be on the list? It seems like it would be in the top 50.

  2. Brian Carr

    @Barney – I do enjoy a good rant, and that one was a doozy :-) I have a question for you and I'm definitely not asking it as a round-about defense of TIOBE (being serious), but what in your opinion makes that index irrelevant? I haven't spent a lot of time evaluating it myself so this is simply an honest and sincere question.

  3. Rick O

    I appreciate your evangelism about the distinct between the platform and the language. (I use "platform" instead of "framework" to minimize confusion between that and architectural frameworks, such as ColdBox, etc.)

    Would you consider CFML and CFScript to be distinct languages?

    Personally, I teach them as two languages that share a common platform, like Scala and Groovy. While they share a common ancestry, there's plenty of distinction between them, including methodological changes.

    And if you consider them to be distinct languages, then how would you have an index such as TIOBE work with that?

    (To be clear: I'm not picking a fight, just positing questions.)

  4. Dutch Rapley

    Well said. A few years ago, TIOBE used to list ColdFusion. They eventually removed and explained that the reason why, as Barney points out, is that ColdFusion is in face a framework.

    November 2007, when ColdFusion was still listed, it came it at #26 (http://web.archive.org/web/20071129201101/www.tiobe.com/index.htm?tiobe_index).

    Technically, TIOBE could list CMFL, but the bigger problem is that when most folks search on and post something about CFML, they actually use the framework moniker…ColdFusion.

    Also, if you want to see CF's history on TIOBE, take a look at this: http://www.tiobe.com/index.php/paperinfo/tpci/ColdFusion.html

    ColdFusion came in at 13th back in 2006.

  5. Brian Carr

    @Barney – Agreed. The measurement hardly seems scientific – not sure if it's entirely irrelevant though. To me, the index is not relevant as it pertains to CF because they've incorrectly classified it as a "framework" instead of a formal language (see the first Q/A at the bottom of the page). Which is likely why we're not seeing ColdFusion (or rather CFML) listed at all. According to their own guidelines: "A language is considered a programming language if it is Turing complete." As far as I can tell, CF definitely is. Error on their part.

    @Rick O – I like your "common ancestry" approach. CF Script is definitely not a markup language so delineating between the two is important.

  6. Joshua Frankamp

    From this index explanation http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm it looks like CFML is on the index, with CFScript bundled into its ranking. Were they split, it would be worse for both, because it would dilute the numbers among both. And @Matt no, its not in the top 50. :-)

    Part of the reason why is the point of Barney's post. There is a difference between CFML and ColdFusion and we as a community should stand behind CFML, we should reference CFML, we should even talk about CFML programming (this counts as a TIOBE hit!).

    I don't think the index is irrelevant, its the best measure of language popularity that we have. If you care about it… write about how your CFML programming is going.

  7. Jake Munson

    I agree, Tiobe's index is useless. If search engine results meant anything, it would be different. But what if people have more trouble programming C# when compared to Java? So lots of people are out there asking questions about C#, driving up Tiobe's C# ranking, while Java people are happily programming getting things done, and NOT driving up the Tiobe ranking for Java. This is just an example (I don't know where C# or Java are in the ranking). But it's just one reason (among many) why their index is useless. I wish less people would talk about it, and then it would go away.

    And yes, there are valid ways to rank programming language popularity. Any statistician could do it, and I'm sure companies like IDC and Gartner have done it in recent history. The trouble is, it costs a lot of money to perform such a study. Secondly, because it costs so much money, these companies want to recover their costs so they hide their results behind a paywall.

  8. Justin Carter

    I thought we got over this one a couple of years ago :P Personally I think Tiobe should treat ColdFusion and CFML and CFScript and Railo and OpenBD as the same thing. The distinction is irrelevant for the purposes of seeing how popular the technology is when the underlying discussion is, in the vast majority of cases, about the language. Most developers say "ColdFusion" when they mean "the language" and so that is what the index should include.

    Of course CFML is the language, but I don't think anyone is saying it's not.

  9. Justin Carter

    @Barney: I understand what you mean, but for the purposes of the Tiobe index do they actually make those same distinctions when analysing other languages? If built-in image manipulation functions are part of the framework and not part of a discussion about the programming language that they belong to then similarly every C# article that mentions a native package or Windows API should be excluded from the index – but I highly doubt they are excluded. But this isn't really my point…

    When someone talks about ORM in ColdFusion 9, interfaces in ColdFusion 8, or CFC-based custom tags in Railo they are talking about "the language". All these things would be excluded from the Tiobe index because they are being pointlessly pedantic about the use of the word "ColdFusion" or "Railo" or otherwise.

    The fact is we all say "ColdFusion" far more than we say "CFML", even when we mean "the language not the application server". Chances are someone at Tiobe just doesn't like ColdFusion and thought it would be funny to only rank it based on "CFML" and "CFScript", and we all fall for it every time.

  10. Zarko S

    Hey, these guys are good, this is funnier than Camden's April fools joke. They put something called Go and ABAP in top 20! :) Let's put CFML and MXML aside, things are not clear there (thanks to Adobe), but WTF happened to ActionScript?! Yes, this must be April Seventh joke!

  11. Brian Meloche

    I think you are missing the point. When most people are writing about CFML programming, they say "ColdFusion". They do look at CFML and CFScript according to their definitions page, but they do not consider ColdFusion (or "Cold Fusion") or CF or CFC in TIOBE's definition. My gripe isn't about the server, it's that their definition of what CFML is should include the word ColdFusion (as well as CF and CFC).

  12. Brian Meloche

    @Justin: I agree with you. The CFML definition should include ColdFusion, "Cold Fusion", CFC, CFM, CFScript, OpenBD, BlueDragon and Railo.

  13. Justin Carter

    @Brian: Yep, that's about the long and short of it :)

    @Zarko: Good point… It's kind of astounding that ActionScript isn't up there somewhere. Maybe they really do have a gripe against Adobe and not just ColdFusion.

  14. Brian Meloche

    I am not sure why people are saying that ActionScript isn't there. It's at #19 on the list, up from #22.

  15. Zarko S

    @Brian I'm not saying that it's not there, I just say by this crteria :
    "skilled engineers world-wide, courses and third party vendors" ActionScript must not be below MATLAB, Ruby ,PL/SQL, not even Objective-C but at least he's more popular than lets say ABAP and SAS :)

  16. Raymond Camden

    You can argue, correctly, that ColdFusion isn't proper, but can't argue that 99% of the people _using_ refer to it as the language.

    So if the majority of people decide that ColdFusion should refer to the language and it makes sense for TIOBE to use it, does your (Barney) argument really matter?

    I'm definitely with Brian here. I mean, to me, it's like someone coming into the Starbucks and asking for a large coffee and being refused service because they refuse to call it a Grande. (Or whatever term they used.) In every store I've been to, Large means large. Only Starbucks gives it a fancy name. It would be silly of them to ignore that fact and require folks to use their terminology. (Btw, I'm sure other coffee shops use the same terms, I'm just using it as an example. :)

  17. Raymond Camden

    Btw, I totally agree with:

    "Bordering on retardedly stupid."

    You won't get any argument from me there.

  18. Brian Meloche

    @barneyb: I respectfully disagree. is absolutely CFML. It's not supported on all CFML engines; it's non-standard CFML, but it is CFML. It would be like saying the tag is not HTML. It's non-standard HTML, but it is HTML.

    Until you can force people to say CFML, I cannot agree with you, at least at this present time. Considering that there are a lot of people that don't even know that there are other CFML engines besides Adobe ColdFusion, I don't see that happening any time soon. People will continue to call CFML ColdFusion. Right or wrong, it's a fact.

  19. Brian Meloche

    Re-posting… without tags.

    @barneyb: I respectfully disagree. CFSHAREPOINT is absolutely CFML. It's not supported on all CFML engines; it's non-standard CFML, but it is CFML. It would be like saying the MARQUEE tag is not HTML. It's non-standard HTML, but it is HTML.

    Until you can force people to say CFML, I cannot agree with you, at least at this present time. Considering that there are a lot of people that don't even know that there are other CFML engines besides Adobe ColdFusion, I don't see that happening any time soon. People will continue to call CFML ColdFusion. Right or wrong, it's a fact.

  20. Zarko S

    My colleagues in the office use C#, t-sql and ASP.NET and who knows what else, when you ask, they say they are .NET developers.

    Other teams in my company work with EJB, Hibernate, Spring, Wicket, PLSQL and who knows what else and they all say they are Java developers.

    When they ask me what I do, I say I'm Coldfusion developer, because If I said that I'm CFML developer they would give me even stranger look :)

    So after so many posts I'll summarize (if someone doesn't agree with me we can discuss somewhere else ;) ):
    1. Codlfusion is a platform and shouldn't be on the TIOBE list!
    2. CFML is not and will not be THE language for at least couple of years (sorry CFML committee ). Why? Because you don't get job as MXML developer and you don't get job as CFML developer.

    I know that Sean Corfield and other my heroes are really fighting for a good cause.
    But I doubt I'll ever call myself CFML developer :)

  21. Justin Carter

    Technically, ColdFusion is the framework. We all know that.
    Colloquially, ColdFusion is the term people using when referring to CFML/CFScript programming.

    The use of ColdFusion/CFML/CFScript/Railo/OpenBD is being misrepresented.

    Are these C++ articles excluded: DirectX, OpenGL, XNA. Probably not.
    Are these PHP articles excluded: CakePHP, Zend, Joomla. Probably not.

    The index is already too unscientific, and excluding valid ColdFusion topics only makes it moreso.

    Try http://www.langpop.com or something else instead, and erase the word Tiobe from your memory. I'm going to ;)

  22. Snake

    The reason I would have thought is pretty obviously. Most people have only ever heard of ColdFusion, Railo and BlueDragon are pretty new and relatively unheard of. I still come across ColdFusion developers all the time who have never heard of them so people not active in the community are almost certainly not likely to have heard of them.
    If you think back your own days before Railo and OBD, I bet you referred to it as ColdFusion, everyone did, no-one ever said they did CFML, and I can;t say I have seen any change on that front, even those who know the distinction still refer to it as ColdFusion out of habit.

  23. just thinking

    Here's the thing. ColdFusion is synonymous with CFML. They're one and the same. CFML is part of ColdFusion. It's the language inside ColdFusion, hence why it's called ColdFusion Markup Language.

    What's troubling me the more I look at it recently is a concerted, ongoing effort to seperate "CFML" from "ColdFusion".

    There would be no other "server products" running "CFML" without ColdFusion, Adobe, Macromedia, or Allaire.

    Why is there a change being introduced now? oh, there's some wonderful CFML interpreters that are OSS. That's wonderful. But let's not forget: They interpret ColdFusion Markup Language into Java bytecode, just like "ColdFusion" the original.

    What this leaves, is conflicts of egos, personalities, insecurities. It doesn't matter what the side, or who said what to provoke what. If you're better than it, you will act better than it. There's a big difference between what is being said/done/reported on both the "CFML" (aka OSS engines) and Adobe respectively.

    As a ColdFusion developer (I refuse to see any difference between the two today, because in the beginning ColdFusion is all there is as a unique syntax), I see this divisiveness as immature and frankly leaves me wondering if CF devs are really this bored with having conquered web apps that other languages are bothering catching up to.

    Instead of spreading the neat and great things we can build with this wonderful language and ecosystem that has made all of us profitable, we're playing target practice with each other?

    It's shameful. It's wonderful we have options in the CFML interpreter space. It's unacceptable that anyone, decides to speak from a "side". We're all one language. This tribe within a tribe is disgusting and the cause of all poison that spreads through human relationships.

    I hated/loathed/bored of programming until I found ColdFusion made by the Allaire brothers. Let's all try to remember the day we found ColdFusion (or it found us) and we had our first aha moment.

    The feelings, the inspiration we all have felt should be lending it self to creating conversations full of respect, not letting ankward anti-social geekish tendencies to be curt with our words and then get into a downward spiral of being hurtful. Anyone who does this does not deserve to hurt an entire community, nor have the right to take on the decision of how to poison that community.

    How about we just try to be the ColdFusion community. It's not that hard. If you need something to make you feel significant, let it be what you build, and not what you build it with that makes you feel special.

  24. jack chesley

    So, I came across this post while thinking about learning a new language (I've been programming with ColdFusion [excuse me, CFML] since 4.01, but have been overseas for a few years and just returned to the US). And I wondered if maybe the TIOBE folks were just not aware of the confusion… so I sent them a message and received a very positive answer almost immediately… they are really on the ball! Here is the response:

    Hi Jack,

    Thanks for your feedback on our TIOBE index. Good suggestion! The Wikipedia entry for ColdFusion has been adapted recently. This is sufficient to add ColdFusion again to the CFML entry in our index definition. This will give CFML/ColdFusion definitely a boost. I will thank you for this suggestion in our next publication. I hope that this answers your question.

    Regards,
    Paul