Live by the sword, die by the sword
Lukáš Křečan recently wrote about what annoys him about Java. I’m inclined to back him up. Sometimes I feel like I’m trying to push-start a steam locomotive. I recently set up several Java projects for a few developers who wanted to get started with web development, and I was thoroughly embarrassed. Even though I know Maven inside out, getting a fully functioning project going, including IDE setup, took almost half a day.
I don’t know why, but at some point Maven got to around 150 archetypes, or application skeletons. Unfortunately, nearly all of them are more or less unusable. I always end up tuning things by hand anyway, from setting the compiler to Java 1.6 through upgrading JUnit to 4.8.1 to setting the SLF4J logging dependencies and excluding Commons Logging.
Development tools are another headache. Getting Maven working in Eclipse with WTP takes magic, and I’m not saying that to drum up work. There are always a few black sheep on the team who use NetBeans or IntelliJ IDEA, too.
When you finally get that locomotive moving, you’re overjoyed, but it leaves a bad taste. I’m increasingly convinced that the fragmentation of Java and its ecosystem is a brutally double-edged sword. Even the simplest questions in Java have no single answer. Which IDE, which persistence layer, which web framework, which server, which build tool? You could write a whole treatise answering each one.
You have wonderful freedom on one hand, and on the other an incredibly heterogeneous environment where you can fall flat on your face. In other words, Java’s greatest strength is also its greatest weakness.
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