June 2007


Jun 18, 2007: 5. Programming and theology


What does programming have to do with theology? Not much, on the face of it, but there are some interesting parallels.

To my mind, which is that of an analytical philosopher, an atheist, and a scientific realist, all theology is a kind of wishful thinking concerned with what is not really so - and those of good and sincere religious faith who disagree with me should at least admit that my typification must be true of all theologians who are of an other faith. Well, I simply extend that useful insight on which the faithful and I agree from all-but-one to all.

Now, much of theology is partial, and in more or less strong disagreement with all theology of other divine CEOs (and often also with many theologians of nominally the same creed). And all of it teaches that it, and it alone, holds the one, true, proper, moral way to heaven, enlightenment and edification.

Well, something very similar is true of the proponents of many programming languages, who often appear rather like religious enthusiasts where coding in their favourite language is concerned, and when speaking of its excellencies.

"Real men do it in C", "If it ain't OOP, it is no good" and many more such beliefs and tenets are held and expounded with considerable enthusiasm, conviction, and fire by what often seem to be sincere believers, of the faith of C++, Java, Delphi or Smalltalk.

Why is that?

In part, as the analogies with religion, politics and sports show, because it is human - to believe WE know better, and OUR kind of people, and the typical ways and practices of US are clearly and evidently best, and superior (if our truth be admitted) to what others do and believe.

And in part because programming is difficult. Anything one invests considerable time and trouble in thereby acquires a special standing and value - for oneself. Also, there is a considerable esthetical component involved in programming languages and programming environments, and what is beautiful, obvious or convenient for some is ugly, obscure or quirky for others.

But it would be nice if, at least when discussing programming and programming languages, one can avoid the analogues of the odium theologicum, that is the mark of most theology. And it should be easier to agree than in theology that most differences about programming languages depend on differences in esthetics or purpose, if not in abilities and knowledge, for a language may be quite apt and good for one purpose and inept and difficult to use for another.

Speaking for myself: I have rather strong tastes and distastes in programming, but I am usually aware - I believe - these are mostly due to my own ends and values, and not to my own superior insight in Real Programming (Of The One Superior Environment And Language).

And I have found most things I tried can be done in most languages, but not at all with the same ease (or difficulty).

There is much more to say on the subject of good and bad programming languages, environments, styles etc.

For the moment I only want to make the point that many of the strongly held convictions about the merits and demerits of programming languages and environments depend on esthetics, purposes and abilities, all of which are personal.

And in fact few people who program have a solid understanding of the compiler or virtual machine they program with, which indeed tend to be difficult to understand even if one has all the source code for them, plus explanations of that. That is another parallel with theology: The quaesitum tends to be a deus absconditus - a mostly hidden, obscure and unknown something, that the faithful feel and believe much more about than they really know and can prove.

Maarten Maartensz


        home - index - top - mail