There are too many programming languages. What I mean to say is there are too many good programming languages. Behavior psychologists have long warned about the curse of choice – the theory that too much choice causes anxiety and negatively affects decision making. We in the software world suffer from a severe form of that. We’re literally drowning in options, all of which are good.
Do you remember that myth from the late nineties about the great technology convergence where all software development converges onto one platform built with one programming language? Java was supposed to be the write once run anywhere language and we were all supposed to use it for everything. The first mobile apps were Java apps running on those old Nokia phones with the little green and black screens. Client-side web was supposed to move entirely to Java applets. Even software embedded into devices – like copy machines – was supposed to be written in Java, because we all know that managed memory code is great for copy machines. I can picture it now: the garbage collector kicks in while your copies are being made and they all come out smeared.
Now the development landscape is more fragmented than ever and becoming more so. And that’s a problem because it makes hiring and training significantly harder. The proliferation of new languages and frameworks is watering down the talent pool for the most popular languages, and among the new languages there seems to be no clear winner. Myth busted.