Atlas · Details
Transformation
AI Notes
Part one of a promised "Refactoring Trilogy" whose sequels never turned up (nothing else in this archive answers to the name), written for Steve's internal Google blog in late 2005 and republished on the O'Reilly Ruby blog the following spring. The provocation was specific: Java programmers kept telling him they couldn't even try Ruby because it lacked automated refactoring tools. Rather than argue, he tells a conversion story. He had dodged Fowler's book for years because it shipped in the UML series he considered weenie territory; then one winter day in 2002 he opened it in a bookstore, hit an argument that his cherished habit of caching intermediate values in local variables was Evil, and plopped into a squashy armchair to find out whether the author was "actually insane, or merely an idiot." The next day he casually polled twenty developers at work. One had read the book.
It is Ruby advocacy wearing a book review, and the machinery shows in places: the aside rating Ruby a productivity step-function "at least as great as Java was over C++" is pure 2005 fever, and Steve gives the strongest counterargument — code has to change under shifting requirements no matter who wrote it — exactly one paragraph before brushing past it. The construction is the fun part. The essay repeats its own opening word for word halfway through, drifts into a reverie about earth-movers and the little segmented bug the Caterpillar company is named for, and settles the whole dispute in a closing sentence four words long. The needling lands hardest on the book's own fans ("C'mon now. Admit it. You skimmed."), the people who love a tool catalogue without ever absorbing why the tools were needed.
Related listings
-
2005
Practicing Programming
Same year — the companion argument that working programmers don't practise the way every other craft practises. Transformation is the same point made through one book.
-
2004
Being the Averagest
A few months earlier. Being the Averagest names the problem — no metrics, no competition; Transformation gives one specific example of the way the field papers over the gap.
-
2007
Code's Worst Enemy
Two years on, with conversion complete. Transformation is the friendly reading; Code's Worst Enemy is the argument that the codebase itself is the problem the refactoring tools were quietly making worse.