The power of code (1/2)
Design needs a(nother) language
Computer pioneer Ada Lovelace envisioned computers to do both calculations and produce music. As early as in the 19th century she peered far into the future by realizing that computers could not only process numbers but almost everything in the form of logical symbols. So Lovelace not only created some of the first algorithms but also foresaw the large domain of computers and their possibilities for creativity. If there is a patron saint of developers it’s Lovelace, even if there is some debate and mystery about her contributions.
Lovelace foresaw the large domain of computers and their possibilities for creativity
A century after Lovelace, computers really took off and so did the creation of programming languages. Since the 1940’s humankind has produced around 7000 programming languages and even more scripting - and domain specific languages (DSL). That already equals the active spoken languages in the world!
But one can ask: Why so many programming languages? Why do developers create new programming languages while they seem to be quite happy to keep using English to passionately debate them?
Why do developers create new programming languages while they seem to be quite happy to keep using English to passionately debate them?
It all goes back to the insight of Lovelace: Computers can process a lot more than just numbers if we create systems of symbols and logical operations within a structural language which can then solve mathematical problems, do transactions, show somebody's crazy imagination and everything in between.
So as software is trying to eat the world, both the writing of programs and the invention of new languages is core-business. In some ways a programming language can be seen as just a tool of the developer which helps to get things done. And some programmers develop a passionate exclusive relationship with it.
Above: Fragment of the genealogical tree of programming languages of HOPL
But unlike that permanent shine of having the best grades in English, Chinese or Spanish, computer languages have a tendency to come and go. They are constantly building on each other, facing new challenges, trying to be free from hardware constraints or adapting to new capabilities - offering abstractions to a new or old problem by looking at it differently or avoiding it altogether.
General purpose languages, scripting engines and domain specific languages together can generate text documents, query databases, run games, do data analysis and machine learning, make graphics, solve mathematical problems, run factories, create websites and generate music among many other things.
A new code language can be a big deal. Making something simpler than it ever was, or faster, safer, more fun, cheaper and more accessible. Programmers know this joy very well, unlike many others.
Natural language develops very slowly and within a social context. Not many new ones are introduced in general and within someone's lifetime. But if you consider the power of expression that you gain when visiting a foreign country whose language you learned: Big chance that country will not feel so foreign anymore.
So all fields in technology, especially the core and fast-moving ones - from machine learning, data, app development and deployment and crypto - constantly propose new coding paradigms, languages and scripting engines and reap the benefits. The creative fields - from art to music, design and literature - despite Lovelace’ early encouragement - see less change. Nonetheless there are some great and impactful examples: Processing (2001), OpenSCAD (2010), SonicPi (2012) and DesignScript (2011).
In the next part of this article we are going to discover them!