3 ms·
People have said that it is flawed, but they haven't shown that it is flawed. Can you?
by AndyKelley 16y ago
People 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