Has programming language design become dull and soulless?

“Design and programming are human activities; forget that and all is lost.”

― Bjarne Stroustrup

We are a long way past the birth of computing somewhere in the 1940s. In many ways computing has come a long way, in others it has stagnated. There are few new revelations in technology, i.e. an iPhone can’t really get much better (except for better battery life). Even Moore’s Law doesn’t exactly hold true anymore. There are inherent limits to how much you can squeeze into a chip. Language design has suffered as well. Most language design occurred from the late 1950s to the early 1970s. This is when the core structures of programming languages were developed. Some were designed by committee (Algol 60), others by companies (Fortran), and others by individuals (Basic).

As chips got faster, the design of languages languished somewhat. Most newer languages in the 1980s and 90s were derived in some manner from C. C++ (1985), was influenced heavily by C, just as Java (1995) was heavily influenced by C++. Language design has evolved into taking the skeleton of an existing language and stuffing it full of features gleaned from other languages. Older languages have evolved, largely by removing passé features, and streamlining language structures. We settled on a bunch of control structures, and never looked back. Is there something beyond decisions and repetition?

The increased speed of chips has had another effect on programming languages – we mindlessly program with little regard to the one thing early programming languages were designed around – efficiency. It doesn’t matter if we code in a slow language, because machines are fast. C was designed around a PDP-11 with little memory, it is designed to be a sleek, minimalistic language. Move onto Python, and we get a somewhat easier to use (learn) language, with a larger language footprint, and a slow running. Flip the page to Julia, we get a fast-ish language with a seemingly huge language footprint.

It could be partially attributed to the lack of discussion about programming languages anymore. In the 1960s and 70s, Dijkstra loved to poke a stick at languages, and people in general liked to debate languages. There were whole magazines dedicated to programming, like Creative Computing and BYTE in its formative years. And journals like the “Journal of Pascal, Ada & Modula-2”. There were studies related to the psychology of programming, and how programming languages could be improved. People even seemed to care about things like the usability of languages. Journals use to actively publish interesting articles about language design instead of the esoteric articles they tend to publish now.

Where is the discourse on how languages could be improved, made more usable? Language design has become the vocation of those who enjoy cramming as many features as possible into their bloatware, creating dull and soulless languages.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.