In his book on the development the C++ language, The Design and Evolution of C++, Bjarne Stroustrup says that in creating C++ he was influenced by the writings of Søren Kierkegaard. He goes into some detail about it in this recent interview:
A lot of thinking about software development is focused on the group, the team, the company. This is often done to the point where the individual is completely submerged in corporate “culture” with no outlet for unique talents and skills. Corporate practices can be directly hostile to individuals with exceptional skills and initiative in technical matters. I consider such management of technical people cruel and wasteful. Kierkegaard was a strong proponent for the individual against “the crowd” and has some serious discussion of the importance of aesthetics and ethical behavior. I couldn’t point to a specific language feature and say, “See, there’s the influence of the nineteenth-century philosopher,” but he is one of the roots of my reluctance to eliminate “expert level” features, to abolish “misuses,” and to limit features to support only uses that I know to be useful. I’m not particularly fond of Kierkegaard’s religious philosophy, though.
Stroustrup is likely referring to philosophical observations such as this:
Truth always rests with the minority, and the minority is always stronger than the majority, because the minority is generally formed by those who really have an opinion, while the strength of a majority is illusory, formed by the gangs who have no opinion–and who, therefore, in the next instant (when it is evident that the minority is the stronger) assume its opinion . . . while Truth again reverts to a new minority.
— Søren Kierkegaard
Coincidentally, Kierkegaard and Pascal are often cited as the fathers of modern existentialism, and where Kierkegaard appears to have influenced the development of C++, Pascal’s name lives on in the Pascal programming language as well as the Pascal case, used as a stylistic device in most modern languages. The Pascal language, in turn, was contemporary with the C language, which was the syntactic precursor to C++.
So just as the Catholic Church holds that guardian angels guide and watch over individuals, cities and nations, might it not also be the case that specific philosophers watch over different programming languages? Perhaps a pragmatic philosopher like C. S. Peirce would watch over Visual Basic. A philosopher fond of architectonics, like Kant, would watch over Eiffel. John Dewey could watch over Java, while Hegel, naturally, would watch over Ruby.
Wow! Half of me responds: how wonderful that the C++ creator should cite Kierkegaard. The other half things–sorry, I just don’t credit this at all. It’s a nice conceit, but has no basis in reality. The K you quote sounds like he is responding explicitly to Plato’s Republic. Perhaps you should develop your taxonomy of philosophical programming languages in greater detail….
Conrad,
You make a good point, and maybe it shouldn’t come as too much of a surprise that a Danish engineer should cite a Danish philosopher as an influence. One peculiarity is that in praising Kierkegaard’s Either/Or, Stroustrup also expresses his discomfort with Kierkegaard’s religious reflections.
At the same time it is fascinating, as you point out, to find an engineer discussing the relationship between philosophy and software languages at all. There is certainly some sort of connection there; for instance the close relationship between symbolic logic and low level languages, as well as the obvious, though fragile, relationship between object-oriented programming and Porphyry’s tree.
Perhaps it is wishful thinking on my part, but despite the frequent observation that philosophy’s purpose is to cultivate the soul, the prospect that philosophy also can practical and material import is very exciting (if possibly illusory).
Value the persuasive point of view sketched in Long Dark Night of the Compiler. I was looking at all these remarks and observed that many of them are really exclusively for the linkups. I guessed about jumping over your web log because of it but resolved instead to actually join in. There is no smoke without a fire and in that respect there are no remarks without postings.