Coolskool : Kola Oyedeji's Cool Technology Blog

Is ColdFusion more productive than working in Java directly?

posted Monday, 23 April 2007

If you've used both you'll probably answer yes. Sean's recent blog post about working with Eclipse reminded me of a discussion I had with a friend recently which made me re-consider whether working in ColdFusion is more productive than Java. My friend's point was that the tool support in Java (IDEs, Unit testing frameworks, Code coverage tools, code review tools etc.) actually made you much more productive. Certainly when I use Eclipse for writing Java I'm reminded of everything I miss (but thats more down to the fact that Java is strongly typed). Small things such as the refactoring support, being able to automatically jump to class references, automatically organise imports etc. I feel more productive in ColdFusion but that's just a feeling.

If you work with both, whats your thoughts on this? 

  

tags:    

links: digg this    del.icio.us    technorati    reddit




1. markd left...
Monday, 23 April 2007 4:51 pm :: http://www.markdrew.co.uk

CF is much more productive on many levels, really, trust me. I do java every day for at least 4 hours a day, and get much more done in the other 9 hours that I am doing CF. Oh.. and that is why you dont have a great IDE for ColdFusion... because Java is a pig.


2. Sammy Larbi left...
Monday, 23 April 2007 5:37 pm :: http://www.codeodor.com

All that awesome tooling available for Java does indeed make you more productive... than if you were using a text editor. =) I don't just "feel" more productive in CF. I can spend countless hours writing useless Java code to get something simple done versus how long it would take me in ColdFusion to do the same? Concatenating strings to build queries, constructing 2-3 objects to read a file, another 2-3 to write one, how many objects to run a query? Sure, doing this things is quick, but still not as quick as it could be without the hassle - and they add up.

Java does have its advantages, but acting like a 2-year old kid where you have to tell him 3 times before he gets it right and getting in your way instead of letting you work are not two of them (in my opinion, of course) =)

Our IDE is getting better all the time. It just needs more time and developers. Eventually, I could see CF on notepad vs CFE having the same leap in productivity as Java in notepad vs Java in IDEA or Eclipse, as you point out here.

Good question though, and something definitely worth thinking about!


3. Neil Middleton left...
Monday, 23 April 2007 7:31 pm :: http://www.feed-squirrel.com

I think a certain amount of the CF vs Java argument needs to take into account what you are building. If you are building something CMS related, CF would probably win hands-down, but if you are building some high traffic business tier for the web Java might make you better off.

All I know is that after 10 years of web development, I've not needed to use anything other than CF to do what I want to get done.


4. Kola left...
Monday, 23 April 2007 7:47 pm

Neil that is a good point - perhaps Java can be more productive for specific types of applications? Another example of tooling where Java trumps CF hands down is in generating models from UML. I use Enterprise Architect which can generate C# and Java from UML diagrams I am yet to see anything do that as well for ColdFusion - thats not to say that it wont happen in future.


5. Neil Middleton left...
Monday, 23 April 2007 8:37 pm :: http://www.feed-squirrel.com

Maybe there's an oppourtunity for some sort of Java - CF tool? Like you say, most of the UML and refactoring tools out there let you slap together a variety of code, but always Java or C#. I wonder if it's possible to create CF code from basic Java wireframes?

Maybe, maybe not.


6. Rob Munn left...
Tuesday, 24 April 2007 6:15 am :: http://www.funkymojo.com/blog/

Good question. At the micro level, productivity is highly dependent on the people doing the work. At the macro level, CF wins hands down. Still, why leave the question to conjecture? I'd love to see a programming productivity smackdown- an individual or team-based competition to see who can build a typical web application in the shortest time and with the fewest number of bugs.


7. Rich Kroll left...
Tuesday, 24 April 2007 4:24 pm

Quite a few good points! There have been a few references to doing a heads up comparison of CF vx. Java, and in which language can you output a "typical web application" the fastest. The problem I see in this line of thinking is that there are more perspectives than *just* productivity when creating the application. The largest cost associated with an application is its maintenance, not the original development effort, and as such we should also look at which language enables us to develop stronger, more maintainable applications.

I love CF for its RAD capabilities and how quickly I am able to be productive. When attempting to create my business tier, I turn to Java. The strongly typed language, complete OO support, etc. make my business tier more resilient to change.

I believe that you should (depending on what you are building) choose the right tool for the job. Each language has great benefits, but each require context to make the choice evident.

Thats my .02


8. Neil Middleton left...
Tuesday, 24 April 2007 4:35 pm :: http://www.feed-squirrel.com

@Rich - Good points, and I think you've hit the nail on the head whether you know it or not. I believe CF does what it does better than Java ever could (JSTL excluded) i.e building web front ends, and Java does what it does best - the business tier downwards all the way to the data. I would have thought most "proper" web applications are merely an interface to a complex back end which could be written in anything, which is where the CF/Java combo probably makes the most sense, but for simpler apps such as blogs etc, 100 CF is probably the way to go.


9. Maxim Porges left...
Tuesday, 24 April 2007 10:15 pm :: http://www.maximporges.com

This is a simple answer for me, but it depends on the area I'm working in.

Front end? ColdFusion all the way (or Flex, of course). Swing is truly horrible, and JSP and JSF can't hold a candle to the new web frameworks.

Back end? Java all the way. The tooling is obviously phenomenal. But for my money, you can't beat the maturity and sheer number of Java APIs out there (both open source and commercial) for solving every imaginable problem.


10. Kola Oyedeji left...
Friday, 27 April 2007 9:35 am

@Mark - Dont you mean that's why we do have a great IDE for ColdFusion ;-)

@Neil - I think you have hit the nail on the head it probably depends on what you are doing. I think I saw somewhere someone had been able to generate CFCs from XMI.

@Rob - I think a format comparison would be hard to test. It would probably have to involve the same team, implementing the same application in the same enviroment. If I had enough resources in house its something I would love to put to the test for a medium sized application.

@Rich - You've actually brought up an excellent point - perhaps tools for other platforms actually makes applications easier to maintain (even if they take longer to develop initially)?

@Maxim - Regarding open source, I've wondered why there isn't more adoption of open source Java in ColdFusion. My guess is there needs to be a drive to wrap some of the popular APIs in a ColdFusion library so non Java programmers can make more use of them.