<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.
Good explanation. But shouldn't CFML the language be on the list? It seems like it would be in the top 50.
Yeah, CFML ought to be. Or at least a candidate for being on there if it has sufficient use.
@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.
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.)
Brian,
I have two main objections. First their metric (search engine results) is hard to argue as a useful metric. Sure, the more people posting about a subject means it's probably a more adopted subject, but what does that metric really mean? And consider the amount of "empty" cross-posting that happens on blogs and such.
Second, there is a certain threshold of relevance where an increase in size is meaningless. C is higher than Java in the latest ranking, but that distinction means nothing. C is huge. Java is huge. In terms of "resources on the web" they're both effectively infinite. The quality varies dramatically but at that scale picking which one is bigger is nothing but a dick waving contest.
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.
@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.
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.
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.
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.
Justin,
Really? The majority of the posts I see about CF stuff have nothing to do with the language and everything to do with the framework. "how do I attach images to an email and show them inline?" "how do I import an excel document into a database?" "how can I add a drop shadow to uploaded photos?" There is no CFML anywhere in those questions, it's all about the framework.
With CF9's CFSCRIPT enhancements that's changed of late because there is a lot of new language stuff for people to wrap their heads around, but getting started with CFML is really easy so you don't see a lot of info about it.
@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.
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!
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).
@Justin: I agree with you. The CFML definition should include ColdFusion, "Cold Fusion", CFC, CFM, CFScript, OpenBD, BlueDragon and Railo.
@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.
I am not sure why people are saying that ActionScript isn't there. It's at #19 on the list, up from #22.
@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 :)
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. :)
Btw, I totally agree with:
"Bordering on retardedly stupid."
You won't get any argument from me there.
Ray,
I don't know. I think it's still relevant, because they don't include JEE within Java, nor Rails within Ruby. So mashing ColdFusion into CFML isn't really equivalent. Because it's not that people refer to CFML as ColdFusion that is the problem. It's the fact that they refer to non-CFML as ColdFusion. Is CFSHAREPOINT part of CFML? No. But it is part of ColdFusion. Should a post on it count towards the CFML score? I'd say no, because it has nothing to do with the language, just the platform.
That's the stuff that'll pollute the "algorithm". [please read whole-arm air quotes into the quotes there.] But it's Friday night, and I need a drink or twelve. I'm glad I didn't have to listen to as much TIOBE stuff this quarter, but the replacement was far worse (and nearly as stupid).
@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.
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.
Brian,
By that argument, JavaMail (a JEE interface) should be Java. CFSHAREPOINT, just like JavaMail, is pure functionality exposed through an API to programming language X (CFML for the former, any JVM language for the latter). They're not programming constructs; there's no syntax. I'll gladly agree that CFSHAREPOINT is part of "ColdFusion the framework", but it's not part of the language (whatever it's name is).
Arguing that CFSHAREPOINT is part of "ColdFusion the language" is EXACTLY what TIOBE says. You're effectively saying that TIOBE is correct in pushing ColdFusion off the list. Which is a valid opinion, and the correct one in my view. As soon as you say that all these functional APIs are what the language is, you're really just stating that the language isn't a language, it's a framework, because any sort of programming constructs (i.e. the language) are completely eclipsed by framework's functionality, thereby rendering the "language" just a framework.
So we agree. :)
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 :)
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 ;)
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.
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.
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