5 ms·
Carpentry metaphors for programming continue to suck: news at 11.
by llimllib 16y ago
Carpentry metaphors for programming continue to suck: news at 11.
- netcan 16y agoNot doing C is like a carpenter not using a hammer? Programming languages are like hammers in that they often end up in metaphors. Hammers are like C in that they are bad metaphors for women.
- llimllib 16y agoBravo.
- vcarefatpeople 16y agoWalking around with a woman looking for a nail.
- kleiba 16y agoI think what the author of the forum posts means is just that it sounds like saying "hammer carpenter" when you say C-progammer, i.e., he argues that it sounds strange to put the name of the tool you use in your job title. I don't think that he's trying to make the analogy "C is to a programmer like a hammer is to a carpenter", because that analogy is obviously flawed (as shown by other comments in this thread).
- AndyKelley 16y agoPeople have said that it is flawed, but they haven't shown that it is flawed. Can you?
- __david__ 16y agoWell, I think the objection is not that C is a tool for programmers like a hammer is a tool for carpenters, but more because a hammer is an indispensable tool for carpenters, but you can do a whole lot of programming without writing in C. If I were to attempt another tortured analogy I'd say C to a programmer is more like a router to a carpenter. You can do a whole lot of carpentry without using a router, but for certain tasks you absolutely need one. Not to mention the blade is sticking out the bottom and totally scary, ready to bite your hand off at the slightest provocation, and the slightest deviation from true carves a big dent in what you were trying to do. Using a router requires a steady hand and some thinking beforehand, but if you know what you are doing you can make short work of many tasks.
- jimbokun 16y ago"If I were to attempt another tortured analogy I'd say C to a programmer is more like a router to a carpenter." Or like the Hole Hawg? http://www.team.net/mjb/hawg.html http://www.team.net/mjb/hawg.html
- Carlfish 16y agoI could think of many salient differences between hammering nails and programming in C, but the simplest one is: Its impossible to do any kind of real carpentry job to completion using only a hammer. Thus, a 'hammer carpenter' is derogatory because you would not expect them to produce anything useful. C developers produce, and continue to produce complete, useful software. There are also things like "A hammer carpenter doesn't have to spend a significant amount of career development time keeping up with the state of the art in nail compilers or wood instruction sets." C programming is a specialisation in a complex field, and such specialisations often deserve their own title. Calling someone a neurosurgeon is like calling them a hammer carpenter. Everyone should be a GP. A previous commenter mentioned 'helicopter pilot'. You wouldn't see a topic saying "Calling someone a helicopter pilot is like calling them a hammer carpenter." It's likely that a helicopter pilot has experience flying fixed-wing planes, but their _value_ comes from specialising in a particular craft, so they're likely better at it, and that's what they advertise themselves as.
- raganwald 16y agoI'll try my hand at it. C is not like a hammer, and being a "C Programmer" is not like being a "Hammer Carpenter." Programming languages are not tools, they're MEDIA. They're a notation for thought, so they are the material you work, not the tool you use. Therefore, if you must compare programming to carpentry: Calling yourself a C Programmer is like calling yourself a carpenter. Calling yourself a polyglot programmer is like calling yourself a construction contractor. Calling yourself a Visual Studio programmer is like calling yourself a Hammer Carpenter. I wouldn't use any of these expressions, I think that the examples I give suck less than comparing a language to a hammer, but they are still terrible metaphors and easy to dispute. Remember: Programming is an unnatural act. http://www.cs.yale.edu/homes/perlis-alan/quotes.html http://www.cs.yale.edu/homes/perlis-alan/quotes.html
- philwelch 16y ago"CNC machinist", "forklift operator", "machine gunner", "truck driver", "helicopter pilot"--it seems like a lot of job titles say more about the tool used than the task accomplished, and in fact it would be less informative to replace these job titles with vaguer terms like "metalworker", "pallet mover", "soldier", "long-distance cargo transport specialist", or "long-distance aerial cargo transport specialist". And frankly, C is just as tricky to learn to use properly as at least half the tools mentioned here.
- regularfry 16y agoHaving recently (and not a little inexpertly) bashed a shed together, my thumbs and I would contend that using a hammer isn't exactly a walk in the park, either.
- sprout 16y agoYes, but no one would ever use a hammer by itself. At a bare minimum you're going to need wood, nails, and probably a few saws. C isn't a hammer. Pointer arithmetic is a hammer, and there are other tools at your disposal in C.