Amazingly bad APIs
I actually don't hate the Java language (at least it's killing off c++), but every time I use it I'm blown away by how hostile the APIs are. — For example, let's say that we want to scale an image file. That's a fairly common thing to do, so it's probably only one line of code, right?
Context & Ripple Effects
This post lands mid-debate about whether Java's era is ending. Business Week had already argued in December 2005 that Java was losing ground among Web developers to newer languages, and Joel Spolsky's JavaSchools essay that same month turned Java's teaching footprint into a fight over how programmers are trained.
Against that backdrop, Paul Buchheit narrows the critique from market share to craft: he concedes the language itself is acceptable — noting its displacement of C++ — but argues the standard APIs are hostile to everyday tasks like image scaling, making developer ergonomics rather than syntax the real liability.
First-order effects
- Developers evaluating Java now have an explicit ergonomic complaint to weigh against its C++-displacing momentum, sharpening the erosion in Web-developer adoption reported in 2005.
- Sun Microsystems' pitch for Java competes less on language features and more on whether its libraries impose friction on common tasks.
Second-order effects
- The raft of newer languages gaining ground since 2005 get a ready-made argument: win converts not by matching features but by offering cleaner interfaces for routine work.
- API design quality becomes a visible differentiator, pressuring every library maintainer whose interfaces developers touch daily.
Third-order effects
- If the pattern holds, language competition shifts structurally from runtime performance and syntax toward ecosystem ergonomics, where the quality of APIs — not the compiler — decides which platforms retain developers.
The trend: Programming-language competition is migrating from raw capability toward developer-facing ergonomics, with API design quality becoming the battleground where platforms win or lose mindshare.