The Next Big Thing — cover art: a small polished red ruby cabochon on a velvet display cushion in the foreground of a Victorian curiosity-shop window, with a chipped Java-coffee jar pushed to the side and a small caterpillar earth-mover toy in the dust behind. 👍 🔮

2005 · Drunken Blog Rants · Rant

“Aesthetics matter, too. Just like they do with writing prose or (speaking strictly out of my butt here) poetry. Everything you write is going to be read and used by other people, and they don't want to look at a big mess.”
— From The Next Big Thing, April 2005
Read the essay

© 2005 Steve Yegge. Originally published at Drunken Blog Rants.

Author’s note

Even I get bored reading some of my old language rants, but this one is pretty damning, and worth a read. It shows some real surprises in Java's language design, and uses a lot of colorful storytelling to convince you of why these things matter to programmers who were (at the time) claiming they do not matter.

This article's entire point is to predict that a new language will emerge and sweep everyone off their feet, by highlighting just how terrible Java was. And sure enough, TypeScript, Go, Kotlin, Swift, and Rust all emerged to sweep us off our feet. I was so happy about ALL of them, too. I haven't written a line of Java code in fifteen years.

I made the mistake of predicting the winner from the current crop, right after saying it will not be from the current crop. If I had said Python, we could have let it slide. But it was a whiff. TypeScript and Go were the next wave, which carried us for fifteen years or so. As of 2026, it sure looks like Rust is about to become the default choice for most server-side software for security reasons.

AI Notes

Steve opens with Joel Spolsky's talk on aesthetics at Amazon and runs the argument through Java 5. Generics pay their complexity tax up front with type information thrown away at runtime; enums are an even bigger pile of crap than Java arrays; the much-hyped "smart for-loop" is a band-aid over a missing first-class function — no access to the underlying iterator, no way to delete, no way to detect last iteration, and it took nine years to ship. Language revolutions, Steve argues, come on roughly a decade — C in 1975, C++ in 1985, Java in 1995 — and need two things: pain (which Java now has) and a beautiful alternative (which Java didn't ship in 5). His pick is Ruby. Not Lisp, not Haskell, not OCaml, not Python (already written off by too many programmers). Ruby is concise, mature enough, picking up VMs, getting O'Reilly and Pragmatic backing, and designed by someone who cares about aesthetics.

The pure call ("Ruby becomes the most popular language by 2008") didn't pan out, but the framework underneath did: the decade clock, the pain-plus-alternative test, and the insistence that aesthetics drive adoption. It's an early example of the move Steve repeats for the next twenty years — pick a moment, name the hidden variable everyone is ignoring, call the trajectory.

Related listings