Why Kotlin Is Better — cover art: the Count from Sesame Street holding up the number 8, a nod to the essay's thousand-year-old-vampire-excited-about-Java-8 bit. 😄 🤓

2017 · Stevey's Blog Rants · Rant

“Java 8 lets you say interesting things, but you have to do it with a mouthful of sand.”
— From Why Kotlin Is Better Than Whatever Dumb Language You're Using, May 2017
Read the essay

© 2017 Steve Yegge. Originally published at Stevey's Blog Rants.

Author’s note

The Kotlin team reached out after this one; they were delighted. I heard the Android core team down in Mountain View was irritated that I had critized their shitty APIs. Because, you know. Criticism bad. But I can tell you, re-reading this essay nine years later, my blood pressure absolutely spiked when I read "Fragments." Android is horrible, and Kotlin really does make it better.

I think the Count von Count picture and caption, an amazing four-way joke, is one of the finest gags of my writing career.

AI Notes

Steve admits the title is clickbait — "where would the internet be without it?" — and writes the essay anyway. The occasion is an Android port of his decades-old game Wyvern. Android programming turns out to be as bad as everyone warned (the Fragment and Activity lifecycles "maddeningly awful"); his first attempt he gave up on for half a year. What rescued the port was Kotlin, the then-new JVM-and-Android language out of JetBrains. Steve had looked at it the way he'd looked at fifty other languages on his quest to replace Java with anything reasonable, and didn't expect to use it. Within a month he was rewriting his twenty-year-old game server in it. The essay's case is partly the language — concise where Java 8 makes you say interesting things "with a mouthful of sand," coroutines, clean modern design — but mostly the tooling: Kotlin was built IDE-first by world-class IDE makers, and that's why it's so easy to pick up. It's "just butter." Steve frames the choice as a blue-collar working programmer who wants street food, not the truffled snails of Scala and Clojure.

Written May 2017 — the same season Steve left Google. It catches him mid-pivot, happy in a new language, rebuilding his oldest project.

Related listings

  • 2006

    Execution in the Kingdom of Nouns

    The direct callback. This essay describes Java 8's "parallel streaming filterable collecting scheduled completable callbacking futuring listening forking executor noun kingdom" — a one-line nod to the noun-kingdom argument Steve had made, in earnest, eleven years earlier.

  • 2008

    Dynamic Languages Strike Back

    Two stops on Steve's long quest to replace Java with anything reasonable. Dynamic Languages Strike Back made the case for the dynamic camp; nine years on, Kotlin is where the static-typing search finally found a home.

  • 2005

    Bambi Meets Godzilla

    Bambi Meets Godzilla argued that how good a language is barely matters to its adoption. This essay says it again in passing — and then makes the opposite bet, that this time the good language has the tooling and the buzz to actually win.

Where it was argued