9 ms·
We should not seek to emulate doctors or lawyers, but cabinetmakers, watchmakers and joiners. Programming isn't a profession, it's a craft. The trouble is that
by alextingle 16y ago
We should not seek to emulate doctors or lawyers, but cabinetmakers, watchmakers and joiners.
Programming isn't a profession, it's a craft. The trouble is that traditional crafts are not really valued any more, as their purpose has largely been supplanted by mass production. So, we have no current role models for how to organise ourselves.
- sanderjd 16y agoHmmm, seems like the appropriate role model to take from this may be "mass production". Perhaps that is the right and proper end game for any craft. But I tend to think that computers can't take all our jobs in this society, because once computers are fully capable of programming themselves our society will cease to exist in its present form.
- regularfry 16y agoThe way I see it, it's both - more like surgery in that regard. How you do it involves a huge amount of craftsmanship. Knowing what to do and why you're doing it is what makes it a profession.
- flsvilling 16y agoProgramming is not a craft. A craftsman produces some product, whereas a programmer designs some product that is then produced by a compiler or by copying a file. That the production of software is trivial and fully automated, doesn't mean that there is no distinction between production and design. We already have mass software production.
- jholman 16y agoOverall, I strongly agree. I agree so strongly, I've been thinking about counter-examples, and I think I've found a few corner cases. ;) Firstly, obviously, some aspects of programming are crafts-like. When we write conditionals as if(4 == x) instead of if(x==4) (for languages where variable assignment in a conditional is legal but not what you want), that's craftsmanship. Analogously, part of the process of designing a building is drafting, and that is a craft. A common error is to think that drafting is the primary task of architecture (at least, that's a common error about programming). Less confidently, I would argue that the closer you get to the metal, the more craft aspects appear (without claiming that these aspects dominate), and that when we use a compiler, part of what we're getting is automated crafting. So we see three cases where we take back that crafting aspect into human hands... First, for a new platform, sometimes some of the work is done by hand. Second, many programmers _enjoy_ the craft of programming, and so practice it for fun. For example, code golf is craft. Third, sometimes crafted is more appropriate. We usually prefer a cheap mass-manufactured physical object (high-quality, but not customized), but sometimes we want something handmade for the situation. I think that writing assembly by hand has some parallels with this (not to argue that writing assembler is more craft than design).
- njharman 16y agoSo you want programming profession to follow a model which leads to devaluation and replacement by mass production? Think programming is there already. Outsorucing, Java schools churning out schlubs, seem like mass production analogs to me.