Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at CFUNITED 2010 (Landsdown, VA) with:

Ignorance Rears Its Ugly Head Again

By Ben Nadel on
Tags: ColdFusion

Christian Ready just sent this along to me. Apparently, another article has come out that preaches ColdFusion as being one of the programming languages that never took off. This time, coming from SoftwareDeveloper.com in an article titled:

Ghosts in the Machine: 12 Coding Languages That Never Took Off

I don't know what is wrong with people. You'd think the name, Adobe, would at least make people go ahead and do something silly like, I don't know, fact check their articles? Too bad we don't all have editors as awesome as Judith Dinowitz!

Here is the excerpt involving ColdFusion:

ColdFusion (aka "ColdFusion Markup Language" or "CFML") was billed as the next big web development language, in the same veign as ASP.NET or Java Entrprise. ColdFusion was expected to be very popular because of its ease of use and accessibility for beginner programmers.

CFML uses tags reminiscent of HTML and need not be well-formed, which is a big help to newer (or non-meticulous) programmers who frequently forget to close tags or confuse capitalizations.

Given its ease of use and its position as a transitionary language from HTML, it is rather surprising that ColdFusion's popularity has waned so quickly. The ColdFusion killer wasn't due to a failure in marketing the programming language, nor due to any particular language design flaw. Instead, ColdFusion has been slowly displaced by ASP.NET and PHP, which offered a MySQL integrated product in a free open-source form.

Tweet This Titillating read by @BenNadel - Ignorance Rears Its Ugly Head Again Thanks my man — you rock the party that rocks the body!


Reader Comments

@Ben, thanks for the h/t. As Mark Twain said, "A lie can travel halfway around the world while the truth is putting on its shoes." Ah well, such is our fate for being a bunch of dying programmers :)

@Sam, my take on it is that while CF isn't as common a language as JAVA, .NET, etc. you make a fair point. However, the subject of the article is languages that never took off. While I can imagine it's true of the most obscure languages, CF just doesn't seem to fit in this category.

My $0.02.

Reply to this Comment

Maybe we can start an article entitled "Ghosts on the Internet: 12 Tech Webmagazines That Never Took Off". Seriously, the only others I'd even heard of were PowerBuilder and Delphi. I'm pretty sure none of the rest of those languages just celebrated their 12 year of existence and use and are about to release their 8th major version.

Well, news has been more about eyeballs than facts for nearly 5 decades now, so I'm not sure we should expect any different.

Reply to this Comment

@Sam:

I have a major issue with this article. I think it's not just wrong about Coldfusion either.

First, I don't think there's any way you can characterize Coldfusion as an unpopular language.

In programming in general, Coldfusion is in the top 30 in the TIOBE index (http://www.tiobe.com/tpci.htm). That's not scientific, but it does indicate that it's a relatively popular language.

However, my biggest issue is that the guy isn't looking at language within the context of its scope of use. If you consider Coldfusion as a web development platform, rather than just a computer language, it becomes clear that it's easily in the top 10 (probably in the top 5) of all web development platforms. For web development you have PHP, Java, Perl, .Net, ASP, Ruby, Python, C/C++ and Coldfusion (am I missing anything?). That probably covers 95% of all web application development. And Coldfusion is a LARGE chunk of that.

This same issue carries over to Haskell. Sure, as a standard programming language it's not very popular, but within its field, that is, academic programming languages, it's highly popular, and only growing in popularity.

Most of the languages he mentions are either ancient dinosaurs, recent extinctions, or jokes. The joke languages, surely, don't really deserve comparison to actually useful and popular languages like Powerbuilder.

That he would say that a language used EXTENSIVELY in its field (web development) is a ghost language is absurd. It would be tantamount to saying that the 3rd most popular embedded programming language for household devices is a ghost languages. Sure, not that many people develop in it, but it's certainly not dead.

Sorry for ranting. But, I'm just really unimpressed that the writer mixed these concepts so loosely.

Reply to this Comment

@Greg,

True, so much news is about rating and eyeballs, so you never no what someone is gonna say. Next thing you know, someone will come along and say computer science shouldn't be related to mathematics ;)

@Toby,

I totally understand what you are saying. I have had people argue with me, bringing up Fireworks and Dreamweaver in the same context... yeah, of course Fireworks look like a crappy web development tool compared to Dreamweaver... but that is NOT the right context to examine it in.

Reply to this Comment

I don't understand why CF people are so damned defensive about CF. Well, OK, I *do* understand it, but I can't respect it, and it seems a bit silly.

It's just a web-site-building scripting language, when it all boils down. And whilst it has some cute features for newbie programmers, all its bells and whistles are pretty half-baked, and definitely only cover the "easy" 80% of a given solution. And it's created in such a way that often its own architecture seems to simply *get in the way* of anyone wanting or needing to cover that last 20%.

CF *is* a niche language, and really isn't all that popular. And, I think, rightly so.

This does not mean the people that use it aren't "valid" in their career choice, so there's really no need to over-compensate or justify one's self or one's career situations when a magazine article points out what is - basically - the truth.

--
Adam

Reply to this Comment

@Adam,

I am not sure I follow the whole 80/20 thing you are talking about. Would you mind expanding on that?

Reply to this Comment

Toby - you make a VERY good point.

I wonder how much SW development is web development. Then we might better assign popularity on an overall basis.

On the other hand, if it is the 3rd or 4th most used in its niche, and its usage is still dwarfed by the top 2 or 3, did it "take off?" I'm not saying it /is/ dwarfed by those other 2 or 3 (I haven't seen the numbers), just asking hypothetically.

Reply to this Comment

It's a reference to this: http://en.wikipedia.org/wiki/Pareto_principle

Take CFCHART. On the surface, it produces some slick charts. And for a lot of requirements (80%), they're fine. But as soon as the requirement starts getting tricky (20%): it's virtually impossible to get CFCHART to do what you want. So it becomes useless.

CFINPUT and CFUPDATE are kinda useful as long as you want to do *exactly* what Allaire decided you'd want to do. But they very quickly become useless.

CFLDAP does basic string-value querying OK, but - last time I looked - it was not possible to fetch binary data. Simply not possible (maybe this is fixed: I gave up on CFLDAP back in 6.1).

Verity is the same.

Flash forms are the same.

I find that across the board, this pretty much sums up CF. It's real easy to do basic stuff as long as one's not so fussy how it comes out, it's possible to do some mid-range stuff without CF getting too much in the road, but it works against itself once one wants to do complicated stuff. By this point one needs to rely on external systems, and just the very basics of CF to get something done.

A lot of CF's so-called benefits very quickly become mostly redundant once one is a half-decent developer. The things it makes "easy" (say performing a DB query via JDBC) aren't actually that complicated in the first place, so whilst it's nice to have a tag to wrap around one's SQL; it's really not that difficult do do the same thing WITHOUT a tag. And one's got far more scope if one leaves behind CF's helper tags, and just gets on with the coding.

CF is useful for that first 80%. And it's a pain in the arse for the rest of it.

IMO, obviously.

--
Adam

Reply to this Comment

@Adam,

To be completely honest with you, I can't argue for or against that I simply never use those things you mentioned. I don't do much charting (although I should learn more about that), and I never use anything flash-based that is auto-generated.

The exception to your list is the Query. I have programmed in PHP, ASP, Java, ColdFusion, and some other stuff I can't quite recall, all of which call a database, and in my own experience, nothing makes calling a database as easy ColdFusion. Yes, they can all do the same thing, but the fact that you don't need to build a SQL "string" makes creating robust and dynamic SQL statements soo much easier... and they are easier to read (IMO). I would rather look at a CFQuery tag with 10 embedded CFIF statements and AND clauses than 10 string concat statements building a dynamic SQL string. Not to mention how easy it is to do value binding and on-the-fly data casting with CFQueryParam.

So, while I cannot speak to any of the other things, I would say that CFQuery is about the most-bad-ass query environment, and is, I think, one of the biggest selling points of the language (seeing as pretty much all of our apps communicate with a DB).

Reply to this Comment

It all comes back to CF's lack of marketing. I suppose CF has always provided a decent ROI for its owners (Allaire, Macromedia, now Adobe) without the slightest bit of marketing. Why spend money on advertising if you're making money without it?

Because of this, CF is not "in your face" like a Microsoft product would be. And of course PHP was widely adopted because of its free-ness.

I don't anticipate Adobe will spend any money on marketing if it doesn't have to, so CF will continue to be a target for these types of articles for the foreseeable future, no matter how many editors we flame or blog postings we post.

Reply to this Comment

@Ben,

I think that the thing with CFQUERY is that while nice, when you become a more advanced developer your DB interaction functionality is wrapped in higher levels of abstractions and you have little use for it. Like, for example, if you use Transfer or Reactor, you don't have that much use for cfquery. In Java, they have things like Hibernate, which I hear great things about, so the fact that there isn't something as easy as CFQUERY probably doesn't matter that much.

Reply to this Comment

@Adam Cameron
I am a CF developer for 7 years now, and I never came across a web application challenge that could not be done with coldfusion. I am a positive guy by nature, yes, but we always came up with a good solution.
The tight integration of CF with the OS, with Java, http, ftp, wsdl, and so on, makes any task which can be done with i.e. php doable with coldfusion. It just rocks!
Just pass me an example of the 20% of _things that can not be done with cf_ (web app things off course), and I am sure it can be done. I do have to say I'm going for a holiday on sunday... :-)

btw, about the charts: there are 3rd party charting engines which can be used with cf, that can do any task I ever needed, and I have done my bit of creating management information and presentation graphs. It is true that cfchart lacks in some cases, but well, just install an extension, as you would with any other programming language, right?

Reply to this Comment

Hi Thomas: your comment is very true. When one's DB interaction is abstracted from the mainline code (as it always should be!!), the value of the ease of CFQUERY - which I will not argue - is somewhat trivialised. Any benefits CFQUERY has over doing the same thing in Java or PHP or [whatever] start to diminish in real value.

Paul, I'm not going to argue the toss with you over specifics of my examples. I too am a CF developer with almost as much CF experience as you (six years in my case). And equally I have yet to be faced with an issue I cannot resolve with CF. That's not really the point.

CF *rocks* for newbies. It's a liability for seasoned programmers. There's nothing wrong with that: indeed it's Allaire's / Macromedia's / Adobe's entire marketing platform for it. Well the first bit, anyhow.

But hey, it's all right: it does the job; it keeps ME in a job. But it's a pretty ordinary programming language, and it's not at all main stream. The latter is not a cause for concern.

I don't want to get into a backwards and forwards about this on Ben's blog (I'm already guilty of fuelling that sort of thing on another one of his topics). I'm OK with you disagreeing with me.

--
Adam

Reply to this Comment

Perfectly good answer, I'm ok with you too ;-)
The things CF needs to have more, we are building it ourselves (imports, null values, DAO's, etc.). We are trying to be OO, and at the same time, we (the company) can produce great websites at record speed.
I do not think it's only ... oh damn, I just said I'm ok with you too... euh, well, I feel a strong urge to disagree, so ... OK, I'm OK with disagreeing with you too :-/

Reply to this Comment

adam_junk@hotmail.com.

I'm OK with continuing the discussion: just not on Ben's dime. Email me if you like.

--
Adam

Reply to this Comment

"CF *rocks* for newbies. It's a liability for seasoned programmers. "

I don't know what seasoned is, and I've certainly come across some things about CF I'm not fond of, but I wouldn't quite call it a liability. There are plenty CF programmers who have a lot of experience in other languages and still use CF with great results.

Reply to this Comment

The problem with the 80/20 adage is that it applies to every platform, not just CF.

php is great for 80% of the things you might want to do, but really complicated for the other 20%.

The thing is, that 20% isn't the same for CF and php. What falls into the 80 for CF may fall into the 20 for php.

For example, want to create a nice pdf report for users from a html page? Well you're in for a gauntlet. So first you look at pdflib (http://us2.php.net/pdf) which is really quite complicated (read the comments and look at examples) and still doesn't provide a way to render the html. So you google and find http://www.digitaljunkies.ca/dompdf/about.php which is neat, but doesn't support a whole lot of CSS features.

<cfdocument> on the other hand solves this with no hassle. It's not perfect for every problem, but it's certainly more powerful than the current solutions you'll find for php, and it comes with CF, whereas pdflib does not come with the standard distribution of php.

So yeah, CF doesn't solve those 20% of problems without some awkward code, or an external library, but php (and really every other platform out there) has the same problem.

Each platform solves a different set of problems really well in that 80% and thus we should consider the best platform that fits our projects.

Reply to this Comment

I too must be a newbie as I find CF pretty much does everything I need it to. I'm curious though Adam - you gave a good example of a feature that cfchart doesn't have.

Now if I remember right (and I could be wrong!), both PHP and DotNet have 0 built in charting.

So why is it a liability that CF can do 80% of charting needs out of the box?

You aren't STOPPED from doing the other 20%. You just purchase an external solution, like DotNet/PHP folks do. So if CF stops me from buying extra crap 80% of the time... how is that bad?

In every language - you will have tasks that are simple and tasks that are hard. Period. No language will make it easy to land on the moon. But if CF can get me 80% of the way there before it gets hard - that isn't a liability. It is a (huge) leg up.

Reply to this Comment

What I don't understand about that article is that it's supposed to be about 'languages that never took off'.
Well, it then goes on to list Delphi and Powerbuilder which most certainly _did_ take off and then says that they're on the list because popularity has wained. So, the article changes topic and approach halfway through - very good journalism, that!

As for CF being in there - as you say, check your facts! ColdFusion is only being run by one of the most important technology companies in the world, so obviously it has no future and has never 'taken off' - what version are we on again!!?!?!?

*ahem*

Reply to this Comment

If you talk to someone from New Atlanta, ColdFusion != CFML. ColdFusion is the Adobe product, a web application server; CFML is the tag based language that runs on said server. Last I checked, CFML wasn't in the top 20 languages currently in use. But if you look at how popular an application made in a language is, and consider the popularity based on that, MySpace is written in CFML. Millions of teens and pedophiles spend all day using that CFML application.

Reply to this Comment

Interestingly enough, http://www.tiobe.com/index.htm?tiobe_index shows ColdFusion as 29th, but places Objective-C in 50th which seems to imply some serious miscalculations. The Cocoa framework on OS X is done in ObjC and by extension the majority of OS X applications are written in ObjC too!

Also if you look at the languages that aren't ranked in the top 50:
Maple, Mathematica, XSLT. All three of those are very popular for their respective purposes.

Reply to this Comment

Right, I pointed out the reference to the TIOBE index. I think it's definitely not an objectively reliable measure of a language's popularity or overall use. I simply used it to point out that it's hard to believe that a language ranked in the top 30 would be a "Ghost" language.

It's also fair to say that languages should be judged based on the level of use, and not necessarily on the level of hype. I honestly believe there are more people creating and using CF apps than Ruby apps, but because of the buzz for Ruby, it'd be insane to consider it a ghost language. Coldfusion has always been a target for these "CF is Dead" articles because it has a bit of a stealth status.

I still stand by my basic premise that the author is completely missing the boat when it comes to the context that a language is used in. Clearly there are some languages, like Java, that are used in a lot of different contexts. But for those that aren't, their reach outside of their respective contexts is going to be very small.

Reply to this Comment

I wanted to find the CF usage list mentioned to give my boss. Even the evangelist kit's page merely routes back to here, though:
http://www.adobe.com/products/coldfusion-standard/reviews-awards.html

which is nothing like a list of customers; the default page with 'reviews' currently starts with one 'defending' CF in a phrasing which is kind of embarrassing (makes it seem like it needs it), not to mention that pictures and testimonials of anybody who works at Adobe is not something anyone who sees the Adobe name on it would consider evidence, since to me you drag out obviously biased inhouse experts only when you haven't got any outside to use. Maybe they gave up on the impressive-customer-list approach?

PJ

Reply to this Comment

The article posted gives me a headache. To start off, the title of it would have gotten me really excited had I not known beforehand what it was going to be about. "Ghosts in the Machine:..." would normally make me think they were going to discuss something really interesting, like the ghost code discussed in iRobot which supposedly gives Robots freewill. Now THAT'S interesting. I have seen some of this freewill in some of the programs I write, and it is definitely something I would like to read more about. :^D :^)

This age-old hatred of ColdFusion. Ahhhhhh...nothing new. Yawn. When I left my asp job, which was when the company was in the process of changing from asp to the .NET platform to pursue a job in ColdFusion, one of the programmers there scoffed and said something to the effect of, "Macromedia might pull their support for this 'product' (ColdFusion), and then you'll be screwed." Well, I guess screwed I am. Not meaning I don't have a job, or that anything bad has happened in the ColdFusion world since I joined in programming in this fabulous language to cause me to not have a job, etc., but what I mean is I have indeed been completely immersed in it, and have become pretty fond of it, to say the least. And here we are, 6 years later, and I am still working with ColdFusion :0)

I think some people's ignorance/hatred of it has (at least partly) to do with the whole CFML (ColdFusion Markup Language) thing...it has to do with the fact that people who know nothing about it dismiss it as merely a scripting language, not a true programming language, and they see it as not too much more than HTML. They miss the true power of it.

When I read @Adam's first comments, I was going to ask you if you actually ever used CF. But, of course, being that I read all of the other comments as well, I came across the reply that you did program using it. But I still have to wonder if you have delved into it at very deep of a level at all? Because there are cf programmers, and then, there are cf programmers. As I have worked in the field, I have noticed there are shops that use CF on a very shallow level, to just get done the basics that they need to get done. Then, there are shops which merely 'design' web pages, and they use cf to add to their pages the little bit of functionality that is needed to get by and to classify it as truly 'web development' versus 'web design', and there are some companies that use it as a go-between to bring data from a database to the end user's eyes, and to allow their clients to see that in a format they can understand, and then there are companies that use cf to really develop hard core high functionality applications, database integration and all.

I've worked at places where the code resembled "spaghetti code", all scrambled and mixed around. I've seen code where it truly did look like the programmer didn't know at all what they were doing. I've worked at places which put in place very strict coding standards, and the code had to be perfect, brushed over with a fine-toothed comb. And everywhere in between on the spectrum. Heck, I've even worked with an MVC set-up.

I agree 100% with the statements made about how easy things were to do with ColdFusion, vs. other languages. The company I am at now writes both php (for legacy apps), and ColdFusion, which we have been in the process of switching over to. We will maintain ColdFusion with some of apps, but will be adding Java programming with a little jsp to our platter of very diversified programming languages we used. My heart almost stopped and I almost had an infarction when I saw some .NET languages in some of the apps that we link to...I thought I was going to have to write .NET also, as well. }:-{ I have had nothing but bad luck with .NET. Maybe some day, if I get a job that requires it, I will have a mentor that helps me out and makes it easy, but that hasn't happened so far.

Ok...the point I am getting to...the ease with which ColdFusion allows you to do things, certain things, can not be beat when it comes to some tasks you are wanting to acheive with your application.

@Elliot brought up the pdf thing with php. I'll add to that excel spreadsheets. I have been able to very easily link reports (written using ColdFusion, but not anything that was built-in) to excel spreadsheets, develop the code for the data that was to display in the excel spreadsheets, create them and display them using ColdFusion. There is a way in php, but it is MUCH more difficult, and it is darned stiff in it's approach to things like column alignment, etc. You can have data going all over the place, and showing up in all kinds of different columns, related to records it doesn't even relate to if you're not careful and very picky with php. You have to go through it stringently if you miss 1 or 2 or more integers in column definitions to get the columns and data to align correctly and to be relating to the same thing using the php methods of exporting to excel that I have been using.

And there may be an easier way with php, and I would welcome wholeheartedly anyone's suggestion to this easier way, but I currently don't know it.

But with ColdFusion. So simple. And you can just simply use tables displaying tabular data when accomplishing a task like this. ColdFusion a hinderance or liability? Sure. If you consider it a hinderance and/or liability cutting down time that it would take you to calculate out all of those columns, and/or getting all of those numbers exactly right in php, and then, if you do happen to get something wrong, hunting and searching for what is wrong and trying to fix it vs. being able to simply display tabular data nicely in a spreadsheeet using ColdFusion, cutting your time from a day's worth of work (6 to 7 hours) vs. a couple hours MAX to do the same thing in ColdFusion.

Even if you could somehow, someway make the argument that ColdFusion was obsolete, that it had no revelance in the world of Web Development, yaddy, yaddy, yaddy, and make it sound valid, in my personal experience of ColdFusion, I have not stayed out of a job for a long period of time since I got into it. Heck, I have had jobs thrown at me, and I have had jobs and the offer of jobs when I didn't need or want them. So, even if it is a "dead language", or whatever, there sure are a heck of a lot of people using it! And if it pays the bills, why are we complaining about it? If it creates jobs, why is that a bad thing? The bottom line is that there are jobs, tons of jobs out there for ColdFusion programmers...it is an awesome field to be in, and in this economy, I don't think that too many people can complain about something that brings meat to the table.

If, like my programmer friend (whom I do respect, by the way, I just don't agree with his assessment) says, support for ColdFusion was pulled, there would be tons of people screwed and screwed out of a job. I really don't think our economy could afford that.

@PJ, And there are PLENTY of companies and governmental agencies...and I am going to use governmental agenciees as well, because that is a job, and they should be respected, as well as schools, etc., that use ColdFusion. I will list what I can, but you can do further research if you would like to find more:

AT&T

A company called Cedar Fair uses it. If you have no background on Cedar Fair, they are an amusement park company that owns Amusement parks such as Carowinds, Kings Dominion, etc. I believe they bought out Paramount. My uncle was a millionaire who invested in the stock market, and that is partly how he got so rich, and Cedar Fair was in his investment portfolio, so it is fair to say this is a good company to consider influential and bearing mentioning in a list of respected companies.

Fuel Intereactive uses it. Fuel Interactive developed a very intensive hotel reservation system, sites for specific hotels, and many city-dot-com websites as well. So the next time you check into a hotel, think of ColdFusion and Fuel Intereactive. :-)

Various Governments use it. Among these are city governments. For example, the City of Cheasapeake uses it, and the City of Gastonia uses it.

I know there are Federal Governments and Federal Government agencies that use it as well, I'm not 100% sure of what those are, though.

Various colleges and community colleges use it. One example of one community college that uses it is GTCC, but I know there are others.

Television and radio stations use it or have used it. Among these are WBTV and their affiliates, and 107.9 the link and their affiliates.

I know there are banks that use it as well, including, but not limited to BoA (Bank of America).

Market America uses it. This company rakes in millions in revenue a year, and keeps hundreds of people employed (being good for the economy), so they do deserve some respect and being on this list. ColdFusion makes for the owners of this company millions to billions a year.

And the list goes on, really. My knowledge is limited, but do a little research, and you will find many, many more examples, I am sure.

And true, there are some companies that use it, then stop using it, and then sometimes they go back to using it. There's always gonna be that. As well as, there are companies, Bank of America probably being an example (but I am not 100% sure, as I don't work there, never have, so I have no actual personal knowledge of this), that use ColdFusion, but they also use other languages. Sometimes, companies are SO HUGE that they have many different divisions within the company, and one of the divisions may use ColdFusion, and another may use another language, but it is still being used at that company.

^ longest comment ever? maybe?

Reply to this Comment

CF is not dead. My company uses it for a large portal site that among the top 5 in its industry.

I'm not using it anymore because I switched roles. I'm glad, but not because I hate it. There were things I liked and things I didn't like.

That's held true for every language I've used.

But I really, really did hate CF's regex implementation. It's awful. Unless it's changed in the last 2 years or so.

Reply to this Comment

@Usme Cah, thank you for your response and contribution to the conversation. I'll be the first to admit, my experience with regex is weak. So I have no idea what you are talking about with CF's regex implementation. I have had a little experience with regex and CF. But I also have not worked with any other language and their regex implementations either, so I don't know. I don't hate anything about CF. There are some languages that have things about them that are very difficult to do/use, but I haven't had much of a problem with anything like that with CF.

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.