December 30, 2007

Not a ghetto

Rail programmer Zed Shaw has lost patience with management and, for our New Year's entertainment, has burned his bridges in a blazing indictment nailed to the wall of the Web 2.0 industrial complex.

He calls it, "Rails is a Ghetto." This is wrong: he's not arguing that Rails is a place where the authorities confine people like him, walling them off from the rest of the populace. He's arguing that the Rails neighborhood is turning into a slum. That's a different thing.

But it's sobering to read that a consultant/hired gun, working in a very hot technology, could write that

During 2006 I was effectively homeless for about 4-6 months out of the year and made no money at all. During the rest of the year the little money I made was impossible to get, and many times I was simply not paid.

See also Richard Saunders, who received a letter from a former colleague urging him to never code again.

Please especially never write an EJB to facade and EJB that facades a utility class that facades a hack to do something. Please never leave someone with a mound of code that has methods which each have 4 lines in them. Please never write code that is unaccompanied by even the most trivial unit tests.

This might be a legitimate beef, or it might be a style conflict. Layering a facade on a facade is certainly a code smell, but it might be the right thing if it isolates some ugliness that you can't immediately banish. Four-line methods used to be deplorable but lots of people now consider them respectable and even desirable, especially if the object is going to have lots of clients or lots of variation. Short methods can require less documentation — that's the point of “the source is the doc” — and sometimes short methods can let you scrimp on unit tests as well.

A good new year's resolution for all: tech flames are not necessarily good for your inner light.