martes, 29 de julio de 2008

Programming as plumbing.

Programming as plumbing:
Ethan sat in his dining room and remembered the moment when his bluff and self-sell suddenly failed him, when he found himself muttering something about there being a "skills mismatch" between himself and the job. And then Harry leaning forward in his chair (with great difficulty, breathing at the mere exertion of shifting his formidable weight), telling him not to worry about not having finished graduate school: "It's all mostly useless by now anyway," he said. "Look, Levin. Programming starts out like it's going to be architecture —all black lines on white paper, theoretical and abstract and spatial and up-in-the-head. Then, right around the time you have to get something fucking working, it has this nasty tendency to turn into plumbing."

"No, no. Lemme think," Harry interrupted himself. "It's more like you're hired as a plumber to work in an old house full of ancient, leaky pipes laid out by some long-gone plumbers who were even weirder that you are. Most of the time you spend scratching your head and thinking: Why the fuck did they do that?"

"Why the fuck did they?" Ethan said.

Which appeared to amuse Harry to no end. "Oh, you know," he went on, laughing hoarsely, "they didn't understand whatever the fuck had come before them, and they just had to get something working in some ridiculous time. Hey, software is just a shitload of pipe fitting you do to get something the hell working. Me," he said, holding up his chewed, nail-torn hands as if for evidence, "I'm just a plumber."

(Ullman: pp. 27-28)

That sentence towards the end should be a classic: "Hey, software is just a shitload of pipe fitting you do to get something the hell working". Whoever hasn't heard of this or that programming language as an excellent glue to fit things together? For, in the end, that's what a programmer does most of the time. Yes, design is also a part of it. Yes, there are certain tecniques learnt from engineering disciplines that help. Still, for the most part, the priority is to get the code working, especially in this crazy world of ours where the product had to be released yesterday. The simile is great, I think.

No hay comentarios: