Is Weak Typing Strong Enough? — cover art: a small storybook mouse clerk in a green eye-shade stands at a wooden counter weighing two things on a polished brass balance-scale — one pan piled high with stamped and ribboned forms that lean precariously, the other pan with a single small open leather notebook and a stubby wooden pencil. The notebook side tips lower. 🤓 🔮

2005 · Drunken Blog Rants · Rant

“I hate bureaucracy. And static type systems are basically just bureaucracy. I want them to get out of my way and let me get stuff done without needing to fill out a bunch of forms.”
— From Is Weak Typing Strong Enough?, May 2005
Read the essay

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

Author’s note

Not a bad read. It starts off with a bunch of kind of obvious distinctions, but then it becomes clear why. My Java/Perl showdown from Customer Service Apps at Amazon made it clear, over a period of several years, that all the FUD around dynamic languages was over nothing.

Back then, it was pretty unusual for a "real" company to be written entirely in a dynamic language. Today we have lots of examples, like Stripe using mostly Ruby, and Booking.com using mostly Perl.

Node and TypeScript had a huge impact on the ecosystem and adoption of dynamic languages. Now they're everywhere, but back when I wrote this, they were definitely considered to be for Losers Only. That's why I'd do these rants.

AI Notes

Unusually even-handed for something running under the Drunken Blog Rants banner: the title is a genuine question, posed by someone who was, on his own account, "a die-hard Java guy" when the evidence started piling up against his side. The essay also treats typing as a bigger issue than programming languages — the same strong-versus-weak choice shows up in relational schemas and XML modeling, and some of the best material concerns the untyped name/value attribute system, a "gaping hole" in the customer-contacts data model that kept rescuing the team from requirements no schema had anticipated. The war stories are the draw, among them weeks of corporate angst over letting sports fans put custom initials on a jersey, a request the rigid order model simply could not pass through to the backend. And the bureaucracy line quoted above has an origin story the page doesn't give: Steve had just watched the Vogons in the new Hitchhiker's Guide movie that weekend.

Read it knowing that in May 2005 Steve could not point to a single large production service built on a dynamic language; he closes still asking readers for evidence, too wary of Ruby's performance to bet on it and unconvinced Common Lisp had momentum. The shape he endorses (types added selectively, where they pay) is roughly where the mainstream eventually landed, arriving by way of TypeScript and Python type hints instead of Lisp. The weakest stretch is the cons-of-static-typing list, where a couple of entries run on pure vibes; Steve knows it, hedging one claim himself with "Maybe it's my imagination, though."

Related listings

  • 2004

    When Polymorphism Fails

    The design-essay companion. Polymorphism Fails is about where class-based OO breaks; Weak Typing is about where static type-systems break. Same underlying complaint, two scales.

  • 2005

    Choosing Languages

    Same arc — the framework piece. Weak Typing is the empirical evidence that put Steve in the four-bucket framework's dynamic-by-default position.

  • 2004

    Tour de Babel

    Same year — the broad survey this piece updates. Tour de Babel ranks languages by feel; Weak Typing tests that ranking against a multi-year side-by-side at Amazon.