views:

1625

answers:

15

I've looked into the benefits of PHP, ASP.NET, Python, Rails, etc. These technologies seem very popular among folks here, but I don't see too many ColdFusion questions.

Is ColdFusion a good solution for working with popular JavaScript frameworks such as jQuery? Also, what would be a good IDE to use for building a ColdFusion based web site? Are there any good books, or learning material on the subject?

+10  A: 

No.

It's expensive, hard to extend (because it requires another language to do so), has very weak OO support, an over-reliance on coding through convention, and because it has its own syntax(s) (including a truly depressing pseudo-ecmascript clone) is relatively hard to find developers and support for (as you've noticed on this very site).

In comparison I struggle to think of any area is which it exceeds any other framework, or provides a notable advantage. Possibly if you were up to the hilt in other Macromedia/Adobe products there's some cross-compatability benefits.

Stick with .NET / PHP / JSP / Rails.

annakata
if you disagree enough to downvote, perhaps you could provide a counter-argument for the poster's benefit?
annakata
Just throwing that FUD around aren't you.
rip747
Not really given that I've worked with it.
annakata
please... no PHP ! ~:-) [from a .NET guy]
balexandre
wow: +13 -6, now that's controversial. Genuine /applaud at everyone who actually provided counter-answers
annakata
I agree with all but "expensive" (Windows ain't free), but I wouldn't consider them killers or even unique to CF: .NET, PHP, JSP and Rails are equally idiosyncratic, and the OO point is, if true-ish, not necessarily relevant by definition; some folks just don't need OO. (No downvote, though.)
Christian Nunciato
I think it beats a great many frameworks on the speed of initial development on a small project.
Chase Seibert
sure as hell doesn't beat RoR, and doesn't beat asp.net for me - I couldn't speak for the others really
annakata
"Definitely beats .NET and especially Rails" -- sounds almost as ridiculous as your own comment doesn't it? Definite down vote for straight forward FUD.
modius
1) You always develop coders, regardless of what languages they do/don't know. 2) Not mentioning a single positive of CF, which it has over all the other languages sums up the perspective you're trying to share. CF coders tend get more done with less effort than any other language.
Jas Panesar
1). You will be *limited* at the point of hire. Very simple supply/demand here. 2). Obviously, this is only my personal experience, but I have exposure to CF and RoR and I don't think it's close at all, nor do I find CF especially rapid when compared to .NET. What else you got?
annakata
Anna; 1) Hiring programmers with experience is hiring their habits, good and bad. Best to work with a clean slate. Real programmers can learn any language anyways on the other end. 2) Your personal experience seems to have been on a bad day.
Jas Panesar
At the end of the day you are entitled to your preference, it might not make it fact. Check out my post and let me know what you think. I am far more productive in CF than .NET, that's me. I don't like wasting time on syntax and fiddling with third party libraries in .net. All the best.
Jas Panesar
@Jas - fair enough, but you realise of course your preference doesn't make it fact either :) I seem to have drawn out the (if you'll forgive the term) CF fanboys here, I'm at +16/-10 now.
annakata
+3  A: 

To address the jQuery part of your question: Javascript framework usage is almost completely independent of server side coding, so to ask whether Coldfusion is a good solution to work with jQuery doesn't really make sense, as for this all server side technologies will be equivalent.

To address the IDE question: I believe most CF developers use CFEclipse

Otherwise I think Annakata is pretty much spot on (and I coded in a CF shop for years).

DanSingerman
I managed to escape a CF shop as it was being created around me :)
annakata
CF 8 likes to work with ext by default
Stewart Robinson
+1  A: 

For ColdFusion IDE, you have Ecipse with CFEclipse, homesite +, Dreamweaver and now Bolt in development.

+8  A: 

I've worked with Coldfusion, Jsps and now with ASP.NET. My first job was in coldfusion so I have a soft spot for it.

While my choice these days would be to work with .NET, and bearing in mind the valid points in other posts I found coldfusion to have some benefits:

1) In terms of prototyping it's quite easy to mock things up quickly.

2) While it's hard to get developers, it's also quick to pick up. Depending on the skillset of staff it may be less of a learning curve.

3) Working with Jquery/Javascript is not as annoying as it can be in .NET land due to the mashing of client side ids (although ASP.NET MVC will improve this)

4) If you ever need to do anything that exports to pdf it's a winner.

5) Strong administrative portal for configuration/logging etc

6) It has a great charting component built in.

In terms of books the oreilly ones are good http://oreilly.com/catalog/9780596003807/

Finally in terms of the OO limitations (one of the main reasons I prefer .NET land) there are some good coldfusion guys out there who explore how to get the best out of the OO stuff the language does support (google Hal Helms)

AJM
+1 on the easy to pick up. Never heard super asp/php/ruby/jsp coders whine about learning so much. If CF makes the coding of web apps trivial, and take some mystery out of what they do, big deal.
Jas Panesar
+12  A: 

I'll tell you that I've been developing CF applications now for 11 years and I have no problem finding work. Yes, there are a ton of shops out there using it and the community is stronger then ever.

For years the biggest wall people had with using CF was that it cost a decent amount of money to purchase ($1200), however I always argued that it was a mute point. Let's face it, you could always download the developer version for FREE and you could always find a host that offered it in their plans. To me crying over the cost was something that I think people just used to push others to other languages, but so be it. However currently we have a great open source engine (Open BlueDragon) and with the future release of Railo, you're going to have yet another FREE alternative to Adobe's engine, so the whole money thing is thrown out the window.

Integrating it with jQuery is about as easy as any other language. jQuery's moto is "be unobtrusive" and if you follow that, I see no reason for the argument. Including a script tag into a page, assigning an id or class to an element is just about the same in every language out there. So if you follow the moto, you should have no problem integrating jQuery with any language you choose. I currently use it on just about every CF site I develop, it is a GOD send.

For Editors, yeah CFEclipse is about the best open source editor out there and it's the one I use. Others use DreamWeaver or some other editor and I'm sure Bolt will become the defacto once it's released (esspecially if they give it away for FREE, but it's Adobe we're talking about here). Still CFEclipse will always be my first love sniff.

As for prototyping applications and getting things done quickly, baby, look no further. Printing to PDFs, connecting to FTP site, sending and receiving mail, image manipulation, hooking up to MS Exchange and Active Directory couldn't be easier. Everything you want to do has a tag for it. And if by some strange reason you can't find a tag, you can always dip to Java or call a JSP tag to get things done. There are even projects now to able to call Groovy and Ruby from CF. Oh, and I forgot to mention that with the current release, you can even call .Net classes from it.

You want frameworks, my boy, we got frameworks. Fusebox, ColdBox, Wheels, Model-Glue are some of the most mature frameworks out there and are running some huge sites.

I might be bias but I think that CF is one of the most downplayed, best kept secrets in the development world when it comes to building applications. But, heck man, don't take my word for, download the puppy and play with it. It's the only way you're going to find out if it's something you like. If you do great, welcome to the club; if not, then best of luck on your endeavor.

rip747
+1 for pointing out the productivity strengths. Good practical stuff and very true indeed.
Christian Nunciato
Thanks for this information as well, if it was possible to mark your response as a 2nd answer, I most certainly would.
M4dRefluX
I love seeing CF referred to as a well-kept secret. Couldn't agree more.
Hooray Im Helping
+3  A: 

Yes, CF is s good choice for web development, as are the other languages that annataka listed. If they weren't good for that then no one would use them (how many web developers do you see using LISP?). OO support is often overrated, if for no other reason than most people don't do it right (including myself). CF has great support for Java, it's got better support for interacting with web services than anything else I've seen. I find it amusing that she dings CF for coding by convention and then recommends PHP, JSP, and Rails, which are all about CBC. At least in JSP there's some compiler enforced package conventions. As for the ease of finding developers, my experience has been that the ease of finding people has very little impact on finding good developers. There are plenty of us (CF developers out there).

hofo
+1 for pointing out that bit about PHP, JSP and Rails -- so true.
Christian Nunciato
"how many web developers do you see using LISP?" - I take it you haven't heard of Clojure. The answer is not a lot, but more than there were last year.
Joel Mueller
+24  A: 

It's already been answered, but I'd have to go strongly against the accepted answerer's response to say that I absolutely and wholeheartedly disagree: I'm a dyed-in-the-wool .NET guy, myself, and I can tell you that while it's true ColdFusion is strange by comparison, and it's lacking in a lot of technically specific (if not necessarily significant) ways, it's also an incredibly productive framework for building powerful Web applications, and anyone who disparages it simply out of hand probably hasn't spent enough time with it to recognize and appreciate its virtues.

It all depends on what you're looking to do. If you're a one-person operation, and you want to get up and running quickly, Coldfusion is a perfectly respectable choice -- I even use it myself sometimes. Indeed I've worked with every technology you listed, having started from scratch every time, and I can tell you that CF has always given me an excellent (probably even the best) practical return on my time investment. If I want a quick-and-easy Web service, I hack together a CFC, five lines of code, save, deploy, and I'm done. Database connectivity is ridiculously simple, and again, very little code. The truth of the matter is that a great majority of Web applications out there today could be served with ColdFusion entirely without issue. It's an excellent product, plain and simple.

But like all choices, it does have its drawbacks. For one thing, the time you'll spend learning ColdFusion won't be as repurposable as, say, the time you might spend learning a more standard object-oriented language like C#, Java or even C++ for that matter; CF is its own ecosystem, its constructs so abstracted that it's difficult to learn much beyond the details of the abstractions themselves. (Whereas by comparison, spending time with the .NET and Java libraries teaches you not only about the libraries specifically, but also more broadly about object-oriented design patterns and principles at the same time.) In my case, when I came to CF, I'd already spent years working with both .NET and Java, so it was fun -- I understood what it was for, and while I'd have appreciated some strong typing and a more full-featured IDE (indeed there still isn't one, other than CFEclipse and Dreamweaver, although I've seen what's coming soon from Adobe, and it's nice), it was perfectly fine for the project at hand. But there's nothing like CF, that's for sure, so do keep that in mind.

Another problem is that if you're evaluating CF as an option for a project that's likely to require a group effort either immediately or somewhere down the road, understand also that finding CF developers -- good ones, anyway -- is no easy task. At last year's Adobe MAX conference, a major gripe I kept hearing from attendees and exhibitors was how hard it is to find even competent CF developers. There just aren't that many of them out there, and because of the mindshare .NET, Java, etc. get by comparison, the situation isn't improving. (Which is obviously great for CF developers, but maybe not so great for CF employers.) So if you'll have to build a team, or hand off a project to a client, keep that in mind as well.

But on the whole, yes, it's a totally respectable choice. The copy I have I purchased myself (yes, I shelled out that dreaded $1,200), because two of my clients happen to use it -- and I enjoy being able to turn to it when I have to. My money is indeed where my mouth is. :)

Good luck to ya.

(Oh, and you asked about books -- I still haven't found any better ones than those written by Mr. Forta himself. Well worth the investment for sure.)

Christian Nunciato
Thanks, you have answered my question in an unbiased fashion. I kinda jumped the gun a bit accepting an answer that quick.
M4dRefluX
Awesome, glad to have helped -- best of luck to ya.
Christian Nunciato
+1 great post Christan!
Jas Panesar
+3  A: 

I make my living as a ColdFusion developer, so I'd say yes. The U.S. Government, for one, has a very deep penetration of ColdFusion. It's why I moved to the D.C. area.

Dreamweaver is a passable IDE, but most of your experienced CF developers will opt for CFEclipse.

There are a number of books on ColdFusion. "Uncle" Ben Forta (and friends) puts out a new ColdFusion Web Application Construction Kit for every version. It's now three volumes and there's still stuff that couldn't be printed and had to be relegated to PDFs because there's so much material.

Some useful resources:

Directory of CF resources: http://www.dmoz.org/Computers/Programming/Internet/ColdFusion/

ColdFusion-specific directory of resources: CF411: http://www.carehart.org/cf411/

Some of the more prolific bloggers:

Charlie Arehart: http://www.carehart.org/blog

Mark Kruger: http://www.coldfusionmuse.com/

Ray Camden: http://www.coldfusionjedi.com/

Al Everett
+1  A: 

Check out this article written by Ray Camden on adobe's website:

http://www.adobe.com/devnet/dreamweaver/articles/server_languages.html

It discusses the benefits and drawbacks of using CFML, ASP, PHP, JSP, and Ruby on Rails, as well as giving brief snippets of examples of each. CFML is still my language of choice, but, after reading this article, I am VERY interested in learning PHP and RoR.

Eric Belair
+11  A: 

This question about ColdFusion tends to come up repeatedly on Stack Overflow. I posted a detailed response if you care to read any more about it. Annakata left out one important point about CF. With CF, you can just get things done.

  • Need a PDF of the page? There's something for that.

  • Need a quick query? SOME SQL HERE. That's it.

  • Need a fancy graph? It's in there.

  • Need a blindingly fast back end for flash/flex? Got that too.

  • Need to run your app on more than one OS? How about Windows, OS X, Linux, Solaris, even AIX.

  • Need to create a web service? Just create a basic component and set access=remote. Instant web service.

  • Want to take advantage of Java? You can make direct calls to the JVM.

  • How about .NET assemblies at the same time? Yep. CF can act as a proxy between .NET and java libraries. (there are quite a few restrictions on the .NET side, though) How about sending a message directly to GTalk or AIM? It's built in.

All of that stuff is pretty darn easy to accomplish in CF. In many cases, you're talking about one or two lines of code.

anopres
You have a great point.. Maybe there's not so many questions to ask because you can just go look it up and do it. With PHP/ASP/Ruby you have to fight with someone's PDF library or someone's charting library to get it working. Enter thousands of posts.
Jas Panesar
+1  A: 

I've used it for about a year. There are some nice things about it, and some not-so-nice things about it. We were roped into using it because of validation requirements (we had out of the box software that used it, and had been validated, so it saved time/money to simply stay on that platform).

I agree with the get-things-done response, though the same could be said of other languages like PHP, Python, etc. CFScript has also come a long way, so you can avoid doing everything with tags. The language also has support for aspects of functional programming (specifically functions as first class citizens).

As for an IDE, CFEclipse is the standard, but I prefer using GVim (which has very good CF support out of the box). If you're used to Eclipse, stick with it, though. The debugging features are nice, too.

bjanaszek
+3  A: 

As i posted here think the comparison with other straight languages is not all together fair.

Adobe's Coldfusion as well as Open Bluedragon and Railo are CFML engines, as well as application frameworks with loads of extended functionality depending on which Server you go with.

The latter two options are or have free options, while the cost of adobe's product might be better compared with the cost of php's zend platform.

The best benefit imho is the compiling into java at runtime. So essentially it is a friendly way to develop servlets (alternative to jsp's) so you can load java's extensive libraries straight into your cfml code, and likewise load classes (cfc's) into java at runtime!

ethyreal
You have a great point. Coldfusion isn't just a language, it's a framework as well. Comparisons should be done between apples and apples.
Jas Panesar
+5  A: 
Jas Panesar
I do remember reading this from the "why-would-someone..." thread. As you were polite enough to comment on my post... I feel 1,2,3 are subjective (and many disagree), 6 is outright wrong (less code != less bugs), and on 5 every comparison I've seen neglects RoR, which is the clearest competitor...
annakata
4 is especially problematic: I've never had to purchase any libraries for any platform, all of the techs starting "AJAX..." are just *there* they aren't a problem for !CF or a USP of CF, Flex/Air is a *very* questionable pro, and it's not a good thing if your platform needs to delegate to another.
annakata
Anyway, it's fairly clear CF and anti-CF camps aren't going to sway. This Q should probably be closed for S/A just like the "why-would-someone" Q. Thanks for engaging anyway. Cheers.
annakata
I've never been one to be pro or anti. Every technology has it's pros and cons. All I'm hearing from you is negatives, I use .NET and Java regularily :)
Jas Panesar
I think that there's two different things people mean when they say, "Language X requires me to write less code." Either they mean, "the things I happen to want to do already have helper functions written!" or they mean, "The language is structured such that nothing I can think of to do requires very much code." CF would be an example of the former - if you want to do what it wants to help you do, not much code required. Otherwise, tons of code required. Clojure and other functional languages would be examples where "doing anything" takes little code.
Joel Mueller
+2  A: 

This guy ran a test with a group of developers. http://co.ldfusion.com/index.cfm/2009/2/11/ColdFusion-Is-Dead

Now; putting this in perspective yes the CF team did it quicker; followed by the PHP developers, then the C# developers and then the JSP developers. I put them all through Mercury; and all 4 of them withstood the stress test of 5,000 concurent users. Sure that is not a lot when you compare it to Twitter or MySpace or whatever; but it goes to show that it can work (correctly) under presure. All other aspects were the same (same OS, Same DB backend, the only thing that was different was the language they used) and they all behaved accordingly. But this takes me back to the "How Long?" and "How Much?" questions clients asked.

CF Developer Team - 3 weeks PHP Team - 4.5 Weeks .NET Team - 5 Weeks JSP Team - 5 Weeks and one day.

The CF Team even created a partial Flex front end that invoked their web services (since all they had to do was switch a setting on the CFC to enable web services) as extra credit. The other teams didnt have time; and came in just under the gun (deadline was 6 weeks).

Mike Jr
A: 

Guys, CF has unlucky days years ago. CF was not recognized correctly by most of the IT community. The issue heard with MYSPACE.COM. Actually that site is written in CF5 version and later switched to BD.net. Anti-cf'ers claimed that now in .net server it run 4 times faster than before and they are only comparing CF5 with asp.net. We all know that CF5 is very slow compared to MX6,MX7 & CF8. But if they compare ASP.net with CF8 or MX7, story will be different.

Heard that when trying to move from CF5 TO MX , myspace team have to face some problems with driver-related compatibility issues, so they gave up and tried BD.NET. But now this story is not heard as like this.

        CF has a great future. It is doing the best and will get its top seat in WEB soon....