Slashdot Mirror


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.

6 of 92 comments (clear)

  1. The takeaway from this article by Anonymous Coward · · Score: 1, Insightful

    If you are applying for a job and you want less competition from Pajeets and women, study C or C++.

  2. Re:What makes a programming language 'Good'? by Archtech · · Score: 5, Insightful

    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.
  3. Re:What makes a programming language 'Good'? by AmericaRunsOnDunkin · · Score: 3, Insightful

    One metric that I find appealing is, what language requires the least amount of lines of code. Bugs are often related to lines of code, also, if you're maintaining code, the fewer lines to look at the better.

    One just need to look at perl one-liner contests to know that this is way wrong.

    Indeed - but perhaps not for the reason you think. It's not just number of lines of code - it's number of semantic units the programmer has to digest.

    Perl achieves brevity by cramming lots of arcane symbols on one line. That's terse but also very dense, making it harder to comprehend. Each symbol adds another semantic element to unravel: @$%#$%[%#^$#]=$_;

    OTOH Python achieves brevity in ways that aid comprehension. Syntactic symbols are kept to a minimum, and expressive names are encouraged and used throughout the standard library.

    Lines of code is usually meant as a rough proxy for semantic complexity. More lines = more things to digest. This may be true within one language, but across different languages it breaks down.

    The real measure is semantic units (operators, variable names, control flow, etc) to digest. For instance x += y and x = x + y may be functionally equivalent, but the first one is easier to digest. There are 3 semantic units rather than 5. Semantic complexity can be better approximated by looking at the parse tree for any given code. The number of nodes in the tree tells a lot more about complexity than lines of code.

  4. Re:Catching UP by Dutch+Gun · · Score: 5, Insightful

    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.
  5. Re:What makes a programming language 'Good'? by whoever57 · · Score: 3, Insightful

    @$%#$%[%#^$#]=$_;

    $ perl -e "@$%#$%[%#^$#]=$_;"
    syntax error at -e line 1, at EOF
    Execution of -e aborted due to compilation errors.

    Sorry, try again.

    This works, though:
    $ perl -e "$%#$%[%#^$#]=$_;"

    Or this:
    $ perl -e "$@$%#$%[%#^$#]=$_;"

    [for some definition of 'works' that I cannot imagine.]

    --
    The real "Libtards" are the Libertarians!
  6. Re:Catching UP by Xest · · Score: 3, Insightful

    Actually I see a different pattern in the data- it sounds like the languages being used more in Western countries are languages that are used to solve hard problems.

    That does include core game engine development, but it also includes advanced analytics, machine learning and so forth where languages like R and Python are the defacto standards nowadays.

    We often hear about how countries such as India can churn out a thousand first class graduates from their universities for every one mediocre graduate in the West and other such nonsense, but the reality is that of the top 500 universities in the world, the vast majority are in the West. So for example, India doesn't have a single university in the top 100, and in fact, it's first entrant in the top 500 is the University of Delhi as the 316th university in the world and only 4 in total in the top 500.

    There's a reason why the West is so dominant in the services industries and it's precisely because we have the education systems needed to stay ahead in solving difficult problems - it doesn't matter how many graduates countries like India can churn out in sheer volume alone if their best University is the 316th in the world. Compare and contrast to say, the UK, which has only 0.86% of the world's population but 9% of the top 100 universities. India has 17.6% of the world's population with 0% of the world's top 100 universities.

    China is really the only nation that is on the right path to catch the West, but that's because they've spent the last 30 years doing the hard stuff - building infrastructure, skills, and education, but I'd warn that their political system will inevitably become a constraint on ever being able to completely reach parity with the West as the more educated a population becomes, the more liberal they become - that's at complete odds with China's political system.

    The fundamental problem therefore is that many "tech hubs" in poorer nations are largely selling snake oil, the idea that they can always produce the same thing is cheaper, they simply don't have the skills, the talent, and the R&D centres to do so for more complicated tasks, and that's why the West shines in these areas, and that's why languages related to difficult problems are more prominent in the West.

    But a word of warning, there's been a marked trend in the West in recent years against education, against experts, and against knowledge and science, this puts our advantage in these areas fundamentally at risk if it persists, if we want to continue being world leaders in areas such as this, then we have to fight back this wave of populism, and worship of ignorance, else it will leave all that hard earned talent, knowledge, and that research culture ripe for poaching by others who are willing to nurture it more than we have been. Brexit for example puts Britain's top universities at fundamental risk as they can no longer easily draw in the global talent required to make those universities as successful as they are, and if you lose that R&D edge that universities provide then you're just another India - sure you can do GUIs cheap, but you ain't going to be a serious contender as global tech leader doing cutting edge work which is where the money is (i.e. Silicon Valley for tech, the City of London for finance etc.).