The cost of developing in Java
One reason Java hasn’t caught on as much for small and midsize applications, where PHP has dominated for years, is high development costs. Higher costs are one of two key factors. The other is the hosting problem. When it comes to development costs, several areas take up a sizeable share of the time and money.
The cost of developers
For the company, the biggest expense is the developer. Java developers are expensive to train and retain. For example, junior Java developers in Prague expect at least 40,000 gross. For seniors it’s at least 15,000 more. If you figure that the company has to spend roughly twice the salary and multiply it by the size of a small team, you get significant numbers.
Hiring someone who can use a scripting language is cheaper. Much less is expected of a PHP developer than of a Java developer, who has to contend with the complexity of the entire platform. And PHP developers aren’t divided into the supposed castes of junior, senior and architect.
Take a typical web application front-end developer. PHP and Java both require roughly comparable knowledge of HTML, CSS and JavaScript, plus PHP or JSP, respectively. But a Java developer also needs to know the Servlet API, JSTL, XML, the web framework in use, such as JSF, Struts or Tapestry, and associated processes such as deployment and application packaging. They need to know Java itself as well, including APIs, object-oriented design and concurrency. All those requirements count.
In other words, building a simple application in Java and in PHP puts very different demands on a developer. Java has advanced tools that narrow the gap today, but it’s still large. Add a few experienced senior developers to a team of Java juniors, though, and you’re likely to get an application with better architecture, maintainability, extensibility and tests. With some effort it’ll scale too.
In the short term, scripting languages, to speak more broadly than PHP, lower development costs. Over the longer term, extending or changing the application can push those costs up. You always need to weigh both. The complexity of the Java platform comes in no small part from open standards and the effort to maintain backward compatibility.
In the future, integration with scripting languages might be one way to reduce Java development costs. The savings would come, let’s say, on the junior side. I’d venture that any project serious about surviving needs good, expensive senior developers, whatever the language or platform. I see senior developers as the people who ensure the quality of the technical implementation.
Related articles
Related CZ Podcast episodes
- #261 · Leadership
On leading people and teams. · Czech audio
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi and Filemon discuss Java 6 and web application frameworks. · Czech audio
- #1 · Vývojová prostředí v Javě
The first CZ Podcast episode looks at Java development environments. · Czech audio