The Lost Art of Programming
At the dawn of programming, there wasn’t even a vocabulary. If you said “computer,” you meant women doing manual calculations. The very idea of a program had yet to be invented.
People learned to program because it was the only way to advance their high level research. Many of the scientists who programmed also discovered the foundations of computing.
Not surprisingly, when computing entered academia it took shape as Computer Science. At that point, most of what could be taught were fundamentals. Yet, people had been programming without academic help for at least twenty years.
Add another twenty years, and because it was more practical than theoretical, programming became an engineering discipline. It took all those decades to achieve software engineering.
While programming and engineering have much in common, there were also significant conflicts—not unlike the disparity between engineering and architecture. The buildings of the latter are supported by the former, but engineering cannot supply human functionality, human scale, emotion, or aesthetics.
All the while academia was refining the fundamentals of computing and the practice of its applications, millions of people still learned programming without college degrees. Eventually, vocational schools turned programming into semi-skilled labor.
But nowhere in the proliferation of formal programming education, at all its levels, has it produced an identity of its own in the way architecture grew out of engineering.
Software, not unlike architecture, is the creation of mechanisms, objectives, and devices for people to use. More than occasional interaction, people live with software and architecture.
The needs of software exceed the practical. Like engineering before it, solving the practical falls short in human satisfaction. Architecture proved pleasure is not only possible but desirable.
Programming has progressed from black art to arcane science to cut-and-dry engineering to semi-skilled labor. It makes use of science and engineering but ignores the humanities. What it needs is a massive injection of aesthetics, art, and empathy.
Programming, like architecture, creates more than things for people to use; it creates the things we have to live with. Why can’t these things be enjoyable? Where is the human touch?