Decision Time — cover art: a small council of woodland animals around a long honey-oak Victorian war-room table, with several name-cards (each blank) and small carved wooden models of language-symbols arranged in front of the seats, a young wizard in a cornflower-blue robe standing at the head of the table with a respectful proposal in his hands.

2005 · Drunken Blog Rants · Rant

“There *is* such thing as a silver bullet, but you have to buy them in bulk and hand them out to a whole army.”
— From Decision Time, April 2005
Read the essay

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

Author’s note

Overly long piece advocating for creating custom programming languages for various Amazon-specific problems, with Erlang as an example of a language that solves a specific problem that's hard in C++.

This led to some teams adopting Erlang at Amazon, interestingly. I think it was abandoned after a few years.

When I went to Google, I was surprised to find that they use custom languages all over the place. Borgcfg is the most notorious, their turing-complete production configuration language. But they have others, as we had to support them all in Grok/Kythe. But by and large, Google proved my thesis true. Was nice to be there.

AI Notes

Written at 4:00 a.m. on the third straight night of insomnia, with meetings and deliverables due all day after. Steve notes that his best essays get written under oddly stressful conditions, and hopes aloud that this one comes out coherent. It opens with a self-audit few bloggers would publish: fifty essays in a year, five worth reading, Sturgeon's Law duly cited, and one former favorite demoted on the spot because an outside blogger had dissolved its central paradox in a single sentence. Buried mid-proposal is a quieter confession: Amazon was still running RedHat 6.x boxes everywhere because C++ made the port unaffordable, a problem Steve calls "the main reason I write this blog, actually."

There is an honest hole in the middle. The strongest claim, that language-level abstraction can do things for a shop like Amazon that no library can, gets shelved for lack of time, with Erlang's million-thread concurrency left standing in for an argument the essay never finishes. The comment thread preserved at the bottom makes up for it: a volunteer signs on the same night, and Steve's own long reply recounts how Perl, C++, and Java each broke into an Amazon where everything but ANSI C, a homegrown templating language, and Emacs Lisp was once flatly forbidden — each by accumulating a critical mass of developers who pressed ahead without permission. Set against the author's note above, that history is the precedent the whole proposal rests on.

Related listings

  • 2005

    Tin Foil Hats

    Six weeks earlier. Tin Foil Hats is Steve picking for himself; Decision Time is Steve asking the company to pick for everyone.

  • 2005

    Choosing Languages

    The methodology behind the pick. Choosing Languages lays out the criteria; Decision Time applies them and names candidates.

  • 2005

    Duck Season

    Same month. Duck Season is the equalizer; Decision Time is the moment Steve points at the slider arrangement Amazon actually needs.