4 ms·
Two tangential points I want to hit quickly. First, most software developers are taught "computer science" (or an imitation of it) in their formal education, n
by InclinedPlane 14y ago
Two tangential points I want to hit quickly.
First, most software developers are taught "computer science" (or an imitation of it) in their formal education, not engineering.
Second, software is mostly not engineering. Engineering is very measurable. But software includes a lot of design and craftsmanship. If software dev. were restricted only to the portion that could reasonably be called pure engineering it would be a very, very small subset of mostly systems code. Indeed, a good hunk of software dev. could properly be called merely arts and crafts, under such a strict interpretation.
I think this explains some of the religious wars, because the debates are more aesthetic such as "do you prefer charcoal or pencil" than engineering "which is better steel or aluminum", because purely engineering questions tend to have very much more straightforward answers.
- marze 14y agoSo if it isn't science, and isn't engineering, what is it closest to in terms of other endeavors?
- neohaven 14y agoWriting.
- nollidge 14y agoI'd say artisanship, craftwork, architecture, or industrial design are all much closer to what we do than either of those.
- eli_gottlieb 14y agoSorcery. It's poetry that has to actually accomplish something.
- saintx 14y agoSpecifically, datamancy.
- kragen 14y agoMath. That explains the endless debates on aesthetics, the difficulty of measuring productivity, and the enormous spectrum of productivity.
- pnathan 14y agoMy opinion is that "Software Engineering" is an artisan trade. What it isn't is based on science. What is rigorous is usually based around theoretical mathematics. Let me put it like this: there are very very few designs in software where there are limitations that are based on intrinsics. Whereas if you talk with a chemist, it's very clear that there are actual properties underlying what they do, and these physical properties do things like go "bang" when you screw up. Or if you're building a circuit, you use the underlying equations of the resistors and other components to drive the design. Very little of that exists in computer science. This doesn't make what we do immoral or bad or demeaning. But in my opinion, this conflation with physcial-based sciences produces a confusion of the mind. I'm prone to consider computer science "algorithmic mathematics" and quality software engineering "software craftsmanship". It reminds me far more of house building than circuit design.