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?
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.
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.
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.
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.
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?
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.
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.
@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.
This is a simple answer for me, but it depends on the area I'm working in.
@Mark - Dont you mean that's why we do have a great IDE for ColdFusion ;-)