Lars Oestreicher
3 min readDec 13, 2021
Albino Python Snake

Which is the best programming language of all?

OK, let’s admit it, the title is of course a click bait… but maybe not in the way you may think. So, let me give you a hint, the post is not exactly about programming languages, as such.

On most programming oriented sites or subsites(Medium included) there is one type of questions about programming languages that never ceases to be put, and that is either:

  1. “Is X better than Y?”, or
  2. “Which programming language is most important to know?”

So, which is it then? Well, how about Fortran? Or LISP? Of course not! Those old languages aren’t even worth mentioning anymore… no, the best programming language has to be… the new hyped language which will be introduced in a couple of years.

That answer is of course a bit stupid, but in a way it illustrates the point of this post quite well. Any language you choose to learn has a potential of being “the best", once you set out to master the intricacies of the language to the full extent. Currently the main fight seems to be between Python and Julia or possibly Go? However, in my opinion this discussion is quite pointless, as the computers as well as the programming languages develop faster and faster. The language you learn today, might be gone the day after tomorrow. In this endless discussion we still tend to forget the fundamental property of all programming languages: they can be replaced by Turing-machines (1). Essentially, computer languages are all the same, only separated from each other by more or less advanced syntactic sugar. (2)

OK, but which language should I learn then? Well, choose a language which makes it easy to code, and then learn the art of PROGRAMMING. Once you have understood the fundamental parts of programming, you should be able to implement the solutions in any programming language you encounter after a few weeks of learning the coding variation in the specific implementation language (that your company favors for the moment).

My teacher in the Russian language once said to me that when you have learnt 9 to 10 languages, it starts getting easier to tackle the next new language. And I believe him. But, and that is even more important, when you have understood the principles of these language, it becomes easier to adapt to be kinds of grammars.

If we transfer this line of reasoning to the programming arena, I think it is actually quite similar. Once you have programmed in five-six different languages (with different paradigms) you start to see the positive and negative features in the languages/paradigms. I have used functional, procedural, declarative, object-oriented, compiled as well as interpreted languages throughout my working life. Which do I prefer? None, or all, you can choose. But, I can see the combinations of the paradigms in most of the programming languages i encounter today. And, to be honest, I tend to use all these paradigms together when I start programming. Once the programming is done, the coding is most of the time very straightforward.

The programming, problem-solving strategies are what matters, then what words and syntax we use is of much lesser importance. You can be a great coder, but if you don’t know or understand how to program in order to solve a problem, the coding skills quickly become useless.

Disclaimer:

(1) There are of course two things to note in the comparison to Turing-machines. A language may of course be a subset of a Turing-machine, i.e. it may not be able to do everything that a Turing-machine can do!

Lars Oestreicher

Associate Professor at the IT department at Uppsala University in Sweden. Research: AI, Disabilities and Human-Computer Interaction.