The Parable of the Programmer

Software, Science, and Math

This nearly infinite flexibility of software, I have concluded, is why objective software design evaluation is nearly impossible: there is no objective reality inside software. This is the secret cause of all the debate headaches. We might as well be a bunch of loonies in the mental hospital arguing over which one of us is the real or best Napoleon. The difference is that in cyberspace we can all be Napoleon. Some have suggested that the reasons for lack of objective metrics are because we don’t know enough yet; that we just haven’t learned how or what to measure. Instead, the problem is that we can manufacture what we “know”. Today you are Santa Clause, tomorrow Cleopatra. This can be both in a literal sense, such as a role-playing game, or a figurative sense, such as software organization principles.

The argument here is that software design cannot be objectively evaluated because there is no optimum design or physical reality to which the process can be compared. Therefore, the methods for evaluating it become a matter of pragmatism: does it work, and how well does it work? However, if the software needs to be maintained or adapted because of new user requirements, new hardware, new algorithms, etc., then there is also the problem of reconfiguring it:

One of the reason the innards do matter is because different programmers have to maintain (fix or change) software code made by others. Using our God analogy, if God goes on vacation or retires, then his replacement needs to know how the world works in order to keep it running.

Also, this leads to the idea that if the process can be done more efficiently, then the best software can be more quickly discovered:

If virtual words can be built, changed, and debugged faster, then companies can save money and hopefully make the economy more efficient.

The point of this article, though, is simply to show that software design is more like math than science, insofar as it proceeds logically from a set of premises and operations, and is not necessarily tied to physical reality for evaluation of its ideal truthfulness. Nevertheless, some computer science premises are accepted as better than others:

This is similar to the purpose of the CS idioms we talked about. They have been road-tested. Any major inconsistencies or problems would have already been discovered by now, and smaller ones get incrementally fixed over time, or at least better understood so that workarounds are documented. Maybe there are revolutionary idioms that we have yet to discover that provide new and different ways to get the answer. But at this point we don’t know and can’t tell…. We might perhaps be able to test that one has learned how to use an idiom to some extent, but that does not necessarily say if it is the best idiom let alone the best possible idiom…. There may be an easy tweak that we just have yet to stumble upon. We just don’t know what we don’t know…. If one can perfect a new idiom by working out the bugs and oddities or better understanding it, then it can enter into the realm of useful idioms to choose from. It provides us with more options to use in our virtual worlds.

So, the article carries through a theme that ultimately the software designer makes a subjective decision about what is best:

  • The only limitation is the imagination of the creator of the virtual world.
  • My personal observation in combination with bits of Edward Yourdon’s studies suggest that the paradigm or language that a given developer is most comfortable with is the one that makes them the most productive.
  • Going back to our god analogy, without some other universes to compare to, it is hard to create a universe from scratch.
  • Inconsistencies like this may not matter much on scripted TV, but if somebody creates a world with such contradictory rules and tries to “run” it … then the inconsistencies start to bite…. As a virtual god, we won’t like the world that we created. It does not have the desired output (entertaining plots in this example).
  • Variety may also allow more people to participate in world-building because there is a greater chance that an idiom can be found to match a given person’s personality and cognitive approach.

All of this may be seen as a parable about God, evolution, and Open Theism. For those who have eyes to see, let them see.


2 thoughts on “The Parable of the Programmer

  1. I’d differ on lot of the detail but he ends on the right note: “In the end, our minds are still the primary factor to weigh. The mind is where both the power and limits of software are found, not the outside world.”

    I.e. software – I mean the sort most of us see, applications – works to the extent it fits the way our minds work. The unfortunate side effect being, our minds start fitting the way software works.

    Believe it or not, I once held down a lecturing position in a Cybernetics and Virtual Worlds department. It was an odd situation in which I had more or less carte blanche. After a year or so I concluded the best things I could teach, that I knew anyway, were simple algorithmic programming and engineering mathematics.

    It was about this time that I tried to learn Visual Basic. I decided fairly quickly that I didn’t understand it, I never would understand it, and what is more, I didn’t even understand what kind of thing it was in the first place. So I’m not the best to pontificate about computer “science” (and I agree it isn’t one – “art” is better maybe, but it still doesn’t sound quite right). Regardless, one thing I noticed about software people, long ago, was that the metaphor of “power” seemed incredibly important to them.

  2. I once thought of myself as a programmer, because I wrote small programs in BASIC and FORTRAN. But when I took the real “computer science” classes I thought they were too boring, so I switched to electrical engineering, but quickly flunked out. The only classes I did well in at that school were Differential Equations and German technical translation.

    The interesting thing about this article was the way it seemed to be following an allegorical structure. I thought it was just my imagination, but after looking around the rest of the site I think it expresses the way the author thinks: he advocates a kind of “intelligent evolution.”

Instigate some pointless rambling

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s