Why are there so many different programming languages?
Avi Kak As is the case with most things in life, I believe there are multiple reasons for why we have so many programming languages. Here are what I believe to be the more significant reasons:
Programming languages vary with respect to the speed with
which programs written in them can be executed. So if
you have a real-time application, you'd choose a language
that would be capable of delivering results under the
applicable time constraints. So for a problem in dynamic
control, you might choose, say, C over C++ or Java.
Certain application domains require programming languages
that are specifically targeted for those applications.
Cobol, for example, represents a language that was developed
specifically for business applications. It is easy to learn
by people without advanced degrees in computer science and
it is efficient for what it was designed to do.
Much early programming dealt with solving numerically intensive
problems, such as problems encountered in scientific calculations.
Fortran emerged as a favorite of many for such applications. I
believe it continues to be a widely used language for solving
numerically intensive problems on supercomputers.
Many programming languages that have emerged from academic
laboratories are a result of researchers trying mimic certain
aspects of human cognition. Languages like Lisp and Prolog
fall in this category.
Another reason for why we have so many programming languages is purely
evolutionary. Consider, for example, the evolution from C to C++ and
then on to Java. As it began to be realized that we needed richer
representations for our concepts and as we sought ways to make large
programs more easily extensible and maintainable, the concepts of
object-oriented programming came into existence. Then as we better
understood what was meant by object-oriented programming through
pioneering languages like Smalltalk, C led to the development of C++.
And then as it dawned on us that the wide generality of C++ (with
regard to inheritance, operator overloading, and other issues) could
become a liability in some cases, Java emerged.
- As the role of computers as "information presentation devices" proliferated in the society, there emerged a concomitant need for languages designed specifically for formatting the visual display of information. Languages such as HTML, XML, and their variants are fulfilling those needs.