3 ms·
I think a lot of these discussions -- Programming is/isn't Engineering/Math/Science/Craft/etc... -- suffer from what I call "the moon is like an onion" problem.
by msluyter 14y ago
I think a lot of these discussions -- Programming is/isn't Engineering/Math/Science/Craft/etc... -- suffer from what I call "the moon is like an onion" problem. The moon is like an onion. This is obvious! After all, both are whitish, more or less spherical, have layers, and on occasion, drive men to tears. And yet, of course, the moon is not exactly an onion. It differs from onions in other obvious characteristics.
You can play this game with anything. Programming is like engineering. It's like math. And yet it's not exactly engineering, or math, or a craft or a trade or anything. People find one attribute where the metaphor fails and go "Aha! Programming is not X!" Let's step away from the "find the perfect metaphor" game for a second and ask, which word works in daily discourse? Like you, I'd agree that "craft" works pretty well. It's not perfect, but I'd argue that if you want the perfect word, just use "programming."
Additionally, I find the author's argument that "with a craft, the product has an intrinsic beauty in its own right," rather uncompelling. Aside from the fact in aesthetics, the notion of "intrinsic beauty" is suspect, software can certainly have aesthetic qualities. Their audience (other programmers) may be small, and aesthetics may sometimes[1] be hidden from customers, but that doesn't mean code can't be beautiful.
[1] Sometimes, because poorly crafted software tends to have bugs or other problems that annoy customers or otherwise visibly manifest themselves.