Programming Languages or Lack Thereof

The first programming languages I was taught were (in order): (Turbo) Pascal, C and C++. During my final year at uni I grew an interest in languages no professor ever spoke of: Perl, Python, Awk, Bash (as far as shell stuff can be called a language). I took a course on functional and logical programming – for which I happen to be one of the teaching assistants at the moment – where I met Haskell and Prolog. While the latter has never managed to grab my interest, the former I really took a liking to. The functional programming course got me looking at Clean, Ocaml, SML, … I must admit I never really got used to the ML’s, but that’s largely because I do not digg the syntax very much.

Somehow it seems a bit sad that there are no real introductions or even hack sessions for the alternative (in the mainstream opinion) languages such as Python, Perl or even Ocaml or Clean. Even PHP is skipped, AFAIK. There are some introductions given by students to students, but it would be better if there was at least some structured course that would introduce at least a few of these languages, say Python, PHP and Haskell (the functional programming course is dying with the new Bachelor/Master system).

I think that most programming languages can contribute something essential to the programmers toolbox. (Even Visual Basic. Like how not to do it.) However, the last years the focus of the Computer Science courses has been more and more committed to Java. Java for starters, Java for Datastructures and Algorithms, Java for this, Java for that. I am the first to admit that Java has its uses, and that when used in the right environment it’s even quite cool, but why drop everything else in favour of Java? Because the industry demands it? Should the university not deliver computer scientists with a broad spectrum of academic qualities and with a broad range of programming languages they at least know the basics of? Of course they should be proficient in one or two languages, but they should at least have some knowledge of others. At least they should know what language is best suited for a particular task. Java is not a text-processing language, whereas Perl is. Right now we seem to deliver Java bees. Who can explain to these people what a pointer is? When the next mainstream, overhyped language rolls along, will we teach only that language?

Maybe we should teach people some brainfuck, whitespace and friends.

Tags: ,

Leave a Reply