I am a project manager and I have worked with both ColdFusion and Java development teams. I have often wondered why it is that ColdFusion developers get about 60% of the rate of the comparably skilled Java developer.
ColdFusion is a. The built-in features including authentication, search, clustering, image processing etc means that one ColdFusion developer can deploy applications that would require two Java developers. Assuming a comparable market, ColdFusion developers should be able to capture some of that value and earn more than Java developers.
I think that the answer may lie in the commoditization of the software stack over the past 10 years. Most problems are now solved and the solutions are free. Applications servers work, object relation mapping – use hibernate (it works). Need an? use Eclipse.
The competitive advantage of the out-of-the box system with integrated tools, quality control and documentation that (Adobe) ColdFusion provides have been eroded by the ready availability of Java systems that actually work and are well supported by the open source community.
The software eco-system is continuously evolving and this will affect your product. The rise of ReST over the last couple of years is a good example of this. The Java community rapidly solves such challenges and delivers functional well supported free software such as Jersey.
Therefore a software team will be more productive over the lifetime of a product using Java than ColdFusion. I emphasise the word team because to use Java effectively requires division of labour and specialisation of function and lifetime because over a short period of time ColdFusion will deliver more features quicker. It is this greater productivity over time which contributes to the higher rate of Java developers.
So where should we use ColdFusion and how can we make money from it? From my analysis above I think that ColdFusion is ideal for rapid prototyping and small stable production systems.
So what would my advice be to ColdFusion developers who want to learn Java and increase their rate and job security?
It’s not the language – it’s the frameworks. Most development nowadays is about configuration not coding. As a developer ensure that you understand the frameworks that you are using and the Java analogues. A few hobby projects will then position you well for Java development work.