Coders In Wealthy and Developing Countries Lean on Different Programming Languages (vice.com)
Stack Overflow data scientist David Robinson published an interesting observation: There exists a small but meaningful divide between the programming technologies used in wealthy countries and those used in developing countries. From a report: To be sure, programmers everywhere tend to build things with the same tools, which makes sense because software is a global industry. The first is in data science, which tends to employ the programming languages Python and R. "Python is visited about twice as often in high-income countries as in the rest of the world, and R about three times as much," Robinson writes. "We might also notice that among the smaller tags, many of the greatest shifts are in scientific Python and R packages such as pandas, numpy, matplotlib and ggplot2. This suggests that part of the income gap in these two languages may be due to their role in science and academic research. It makes sense these would be more common in wealthier industrialized nations, where scientific research makes up a larger portion of the economy and programmers are more likely to have advanced degrees." C and C++ use is similarly skewed toward wealthy countries. This is likely for a similar reason. These are languages that are pushed in American universities. They also tend to be used in highly specialized/advanced programming fields like embedded software and firmware development where you're more likely to find engineers with advanced degrees.
The ideal language would probably have to find a balance between various requirements.
That is exactly what thousands of researchers have been trying to accomplish, designing literally hundreds (if not thousands) of languages in the past 60 or so years.
But it's not a reasonable goal.
Falling back on the hackneyed but serviceable "transport" analogy, if you want a cheap, simple conveyance that can easily be operated by a single person, a bicycle is good. Want more power and speed, at the cost of greater weight and cost? Try a motorcycle. If you need to fly, you'll need - at least - a microlight, although a helicopter has its advantages. Want to cross water? Submerge? Resist armour-piercing shot? Carry 50 passengers or 20 tons of freight? Look great and attract new friends?
I hope you get my drift. There is no "one size fits all", and there can't be. Languages like C let you get down to the bare metal (or as close as you want to), but you have to do a lot of extra work. High-level languages let you program much faster, but may not run as fast, or may limit what you can do in ways you find unduly restrictive.
From time to time a "local winner" emerges. I don't think anything better than Cobol has ever been created for run-of-the-mill business applications. Come to that, Fortran is still excellent for mathematics, unless you want to give APL a spin. And you'll find, if you look into it, that most avionics nowadays is written in Ada - and I'm very glad of it.
And then there are the pioneers...
"The more I ponder the principles of language design, and the techniques that put them into practice, the more is my amazement at and admiration of ALGOL 60. Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors".
- C.A.R. Hoare, "Hints on Programming Language Design", 1973
I am sure that there are many other solipsists out there.
I once heard "I just tried out this Java thing and I'm going to kill myself!"
#DeleteFacebook
The argument for industry-specific biases has some merit, though.
For instance, C++ is nearly universally used in the game development industry, which is largely centered in the US, Japan, Europe, and various other relatively wealthy countries/regions. C++ is not used only because of historical reasons (although it's partly that, of course). It also has to do with the qualities of the language itself. Game developers require a language with a balance of performance, abstraction / modeling, general ubiquity, and portability. To date, there's *still* no other language that meets all these criteria as well. While there's no denying the influence of legacy's influence on future development, I think it's also inaccurate to depict this as "being stuck with C/C++".
It's always surprising to me how many people seem to fail to appreciate the fact that different languages have fundamentally different qualities beyond just their syntax, or that the qualities *they* happen to value in a language may not be universally important across all domains. This is the reason that all those articles talking about which programming language is "best" or "most popular" are completely worthless. It's only of use when asking "what is the best language for solving this particular problem, given these specific conditions", and even then, there will still be some subjective opinion thrown into the mix.
So, kudos to the article for at least providing us with a bit more depth than a simple popularity list of languages.
Irony: Agile development has too much intertia to be abandoned now.