When my students (high school students) asked me "Why Are There So Many Programming Languages?" I don't want to give them an answer that is too pedantic (so they won't respond "Tl;dr"). I came up with a short list,
- Different tools for different jobs. Many languages were invented and developed for specific needs(even though through their evolution they are all able to solve some common problems).
- Big tech companies invented their own programming languages to solve specific problems, java, c#, go, Swift to name a few. These languages have their own goals and priorities, which are not in line with existing ones.
- People love to invent new things and programming language is no different. People often say "Each language has its own unique characteristics that would make it suitable to solve a particular problem." But I would like to put it another way, each language bears the characteristics that come from their inventors's experiences/strengths/lessons learned with the languages they used before.
- People have different tastes, personal preferences, or philosophies, when they don't like language A, they invent language B. I will emphasize this one to my students. When I search answers to this question I don't see many mentioned this. But think it is an important reason. For example, I hate C++, to me it is an ugly language. I read somewhere (I can't find it now), golang inventors don't like C++ too(same as Java inventor I think), so they invent their own languages.
- Technology is evolving. So people and big companies always feel the need to design a new language to better harness the new technology. The latest example of this may be mojo although reading its introduction I can't help saying WHY and again?!
The list is no doubt not exhaustive (and they overlap) but I try to make them not be too pedantic or too boring. For example, I particularly stay away from the reasons like "different programming languages are based on different programming paradigms"
Can you guys help me compile a list or give an answer that high school students can appreciate?
I searched cseducators site and found Why isn't there one language to use instead of different programming languages?, I am afraid most of the answers there will get a Tl;dr response from highschoolers ( at least from my students).