ColdFusion Authors: Yakov Fain, Maureen O'Gara, Nancy Y. Nee, Tad Anderson, Daniel Kaar

Related Topics: ColdFusion

ColdFusion: Article

Is ColdFusion Dying?--Why has Macromedia made a big deal of the fact that CFMX is built on Java, asks software development guru

Is ColdFusion Dying?--Why has Macromedia made a big deal of the fact that CFMX is built on Java, asks software development guru

When they hear that I run a class entitled "Java for ColdFusion Programmers," many developers ask me: "Why the class in Java? Is ColdFusion dying?"

It's a fair question. After all, technology in general and languages in particular have a lifespan. It's also true that ColdFusion is being squeezed by two behemoths: Java on the one side and .NET on the other. That's clearly an unenviable position. Yet Macromedia is working very hard to ensure that ColdFusion does not become a casualty. Can ColdFusion withstand the pressure and continue to thrive? It's an important question because only thriving languages generate high salaries, interesting projects and perks for their developers.

Answers to questions like that usually get argued-passionately-by people on all points of a spectrum. In this case, the spectrum has two extremes represented by the statements "CF is dead" and "CF will live forever." Given the extremes, many developers may feel that a middle course is safest and probably the most accurate. To this, I can only borrow the words of the American newspaperman, H.L. Mencken, who once wrote: "For every complex problem there is an answer that is clear, simple. . .and wrong."

I think there's a problem with the question and the debate it generates. It's not just that discussions of this sort tend to generate a great deal of heat without shedding much light. I'm not speaking only of the seemingly natural way that passion turns into anger in such debates, but of the fact that the answer is simply unknowable. And it is exactly that unknowability that should concern us.

By asking a better question, we're far more likely to come up with a better answer. Perhaps a better question than "Is ColdFusion dying?" is "How do I manage the risk that the language with which I make my livelihood will, at some point, decline?" One engenders passion; the other reflection.

The answer, I believe, is simple: prepare now for that point-whenever it may be-that you need to know a new language. Macromedia has made a big deal of the fact that CFMX is built on Java. Go to macromedia.com/desdev and you'll see articles about object-oriented programming, object modeling and design patterns. CFMX represents a fundamental shift in Macromedia's vision for ColdFusion and it's a vision that's tightly tied up with Java. Macromedia has also been careful to tell ColdFusion programmers that they will not have to learn Java. Yet it is undeniable that Java is the 800-lb. gorilla of programming. Ignoring it is something we do at our peril, it seems to me.

Both .NET and Java are built on object orientation. ColdFusion is not. While the introduction of CFCs is most welcome, ColdFusion does not have the power of a true OO language such as C# or Java. (Of course, neither does it have the complexity of either of these languages.) CFCs, though, can be a very valuable way of easing into the object world. In fact, I've just finished a book, Discovering CFCs, and an e-workbook, "Studies in Discovering CFCs", that deal with CFCs and objects (available for order at www.techspedition.com). Even if you do nothing with Java, my first advice to you is to study CFCs and begin to learn OO concepts and apply them to CFCs as much as possible.

My advice: "Learn OO and Java."

My next advice is to devise a plan for learning OO programming and Java. I can't promise you that this will be painless. Every OO teacher and trainer knows how hard the shift in thinking can be for programmers coming from procedural languages. Still, procedural programmers do become OO programmers-else we would have none today!

With commitment and hard work, "Java terrors" can be tamed. My experience of teaching others OO is that developers go through the following stages:

skepticism: who needs objects?
confusion: these new terms and unfamiliar syntax make me dizzy.
dawning: ah, now it starts to make some sense.
enthusiasm: OO rocks!

The trick, of course, is to make it through the first and second stages.

More Stories By Hal Helms

Hal Helms is a well-known speaker/writer/strategist on software development issues. He holds training sessions on Java, ColdFusion, and software development processes. He authors a popular monthly newsletter series. For more information, contact him at hal (at) halhelms.com or see his website, www.halhelms.com.

Comments (8) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Most Recent Comments
Tom Minderson 12/28/07 02:28:24 AM EST

OOP does not work well for business applications. Even some die-hard OOP proponents have agreed after coming from other domains. CF should promote the niche of being a data-centric language. Being data-centric has kept FoxPro going for as long as it did, despite lots of legacy baggage. Data-centricity is an under-served niche. Don't fall into the OOP fad-trap. I've never seen it prove itself superior for custom biz apps. Ever.

mufu mofi 11/01/03 04:13:10 AM EST

With all the sites being migrated from cf to asp.net, java whatever, I have to say I am really sick of people arguing about this.

Yes I wish coldfusion was being better supported, I wish sense would prevail, I wish ColdFusion had a future. But wishing it doesn't make it true.

ColdFusion will always do the job better, but if people don't buy it and use php open source crap or oo crap, Macromedia will not support it either.

They aint doing it for the love and when the money runs out in the sales column, it will be as dead as spectra.

Don't let that stop you using it, just be careful in the job market and check the numbers of jobs that need your skills.

Craig M. Rosenblum 01/06/03 01:57:00 PM EST

The real answer lies in between.

Sure we can learn java or C# or .Net.

The real question where does macromedia or coldfusion fit in?

I'd say it doesn't.

Instead of looking at the crappy ideas of others, let's have our own idea.

The whole goal and purpose of ColdFusion is Rapid Application Development.

Of course languages, evolve, but sometimes, too much change, can make it into a kludge.

Right now coldfusion is trying to do too much. Let's focus on the core essentials of ease of use, rapid development, scalability, ease of working with different databases.

There are better ideas to go for instead of the OO crap.

How about a ColdFusion Compiler. It can pre-compile in CFMX. But not in a saveable format. Let's take advantage of the ease of coding and developing in CF, but take advantage of the core code in JAVA or C that it gets converted to.

This is just like the Usability vs Flash crowd over on webmasterworld.com.

The real question is the real world, I really don't care how cool a language is. I care how usable and adaptable it is too my needs.

And as those needs evolve I need to learn how to use it better, and I have. That's what experience brings to the package.

I like Hal Helms, I may disagree with him a lot. But he is a very straight up guy.

I really hate that macromedia owns ColdFusion. Maybe allaire wasn't perfect, but back then they had a head on their shoulder.

I think in all reality, they've lost the common sense of what really matters.

Pardon my language, but I don't want no stinkin' rich media websites.

I want more usable, scalable, adaptable websites.

I think the more interesting aspect of the web is the database end more than the code. But for now we need a middleware to connect the database to the web.

Anyways this is what I really think.

12/03/02 08:52:00 AM EST

Hey Brogna-
It's not Cold Fusion, it's ColdFusion. You'd think you would have picked that up since CF 2.0. Nice tirade.

R. Brogna 10/24/02 01:45:00 PM EDT

I've been using CF since version 2.0 and have graudated my skills over the years to include other languages: Python, C++ , Java and Assembly Language. Although I do like CF, it never surprises me how many Cold Fusion developers call themselves Software Engineers or even Software Programmers??? Scripting is a bit more accurate.

I'd like to point out that obviously there are other languages that equallly rival CF: PHP, ASP, JSP...etc Want real job security? Learn those too. Macromedia is a company that have axed a lot of good developers over time. I can't really respect that.

Part of me wouldn't care less if it died, it would certainly weed out a lot of jokers who shouldn't be in this field in the first place.

I applaude the efforts of any Cold Fusion person to learn OO programming. I would suggest more companies look into to other comparable technologies to CF ...like PHP and MYSQL because usually, that's all they need.
Instead, some guy j#rkoff like the a$$hat who created Fusebox tries to sell some naive CTO or CEO on it. Somebody please staple that guy to a tree....I beg of you!

Michael 10/14/02 01:13:00 PM EDT

Hmmm,my view is that I see CF staying around for a very long time, I dare say that MM is going to put allot of time and money in this product. I was taught CF by a very brillant man who left this company and started his own amongst others that are also evangilists of CF and Spectra. In the first class, It was mentioned that ASP stood for awfully slow pages. And that was that. I love coding in CF more than anything else. Tied in with SQL2000 the most powerful database that blows Oracle away imho and you have a powerfull combination. Hal Helms has views and say, he has Fusebox which is cool and is trying new stuff, and thats all it is is STUFF. Well its back to work in CFMX and I will endorse it all the way. Its not dying, and Miscrosoft is playing catch up with security holes in . NET, There always going to be playing catch up. Unless they can steal CFMX like they did with OS's and GUI's .

Farmer 10/07/02 11:50:00 AM EDT

Have you ever seen a program written on a punch card? Have you seen a program written in the 60s or 70s? Neither have I. But I am quite sure that programming techniques have been changing from the dawn of the craft. Of course things die and evolve. CF is not dying, it's evolving.

As programmers we need to evolve too. Things are changing and I don't believe that OOP will be the only survior. But it is becomming more and more important every day. Some languages can't do things others can and some just do them better. It's my beleif that alot of serious application dev requires OOP to be successful.

Don't feel like you must learn to love OOP to survive in your field. But decide where you want to go in your field and find out what you need to learn to get there.

One thing is for sure, programmer that don't strive to adapt will stagnate.

Sean Scott 10/06/02 08:25:00 PM EDT

Well off-course it should be noted that Mr. Helms is by no mean an unbias viewpoint. He does after all teach a Java classes to Coldfusion programmer.

Getting more coldfusion programmers to take his class would fatten his bottom line.

Does Mr. Helms trully care about the death of coldfusion or is this nothing more than a cheap marketing trick?

Having programmed in all of the said above languages, they each have their strenght and weaknesses. As far as I am concern to program in Coldfusion or .Net or Java or PHP for that matter amounts to speaking a sentence in different languages. The goal is the same, the methods are different.

The only real reasons behind a languages death, is the parent company's marketing dollar behind it. coldfusion will only die when Macromedia ceizes to think it can make money on it. Same for .Net or Java.

Until then I chose to program in Coldfusion.