Chapter 4: Glass Breaking
Chapter 4 begins laying out the case against Java:
"I've developed a good instinct for trouble on the river, and at work. In this profession, I generally know when a technology smells wrong, or dangerous, and I guide my customers away. I'm sensing that danger around Java right now. It's getting too difficult to manage, and both evolutionary and revolutionary steps to remedy the problem are failing us. In this chapter, I'll introduce some of the basic problems."
In this chapter, Tate looks at what he considers Java's worst problems today: over-complexity and its many sources:
* Frameworks that make life easier for experienced developers, at the expense of approachability for new developers
* Over-reliance on XML, caused by Java's inability to represent structured data
* "Compromises", like primitives, which were introduced to lure the C++ crowd
* A long compile/deploy cycle
* The costs of strong, static typing
* Over-reliance on tools to mitigate complexity
"Over the next five years or so, the question in play will be this: are the Java community and expansive code library base worth sacrificing the productivity that other alternatives will bring to bear? So far, the answer has been a resounding "Yes." But we're nearing a point of no return. Java needs radical changes if it wants to continue to be all things to all people, but the community, culture, and leadership behind Java have never produced the kind of structural, sweeping changes that we need. Sun has always treated Java conservatively. The community process has always built the kind of software you'd imagine a community process would build: bloated compromises that please no one in the end. The Java community has always tolerated too much architecture, too much XML, and too many layers."