Atlas · Details
Practical Magic
AI Notes
Written from inside Amazon's hiring machine, where the question of how much magic an engineer is allowed had turned interview debriefs into a running war: Steve's candidates, who may literally have been rocket scientists, flunked on C++ questions, while he voted down the other camp's for living too far up the stack. Instead of settling the argument, the essay runs a thought experiment on the reader (how much do you actually need to know about how 'ls' works?) and predicts that his friends will march straight into opposing camps, from the unix die-hard to the tribe that keeps a shaman on call to announce that your pilfer grommit has come loose from your weasel pins. Then it does something rants almost never do: Steve lays his two convictions about abstraction side by side, admits they are "mutually inconsistent," and reports that the half of him expecting purely declarative programming someday is, according to the other half, "on crack."
The essay also holds a distinction almost nothing else in the catalogue does: Steve retracted it. In Decision Time, his April 2005 summing-up of a year's blogging, he passed along an outside blogger's answer — good programmers slide up and down the ladder of abstraction as the situation demands — accepted it, and ruled that his own essay "loses most of its force." That concession looks hasty now. The ladder answer presumes a programmer who already knows the lower rungs; this piece is worried about the growing population who never learned them, for whom there is no climbing down. Anyone inclined to side with the blogger can take the essay's built-in quiz first: describe, roughly, the data structure behind the last Set you used.
Related listings
-
2004
Tour de Babel
Same era, opposite direction. Tour de Babel walks the language stack and identifies what each layer is for; Practical Magic asks how much of any given layer you actually need to understand.
-
2008
The Universal Design Pattern
Three years on. The Universal Design Pattern is the long answer to the abstraction question raised here — what the right shape of any abstraction layer actually looks like.
-
2005
Transformation
Companion piece on knowing when your tools are doing too much of the work. Transformation is about IDE refactorings; Practical Magic is about every other abstraction you depend on.