Monday, June 1, 2009

Technology versus Context

Most classes in Information Technology focus on the technology rather than on the context of the technology. For example, if one were to take a class in a programming language, say C# just to use a current example, one would, hopefully, learn how to program in that language. This is a good thing and I don't wish to diminish it. However, I do wish to point out what is lost.

There is a history of programming languages. Over the past fifty years programming languages have changed dramatically. If you were to take someone who learned a programming language at one point and show them programming ten years later, they would probably not recognize it. In fact, today, most programming is the assembling of reusable components in an integrated development environment. That is very, very different from what I learned. In fact, it was an uphill climb for me to get used to this new paradigm.

C# is an example of an imperative programming language. There are also functional and logic languages that were more popular when artificial intelligence was ascendant.

Over the years the monarchy of programming languages has changed considerably. Languages like Cobol, PL1, C++, and Ada were the languages du jour while many current students have never even heard of them. Java is currently the language du jour and it won't be long before it joins the rest of the pack in obscurity.

The problem here is that if you teach a person to program, they learn how to program in that one language. If you teach a person the context, they can learn new languages as they evolve. This is not generally a problem as most students only program in the early part of their careers. By the time their skills have become out of date they have moved on to other things like design, or management or working with clients.

One of Murphy's Laws of Technology states that if builders built buildings the way that programmers write programs, the first woodpecker that came along would destroy civilization. We have seen how shortsightedness in the financial industry can create problems. I wonder if we are not being similarly shortsighted in our technological infrastructure. Having programmers write programs that they know they will not have to maintain cannot be a good thing.

But, there is an even larger point here. Programming languages are just one instance of education in Information Technology. Overwhelmingly classes in Information Technology focus on the technology rather than the context. As I think about it, I also wonder if other disciplines don't do the same. Well, I am getting a little far afield here and should probably think about this a little more.

No comments: