What is Cold Fusion?

jdavidb on 2004-09-16T20:31:25

Looks like I'm going to be learning and using Cold Fusion at work. So what is it? This is basically a PHP competitor, right? Running on top of Java? Who here has used it? Thumbs up or thumbs down?


CF

vsergu on 2004-09-16T21:04:39

I used ColdFusion several years ago. I found it frustrating. It's apparently designed to be easy for HTML coders to learn, not for programmers, so it's more like a complicated templating module than a real language. Amazingly, you couldn't even write functions in it until version 5!

I'm sure it's changed quite a bit since then, but honestly I don't understand why it's still around, except for legacy sites. When CF first started there wasn't much competition, but nowadays I can't think of many reasons to use it in place of PHP (or ASP/VBScript, if you're in that world). Some people are using it for new things, though, so I'm probably missing something (or they are).

Incidentally, several years ago they changed the name from "Cold Fusion" to "ColdFusion", presumably for searchability.

Re: What is Cold Fusion?

grantm on 2004-09-16T21:24:45

This is basically a PHP competitor, right? Running on top of Java? Who here has used it? Thumbs up or thumbs down?

I dabbled in it some years ago and came away unimpressed. I certainly don't recall any Java connection. The basic idea was that an HTML jockey could learn these new tags and put them in .cfml pages. A module in the web server would parse the tags and replace them with real HTML. The idea being that HTML jockeys understand tags so extending HTML by adding more tags is 'natural'. If you've ever tried to read someone else's XSLT then you'll know how hard to read tag-based code can be.

The big advantage of Cold Fusion is the number of working components you get 'out of the box' (eg: discussion forums, form to email, etc). There is also a scripting language (BASIC like?) that you can use to make your own components as an alternative to doing everything with tags. The framework supports database connections and session management and all the other things you'd expect from a free web app framework like PHP.

Re: What is Cold Fusion?

jdavidb on 2004-09-16T21:41:13

As for the Java connection, my understanding is that the present version basically compiles to run on a (server-side? or both server and client?) JVM. I'm pretty sure that's a newer feature.

Re: What is Cold Fusion?

ziggy on 2004-09-17T02:23:58

Yeah, they threw out the implementation and switched to the new Java one around 1998 or so. They rewrote the whole thing from scratch as JSP or Servlets or something. That would have been CF 3 or CF 4 or so. Surprisingly, they claimed to get a big performance boost with the rewrite, but I don't know the data there. Could be switching from crappy C code to better designed Java code. Could be surfing Moore's Law. Could be better quality pixie dust. I never cared enough to look into it very deeply.

I think that it now runs both client- and server-side. There was a discussion about rewriting the big monstrous webapp at work into something else. The local ColdFusion bigot was touting all of the features of ColdFusion. One of them was the IDE that let you build and your system from your Windows desktop with pointclickety goodness.

Why use ColdFusion?

ziggy on 2004-09-17T02:56:12

As I mentioned above, I never really cared enough about ColdFusion to do more than look beyond the surface.

But there was talk to rewrite the big nasty webapp at work some other language. The contenders were mostly Perl and Python, with Scheme, Smalltalk and Forth thrown in for fun. (It was Friday. The RAID array was down. For a week.) One of the other members of the team seriously put forward this week's platform from Microsoft, and ColdFusion.

We ignored the Microsoft platform outright (we deploy on Solaris), but this guy did make a not-completely-implausible case for ColdFusion. In managementspeak, ColdFusion isn't about the language, it's about the platform. Given a codebase written in any language, really, the issue is the rest of the platform -- the IDE, the deployment environment, database connectivity, connection pooling, components, scaling up and out, etc.

Now, I couldn't care less about ColdFusion as a language, but as a platform (a "whole product" in projectmanagementspeak), there's something worth examining here. Do these features make sense, or are they there to make better sounding marketing collateral? Given real programmers, are these features even necessary, or is the point to codify good development practices so you don't need great hackers to write a moderately interesting webapp? I don't know, but that was the only part about ColdFusion that I found even vaguely alluring....

Be scared ... very scared.

Purdy on 2004-09-17T16:04:20

I wrote about my experience a while ago here and it is not a fun thing to program in (as prev. posters have mentioned, it's more of a HTML thing and designed to integrate directly into the web page).

Sorry, dude.