Duck Season — cover art: a tall wood-and-brass Victorian equalizer console with nine tall ivory-tipped sliders set at different heights, a small mole sound-engineer in shirtsleeves adjusting the middle slider, with a small duck and a small rabbit perched on the console's upper edge as a quiet Looney-Tunes nod.

2005 · Drunken Blog Rants · Essay

“Every language has at least one '1' and at least one '5'. Funny how it worked out that way. Every language makes very different choices about how to deal with these fundamental trade-offs.”
— From Duck Season, April 2005
Read the essay

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

Author’s note

For once I dialed in tne length about right. This one, published a month before I left for Google, is a response to someone who asked me if I am sneakly trying to get people to use Lisp, and if it would help him be lazier as a programmer.

In short, I told him no, you will have to work extra hard to use Lisp, because it is like Linux, requiring a lot of hands-on setup and maintenance compared to a more mainstream offering.

I was expecting this to be a boring read but it kept me going to the end.

AI Notes

Steve frames language design as a stereo equalizer with nine sliders — run-time speed, memory use, static type safety, runtime safety, cycle time, introspection, expressiveness, extensibility, familiarity — and scores eight languages (C, C++, Java, Perl, Ruby, Python, Lisp, ML, Haskell) across all of them in a flat table. Java wins by a nose on the average; every language has at least one 5 and at least one 1. It doubles as a working manual for matching a language to a job — Java for production-quiet work, Ruby and Lisp for tinkering and prototyping, ML and Haskell for research. The closing move: stop arguing about which language is "best," argue about which sliders the problem actually needs cranked, and adopt a tinkering language (Steve picks Gambit Scheme, Kawa, and Ruby) in your garage to help drag the field out of the Stone Age.

It is the cleanest single statement of the equalizer view of language design that threads through twenty years of Steve's writing — the same lens that powers Tour de Babel, The Universal Design Pattern, and eventually Cheese Wars. The Looney-Tunes title is doing real work: it's pointing at two parties who have been arguing for an hour about a setting they both agree is wrong.

Related listings

  • 2005

    Choosing Languages

    Companion piece. Choosing Languages is the prose survey; Duck Season is the same survey rendered as a working spreadsheet.

  • 2005

    Scheming Is Believing

    Two months earlier. Scheming names the slider Steve thinks the equalizer is missing — the one that lets you move the others. Duck Season is the equalizer with that slider held in mind.

  • 2005

    Decision Time

    A few weeks later — the equalizer applied to a single problem. Duck Season is the methodology; Decision Time is the verdict.