Fog Creek Software
Discussion Board




Cold Fusion

I was just wondering on what your thoughts are about Cold Fusion.  There is a website being built that needs security and will connect to SQL server and there is a firm that really wants to do it in Cold Fusion.  Any thoughts?

inquiring mind
Tuesday, April 27, 2004

I have never used Cold Fusion myself so I really can't say.

I know that Pud has said terrible things about it and he went to the trouble of porting his famous vulgarly-named website from Cold Fusion to something else (ASP?) because CF was, in his opinion, insufficiently stable for real web servers. That's just one anecdote. Ask a dozen programmers, you'll get a dozen anecdotes. My preference in starting new projects is always the same: use the technology that the development team knows best.

Joel Spolsky
Fog Creek Software
Tuesday, April 27, 2004

You can blame the five minutes of confused look on my face by noting that I was reading this article just before this one...

http://www.technologyreview.com/articles/wo_hecht042304.asp

Edward
Tuesday, April 27, 2004

Especially since, even using the traditional physics definition, Joel's reply still makes sense (albeit a more arcane kind of sense)

Philo

Philo
Tuesday, April 27, 2004

I haven't used Cold Fusion since 4.5, when the comparison was with ASP. In that arena, the neat thing about CF was the ability to really rip out websites fast - you could do any kind of grid in something like four tags.

However, ASP.Net has made that less appealing now, since you can do the same thing in ASP.Net without having to pay five figures for an application server...

CF vs. JSP I don't have the background to comment on. :-/

[disclaimer: I'm a Microsoft employee]
Philo

Philo
Tuesday, April 27, 2004

Add PHP to the equation & I don't think CF stands much of a chance in today's world.  CF doesn't match up to either PHP or ASP.NET in any meaningful way AFAIK.

dir at badblue com
Tuesday, April 27, 2004

Being someone who actually *uses* ColdFusion on a daily basis, I'd like to add my two cents.

ColdFusion is incredibly easy to get started with.  And once you're an expert, it's incredibly fast to develop.  The syntax for <CFQUERY> is so much easier than opening a database connection in any other language.  In the more recent versions, you can turn ColdFusion Components into web services by adding *two words* to your source code.  It would take weeks to do the same thing in Java.  Same thing is true for many, many other features.  If you don't need granular control over how database connections are pooled, for example, then ColdFusion may be right for you.

One downside is that it's very easy to create spaghetti code if you don't plan ahead.  But with ColdFusion MX, you can write back-end components in Java and keep the front-end in ColdFusion.  Java components integrate very easily and perform as well as if you had written the whole thing in native Java.

As for server stability: ColdFusion application servers has been quite stable since version 5.0 or so.  ColdFusion MX 2004 (a.k.a. version 6.1) is rock-solid on our many production servers.

Performance is adequate: not amazingly fast, nor particularly slow.  Chances are the application server will not be your bottleneck anyway, but rather the database or any other kind of external system you're interfacing with.

You can download the developer's edition for free, and if you do end up deploying it on a production server, the application server is around $1299 or less (not "five figures" as another poster claimed).

So, I encourage you to give it a try... don't make a decision based on the preconceived notions of a lot of people who don't actually *use* the technology.

Ryan
Tuesday, April 27, 2004

I worked in a CF shop for a few years (but don't write it much)

These days you can do everything you'd need for a webapp CF.  The question is: do you want to?  Personally, no.

Sassy
Tuesday, April 27, 2004

I'll second most of what Ryan said.

I too work with CF. (Well, now I just manage projects...) CFMX is probably the easiet language to develop in, but we've had some weird stability issues running it on Unix. Both CF 5 and CFMX. Pre-CFMX was orginally built for Windows and it creates this weird registry-type-thingy in Unix. It just crashes for no reason every once and a while. CFMX runs inside of JRun, and I think JRun was orginally written for Windows. I'm not sure how stable it is on Windows but we've had some stability issues with the JRun/CFMX server on Unix (Solaris).

With that said, CFMX is probably the coolest custom tag library for Java. (I'm talking to you JSTL people.) At the end of the day all the CFMX code is compiled into Java classes (servlets), so it's pretty fast and can communicate with Java pretty easily.

If you are looking for maximium flexibility and functionality you probably want to move to JSP or J2EE.

.....wow, that was kind of a ramble.... it's getting late...

:)

michael sica (michaelsica.com)
Tuesday, April 27, 2004

"But with ColdFusion MX, you can write back-end components in Java and keep the front-end in ColdFusion."

"You can download the developer's edition for free, and if you do end up deploying it on a production server, the application server is around $1299 or less (not "five figures" as another poster claimed)."

If I read the feature matrix right, if you want the Java stuff, it's $6k/2 CPUs. Quad box or more than one server (let's say, perhaps, one for testing and one for deployment?) and you're at five figures.

Consider that you still need an OS, so if you're running Linux, PHP is free; if you're running Windows, ASP.Net is free. And each are as capable.

I'm honestly puzzled on what's worth the $$$? Anyone here done ASP.Net and CFMX and can comment?

BTW, using Visual Studio, a datagrid in ASP.Net is two drags and a few clicks. ;-)

Philo

Philo
Tuesday, April 27, 2004

Cold Fusion was always the preserve of your "multimedia guru" who didn't understand real programming.


Wednesday, April 28, 2004

I have worked with CF, ASP, JSP / Servlets & ASP.NET.

I feel that CF is good for simple things that need to be done fat. However, once you need to start getting more complex, the tag like language feels like handcuffs.

As a programmer, I would much rather right code than use tag like languages that are supposed to do things for you.

Some mentioned above that with the MX version you can write Java components and just use CF as the front end. That sounds like the best way to use CF - just as a GUI.

After using all of these technologies I feel ASP.NET is superior.

genx'er
Wednesday, April 28, 2004

I just lost all credibility for not checking my spelling:

I have worked with CF, ASP, JSP / Servlets & ASP.NET.

I feel that CF is good for simple things that need to be done fast. However, once you need to start getting more complex, the tag-like language feels more like handcuffs.

As a programmer, I would much rather write code than use tag-like languages that are supposed to make life "easier."

Some mentioned that with the MX version you can write Java components and just use CF as the front end. That sounds like the best way to use CF to me - just as a GUI.

After using all of these technologies I feel ASP.NET is superior.

genx'er
Wednesday, April 28, 2004

My second-hand opinion is that Cold Fusion is very good. Those I now who use it consider it superior to ASP and PHP. I've never used it, I use PHP because it comes free with my web host.

Mr Jack
Wednesday, April 28, 2004

Philo,

The ColdFusion pricing is per-server, not per-processor.  If you're running a box with four CPUs, it's still just $1299.

Is it worth it?  Well, that all depends.  Is your time valuable?  I'd venture to guess that our developers here can be 40% more productive with ColdFusion over PHP.  We can get all of our work done with 20 developers, vs. 28 for PHP.  Those eight salaries per year would cost a lot more than $1299 a server.

Ryan
Wednesday, April 28, 2004

Someone once told me that CF is to Web Development as VB is to programming.

Interaction Architect
Wednesday, April 28, 2004

CF is a very elegant language, but if you don't rigidly enforce good coding practices, your code can turn into a mess pretty easily.  People who try to tell you that it's a toy language are misinformed.  There's very little the language can't do.  If you need to do some heavy lifting, you can always call functions from other languages.

There are some frameworks out there like Mach-II that make it easier to develop big applications.  For new projects, I would suggest using it.

The CF application server used to suck a few years ago.  The new one works as a J2EE application, and is pretty awesome.  It is certainly "enterprise capable".

It's more expensive to buy the CF server, but $1200 isn't that much in the grand scheme of things.  You really only need the Enterprise edition if you're going to be using a full-blown J2EE server, or you need clustering.

CF is a much more elegant way to work than PHP or ASP.  When I first started playing around with ASP.Net, my first reaction was "wow, they borrowed a lot of ideas from ColdFusion".

One drawback to CF:  Since it's not as popular, you won't find as many third-party components.  Macromedia maintains a list of them.

CF is also a lot more popular than people realize.  We had a discussion on the other forum a few months ago about it (you should be able to search for it).  As I remember, there were more pages out there using CF than JSP or ASP.Net.  PHP and regular ASP were more popular though.

Myron A. Semack
Wednesday, April 28, 2004

I would agree that you would want to go with the language that the development team knows best.  Our shop primarily uses CF so that's what we know best.  If a client wanted their website in something else we could do it but, we wouldn't feel as comfortable and it would take longer to accomplish. 

As far as stability goes the newer versions are much better.  It also depends upon the code.  We had a programmer who wrote just some of the most horrible code.  Our server had significant problems.  Several months after he was let go and his code had been replaced, the server was humming along nicely. 

I have to agree that if feels like a mickey mouse language.  It really doesn't feel as powerful but I think part of that is the heavy reliance upon tags.

I also have to agree that the price tag for the enterprise edition of MX is eye-popping.

double_dark
Wednesday, April 28, 2004

"People who try to tell you that it's a toy language are misinformed.  There's very little the language can't do.  If you need to do some heavy lifting, you can always call functions from other languages."

You mean:
"There's very little the language can't do for building web applications".

CF is a toy language in the same way that PHP is a toy language.  The difference being that PHP is close enough to C / Java that anyone should be able to pick it up.

CF does one thing well, and that is a good thing.  But you'd probably want to be prepared for the eventuality of having to do something other than the one thing that CF does well.

Sassy
Wednesday, April 28, 2004

Some people call ColdFusion a "toy language" compared to PHP, ASP, etc.  My point is that CF is just as capable as they are.

It's by no means a replacement for C or C++.  It would be pretty cool if it was. :-)

Myron A. Semack
Wednesday, April 28, 2004

I was browsing programming books at Borders a while back when a couple guys walk up and look over the books on display.  One says to the other, "Look at this book.  Learn ColdFusion in 24 hours?  What is this, some kind of joke?"

Ah, I think, here are a couple of _real_ programmers who realize that those learn-instantly guides can't really ground you in the concepts you need to be a career programmer.  I bet I could learn a few things from them.

As these thoughts pass through my head, they walk around the table, and then I hear one of them say, "Wait a minute, this is the _programming_ section."

Kyralessa
Wednesday, April 28, 2004

This guy is one of the hottest ColdFusion programmers on this planet:

http://www.jeffhowden.com

Check out his code library.

(I'm a friend of his, hence the plug.)

MM
Wednesday, April 28, 2004

"BTW, using Visual Studio, a datagrid in ASP.Net is two drags and a few clicks. ;-)"

Leaky abstraction.

How much code is generated by those drags and mouse clicks?  It might still be much more complex when it comes time to maintain it or figure out what's really going on.

Jim Rankin
Wednesday, April 28, 2004

The 2-click datagrid is useless, bloated and a problem waiting to happen. You will *eventually* get kicked in the ass by it (try working around the viewstate for a couple days)

ASP.NET's design-time stuff is not gonna cut it.  It reformats your HTML , for chrissakes.

Still, CF is tags, and tags suck.  CFscript is clever but negates any purported advantage of CF by attempting to be a real programming language.

By the time you add all the Fusebox, Mach-II, custom tags, and CFC's you'll need to make CF useful, you'd have been better off just going with practically anything else.

Sassy
Wednesday, April 28, 2004

Boy is there a lot of programming snobbery here. What exactly is a *real* programmer? Who cares anyway - if you can get the job done more easily in Coldfusion than anything else good luck to you.

Matthew Lock
Wednesday, April 28, 2004

I used to program exclusively in CF.  CF was very good to me.  I was a BS in MIS graduate, but coulnd't find a job and was working in a gas station, as all I got out of college was the dying COBOL syntax. 

Thanks to a lucky break I self-taught myself CF and HTML, and was able to do a lot.

I think CF made things really simple for Web Applications.  The simplicity of it however made for some badly coded sites by programming novices--I had the benefit of training in database normalization and proper structured code, so I didn't have that problem.  Some sites however suffer now that they need to be upgraded--I've seen some really old code that isn't structure well and doesn't work with the Java versions without bombing out.

"Not a real language" means nothing to me.  If it does the job well, why complain.  Seeing as how ASP.NET and newer JSP specification has taken some of the CF factors, I think CF did something right early on.  Tags serve a good purpose when dealing with web output.

I think CF has suffered lately due to a few factors.

1)  Allaire merging with Macromedia.  Macromedia seems to have a different culture that is not geared toward programmers.  When Allaire still existed, it was wonderful--they generated excitement about their products, had beta tests and conference calls, they knew what programmers needed, etc. 

I get the sense MM pushes Flash and design over coding.  They seem more interested in promoting stuff like Flex over stuff like HTML and database stuff.

2)  Lack of recent innovation--CF hasn't changed or improved significantly since 4.5.  Meantime, Microsoft created ASP.NET, giving us the best of both worlds, and Java created JSP Tag Libraries.  And both technologies are "free".  With the 2.0 ASP.NET version, I can use the CF way of creating SQL queries.

John R. Troy
Wednesday, April 28, 2004

"2)  Lack of recent innovation--CF hasn't changed or improved significantly since 4.5."

I would disagree with that.  The newer MX version offers some pretty big improvements in terms of perfromance, scalability, and J2EE integration.

Myron A. Semack
Thursday, April 29, 2004

"Boy is there a lot of programming snobbery here. What exactly is a *real* programmer? Who cares anyway - if you can get the job done more easily in Coldfusion than anything else good luck to you."

I think people come to "real" programming by realizing the power that a full language gives you to get from the computer  anything that you can think of, from complex mathematical calculations to 3D graphics and sound.  There is satisfaction and joy in doing "real" programming.  I've had students, pre-dot-com-crash, who said that money was all that mattered and programming would give them a well-paying job.  Maybe they are selling real estate now ( and making much more than I am ).  If you do CF to pay the bills, fine ( I have no desire to starve, either ), but there is more...

Barry Sperling
Thursday, April 29, 2004

"By the time you add all the Fusebox, Mach-II, custom tags, and CFC's you'll need to make CF useful, you'd have been better off just going with practically anything else. "

Except that you don't have to do that...

Myron A. Semack
Thursday, April 29, 2004

It's much easier to develop a web app inside of a framework. Fusebox, Mach-II, Struts, or roll your own. (But only roll it once, and then re-use it!)

The framework will help organize, and helps with having your web app use a controller so you have a single point of entry into your app. That single point will make security or dynamic layouts that are easy to maintain a lot easier....

michael sica (michaelsica.com)
Friday, April 30, 2004

I agree that it makes it easier, however Sassy is suggesting that you need tons of extras tuff to make CF useful, and that simply isn't true.

Myron A. Semack
Friday, April 30, 2004

You don't *need* that stuff, just like you don't need OOp and class libraries. But it sure is nice to have, ain't it?

Sassy
Friday, April 30, 2004

The framework is nice, but you also mentioned CFCs, custom tags, etc.  You don't need to those things to develop a robust application in ColdFusion.  And even if you do add them, it's not a huge amount of effort.  No more than say plugging in a custom component to ASP.Net.

You're making CF sound far more limited than it really is.

Myron A. Semack
Sunday, May 02, 2004

I used Cold Fusion back in the 4.x days when I managed a bunch (approx. 35) medium size websites for various professional organizations. I have no regrets over using CF.

Programmers from the world of Java/C/PHP will probably scoff, but as the manager of the team, the only thing that mattered was that our productivity enabled us to focus more on sales demos, features and other improvements.

The learning curve was very mild. Our small team consisted primarily of ASP/Perl developers, but they became solid CFers within a few months. Sure, like most programmers, they balked at first, but the bitching stops pretty quickly when you're completing projects on time and winning clients.

So, from a manager's perspective, I didn't necessarily care if they wrote the code in sanskrit. The fact was, in our market space, we kicked some ass and our choice of tools was not an insignificant factor.

Edoc
Tuesday, May 04, 2004

*  Recent Topics

*  Fog Creek Home