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.

92 comments

  1. Catching UP by cecurry · · Score: 1

    C and C++ are used more in the U.S. because at one point in time, the U.S. was the only country using those languages. It took other nations to catch up with our IT industry, and when they did they chose more modern languages (I suspect Java and C# are the most popular), while in the U.S. many places were stuck with C and C++.

    1. Re:Catching UP by jonsmirl · · Score: 2

      I agree, I believe the simple explanation for this is that the developed countries have been working at software development for a longer period of time. The older programmers in the developed countries use a different set of programming languages. I do not see this as wealth related, it is historical.

    2. Re:Catching UP by Anonymous Coward · · Score: 0

      stuck with C and C++.

      Let me guess, you don't program in C or C++? People who criticise C and C++ tend to be the people who don't use it.

      What you tend to find is that programmers who have extensive experience with C/C++ and Java/C# tend to prefer C/C++. I don't think I've ever seen anyone say, "I just tried out this Java thing and I'm never going back to C again!"

    3. Re:Catching UP by sittingnut · · Score: 2

      C and C++ are used more in the U.S. because at one point in time, the U.S. was the only country using those languages. It took other nations to catch up with our IT industry, and when they did they chose more modern languages (I suspect Java and C# are the most popular), while in the U.S. many places were stuck with C and C++.

      that may be(i really don't know, and i haven't seen any computing history book that make those claims).

      but in my humble opinion, ones gets a more fundamental understanding of computer programming and computers by studying c and c++ (or just c actually) than java or any other "modern languages", that are "easier", abstract, and yes, more useful, in some situations .

      if one want to understand, and not just use, one should study c. perhaps assembly too.
      if one's mindset it geared for breaking things apart and perhaps putting them back, and not just build using others' tools, one may prefer c.

    4. Re:Catching UP by Anonymous Coward · · Score: 0

      Damn, you just made me snort my Coke all over my keyboard. Fortunately it is the sugar free, poisonous variety, so the keys won't get stuck.

      I'm an African American White - an invisible minority. I suffer discrimination and never qualify for special treatment, so I'll just have to carry on with C then.

    5. Re:Catching UP by DontBeAMoran · · Score: 5, Funny

      I don't think I've ever seen anyone say, "I just tried out this Java thing and I'm never going back to C again!"

      I once heard "I just tried out this Java thing and I'm going to kill myself!"

      --
      #DeleteFacebook
    6. Re: Catching UP by fubarrr · · Score: 1

      I feel it is more popular vs niche than less or more advanced.

      The market for web development is the biggest one in the world out of all development practices. No wonder that "CMS website in under 1 week" type of outsourcing sweatshops are present all across the world

    7. 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.
    8. Re: Catching UP by Anonymous Coward · · Score: 0

      I've said that other people should kill themselves after seeing what they've made in Java. :)

    9. Re:Catching UP by Anonymous Coward · · Score: 0

      You don't know about Kernighan & Ritchie at Bell labs? Seriously?

      P.S. Shift key. Heard of it?

    10. Re:Catching UP by Tablizer · · Score: 1

      You should know saying "stuck with" will trigger a language flame-war. (Personally I believe such languages shine in different spots and it's almost comparing apples to oranges.)

    11. Re:Catching UP by sittingnut · · Score: 1

      You don't know about Kernighan & Ritchie at Bell labs? Seriously?

      !? what does that have to do with what i wrote?

      i have not read anything in computing history, that can justify following too broad generalizations made in the comment to which i replied.
      -that other nations when they caught up to usa it industry, "chose more modern languages".
      -that in usa "many places were stuck with C and C++" just because they are in usa.

      instead it is clear that lot of c and c++ work does take place outside usa. and it is nature of use that determines language. and if there is selection of language based on country, that has more to do with what most developers do in that country.

      -

      P.S. Shift key. Heard of it?

      aesthetics, grammar, spelling, etc., refuge of the logically deficient.

    12. Re: Catching UP by Anonymous Coward · · Score: 0

      Next time you sit down to code in Python, why don't you think about all the Black people you are systematically disadvantaging and othering with your choice of script language. I'll bet you are so insensitive to other non-white coding cultures, you haven't even heard of code igniter. Same thing for you people with ++ or # or Java privilege. You are the {}-archy. It is time for you to give way to PHP.

    13. Re: Catching UP by Anonymous Coward · · Score: 0

      Made my day. I once heard someone say that modern programming languages were like drawing stick figures, and that they had become proficient drawing stick figures at the age of 5.

    14. Re: Catching UP by Anonymous Coward · · Score: 0

      The effort you put into your writing creates an impression of the effort you will put into other things. The people who won't criticize your writing will quietly make assumptions and put you in the reject pile.

    15. Re:Catching UP by jma05 · · Score: 3, Interesting

      > I don't think I've ever seen anyone say, "I just tried out this Java thing and I'm never going back to C again!"

      Plenty of people who knew just C++ found Java to be a relief for business programming when Java first came out. Those of us who used other languages outside C/C++ wondered what the fuss was all about. But a lot of C++-only people found Java to be much simpler. That was how it became popular, not because of applets. Of course, a lot of people also thought it was terrible for a variety of reasons. For many years, it was also fashionable to criticize Java and Java in fact deserved a good deal of that criticism in its early days - it simplified some things that needed to be simplified and complicated other things that never needed the complexity.

    16. Re:Catching UP by Anonymous Coward · · Score: 0

      Uh

      Hey dude

      You might wanna check how accurate it is before you make an ass of yourself highlighting how much other people mock you for making an ass of yourself.

    17. Re:Catching UP by Gr8Apes · · Score: 1

      "I just tried out this Java thing..."

      and wow, I don't have to worry about memory leaks in general, or pointer assignments, or geez. I'm sorry, I just wrote a business system I can hand off to a junior maintainer and never see again in the time it took me to write the C headers.

      --
      The cesspool just got a check and balance.
    18. Re: Catching UP by tigersha · · Score: 1

      I have said that. After learning Java I seldomly programmed in C. C is terrible. Nowadays I avoid it like the plague

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    19. Re:Catching UP by Anonymous Coward · · Score: 0

      Wow, did you just support Oracle by causing a company to be more dependent on Oracle's product? Money does not stink, eh? How does it feel to be a part of the problem?

    20. Re:Catching UP by Anonymous Coward · · Score: 0

      I have heard, however, "I just tried this Matlab [python] thing, and I now realize that Java is apparently a fast, high-performance language."

    21. Re:Catching UP by Anonymous Coward · · Score: 0

      "I just tried out this Java thing..."

      and wow, I don't have to worry about memory leaks in general, or pointer assignments, or geez. I'm sorry, I just wrote a business system I can hand off to a junior maintainer and never see again in the time it took me to write the C headers.

      I've seen what happens when Java programmers think that.
      The garbage collector doesn't work if you don't make sure to think about how things will be freed so it ends up grabbing memory every now and then and needs to be restarted.

    22. Re:Catching UP by Anonymous Coward · · Score: 0

      Java became popular because of marketing.
      It was pushed so heavily to the point that customers requested that the program should be written in Java without actually knowing the pros and cons.
      Couple that with the inability of customers to actually say what they want until they get a runnable program so that they can point out it wasn't what they wanted and you have a situation where you know nothing about the program you are going to write except that the language has to be Java.

    23. 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.).

    24. Re:Catching UP by Gr8Apes · · Score: 1

      I've seen what happens when Java programmers think that. The garbage collector doesn't work if you don't make sure to think about how things will be freed so it ends up grabbing memory every now and then and needs to be restarted.

      Of course not. People can write shit code in any language. The point is, with two equally skilled programmers for general business programming, the one in Java will succeed in a fraction of the time with far better and more maintainable code than their C/C++ counterpart. Now, there's a time and place for C/C++ programming, but in general Java is just fine, which is why it dominates the way it does. And yes, the GC issues can suck very badly if you don't pay attention to references and object creation. It can also be a non-issue with well constructed code, even at scale and over periods of months or years. C/C++ code can be equally robust, but the skill and time required are higher than for producing an equivalent bit of Java code.

      --
      The cesspool just got a check and balance.
    25. Re:Catching UP by Gr8Apes · · Score: 1

      Nope - Java is open. You might want to check it out.

      --
      The cesspool just got a check and balance.
    26. Re:Catching UP by Anonymous Coward · · Score: 0

      That's funny, I only know programmers who have said "I just tried out this Java thing and I'm never going back to C++ again!". The company I work for is developer run and it was basically unanimous to move to Java from C++. Perhaps different fields? I'm genuinely curious that there are still people preferring C++. No so much C, which is a totally different niche.

    27. Re: Catching UP by sittingnut · · Score: 1

      The effort you put into your writing creates an impression of the effort you will put into other things. The people who won't criticize your writing will quietly make assumptions and put you in the reject pile.

      to repeat, ignoring substance of argument, and facts and reason, to concentrate on alleged (usually imaginary and always subjective) deficiencies in aesthetics, grammar, spelling, etc., is the refuge of the logically deficient.
      don't care if my "writing" end up in "reject pile" due to prejudices of such people.

  2. 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++.

    1. Re: The takeaway from this article by Anonymous Coward · · Score: 0

      The women will still be hired over you, due to Patriarchy, Diversity and Trump, and Pajeet will also be hired by your Indian manager in preference to you because Caste.

      Sorry.

    2. Re:The takeaway from this article by Anonymous Coward · · Score: 0

      Want a guaranteed job? Do less C++ and more ISO-C. (Don't rely on POSIX, if the system is POSIX then it also supports most high level languages.)
      It's hard to find EE-people and the few that are out there are also stuck writing code.
      In many cases a skilled C programmer could just jump in and do some work while a programmer that only looked at higher level languages is about as useful as your middle management.
      For anything safety related most high level languages are just no-go.
      If you can't guarantee static allocation and determined execution path of the code some applications are just off limits.

  3. This could be viewed very differently by Anonymous Coward · · Score: 0

    This appears to indicate that most programming in growing countries that are building their success in the mobile age is on web implementations. That should surprise nobody.

    On the other hand, countries that established their high tech bona fides long ago still have activity in the languages of long ago and languages designed for R&D.

    It also means that, in terms of bulk, the up-and-comers are doing more work than the maintainers of the old status quo.

    1. Re:This could be viewed very differently by Anonymous Coward · · Score: 1

      The trend can be seen much better from the original article, in the programming technologies visited by income chart.

  4. Python, Rust, C/C++, R... by Anonymous Coward · · Score: 0

    So what does that leave? Is Visual Basic being pirated left and right all over the Third World?

    1. Re: Python, Rust, C/C++, R... by Anonymous Coward · · Score: 0

      Pretty much so. A caste Mark of developing world is Windows, lots of pirated shareware for it, while in developed countries people use more stable Mac and Linux with FOSS software. Like, GNU make instead of pirated MS visual studio.

  5. Rust by Anonymous Coward · · Score: 0

    If you don't use Rust, you're in a devolving country.

    1. Re:Rust by Anonymous Coward · · Score: 0

      Rust is a joke. Use C++, or Scheme.

    2. Re:Rust by sinij · · Score: 1

      I don't always code, but when I code I write assembly code directly in binary.

    3. Re:Rust by RhettLivingston · · Score: 3, Interesting

      I'd actually guess you're right. It appears that virtually all Rust usage is in some unknown "evolving" country.

      I tried to dig into it a bit in the 2017 Stack Overflow Developer Survey results and see that though it is the "most loved" language, it does not appear on the "most wanted" list nor is it in the top 25 "most used" languages.

      Worldwide, it has the second highest salary, but it does not even have an entry on the languages by salary lists for the US, UK, Germany, France or India.

      The average experience level of people using it is also on the low side.

      I can only conclude that it must be very popular amongst new programmers in some country that is at the bleeding edge of evolving and unknown.

    4. Re:Rust by whoever57 · · Score: 3

      I don't always code, but when I code I write assembly code directly in binary.

      "assembly code ... binary". You keep using that word. I do not think it means what you think it means.

      --
      The real "Libtards" are the Libertarians!
    5. Re:Rust by Waffle+Iron · · Score: 1

      I think he means that he can't afford a keyboard and monitor, so he soldered some switches to his parallel port, and now does "cat /dev/lp0 > mysource.S"

    6. Re: Rust by tigersha · · Score: 1

      Ah, how do I miss my Old IMSAI

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  6. What makes a programming language 'Good'? by shoor · · Score: 1

    I've read that Java was designed to be usable by 'mediocre' programmers. I take it the idea was you could hire people who weren't master programmers and get something working that didn't have a lot of subtle bugs like memory leaks that were going to come back and haunt you later. Also it was supposed to be very portable. I never used Java so I don't know how well it met those goals, but I can see how they would be desirable from a management point of view but not so much from a pure computer scientist's POV.

    Haskell is a language where once you get your program to run at all it usually runs correctly. My very limited experience with it is that it requires a very mathematical sort of mind (so maybe I'm the 'mediocre programmer' when it comes to Haskell) and it's hard to know exactly what's happening under the hood so one could run in to performance issues.

    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. But I can see how a language designed just to be terse could be difficult. (APL anyone?)

    The ideal language would probably have to find a balance between various requirements. Something where bugs could be caught easily, yet had a lot of power. It shouldn't be so complicated that few people ever master the entire language. (C++?) So it should be 'elegant' and 'expressive'. How does one measure elegance and expressiveness? And, once you've got this wonderful language, how do you promote it?

    --
    In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
    1. 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.
    2. Re:What makes a programming language 'Good'? by AuMatar · · Score: 1

      Haskell is a language where once you get your program to run at all it usually runs correctly.

      That's a dangerous way to even think. Very few bugs are actually programming mistakes- the vast majority, and the harder to fix are design mistakes. Just because it compiles doesn't mean its anywhere close to right.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    3. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 1

      Probably true for larger projects at this level of generality, but I have to mention that some small Ada projects I wrote were 100% working and no bugs were found later after I got them to compile. Before you disagree prematurely, you have to write at least a few small or medium-sized projects in Ada, it really is amazing. This won't save you any time, though, because the time spent on debugging in other languages you spend fighting the compiler in Ada.

    4. Re:What makes a programming language 'Good'? by dargaud · · Score: 2

      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. But I can see how a language designed just to be terse could be difficult. (APL anyone?)

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

      --
      Non-Linux Penguins ?
    5. Re:What makes a programming language 'Good'? by swillden · · Score: 3, Interesting

      Haskell is a language where once you get your program to run at all it usually runs correctly.

      That's a dangerous way to even think. Very few bugs are actually programming mistakes- the vast majority, and the harder to fix are design mistakes. Just because it compiles doesn't mean its anywhere close to right.

      You haven't used Haskell, I see.

      Oh, it's not a panacea by any means. But the nature of the language and its very strict typing really forces you to clarify lots of aspects of your design that you might not think nearly hard enough about in other languages. By the time you get your code to compile it's significantly closer to correct than other languages. Moreover the inherent lack of side effects in functional programming makes writing automated tests of Haskell code a breeze... so if you assume that getting your program to run also includes getting a good suite of automated tests to pass (as it should!), then you really can have pretty high confidence that the code does what you think it does.

      Of course, what you think it does may not be what it should do. No programming language can do anything to find bugs in the requirements.

      The AC who replied to you makes the same claim about Ada, where it is also true. But it's even more true of Haskell than Ada, IMO. I should mention that I've used both languages only on small projects. Ada has proven to scale well, though, and I suspect Haskell would as well, if you could find enough Haskell programmers to staff a large project.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    6. 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.

    7. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

      But I can see how a language designed just to be terse could be difficult. (APL anyone?)

      It's not too difficult!

    8. Re:What makes a programming language 'Good'? by phantomfive · · Score: 1

      I think the major unsolved problem of programming languages is: how do you organize the code? OOP is a good attempt, but doesn't quite get there.

      Another unsolved problem is, "How do you prove the code correct?" but that might not be solvable.

      --
      "First they came for the slanderers and i said nothing."
    9. 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!
    10. Re:What makes a programming language 'Good'? by Dutch+Gun · · Score: 1

      I was typing up a reply very similar to yours, even including the same vehicle-based analogy. Then I looked down and saw your post. So instead I'll just say "yes, this".

      A language that tries to be all things will always lose out to specialist languages designed for a very specific use case. There is some merit in selecting from among a handful of well known languages, simply for the ease of learning and collaboration, but beyond a specific point, too much language consolidation would actively harm specific use-cases that have more extreme requirements.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    11. Re:What makes a programming language 'Good'? by Tablizer · · Score: 3, Interesting

      I've read that Java was designed to be usable by 'mediocre' programmers. I take it the idea was you could hire people who weren't master programmers and get something working that didn't have a lot of subtle bugs like memory leaks that were going to come back and haunt you later.

      "Mediocre" is a matter of perspective. A Java programmer is more likely to be a generalist and do some degree of analysis work, such as gathering and clarifying requirements with customers.

      C/C++ is used more often where hardware restraints/performance matter more and the programmers are either habitually or naturally more fastidious about the technical side and machine-level concerns. But they are also less likely to interact with or want to interact with end-users or non-technicians such as marketers.

      I general I think there's a general trade-off between a mind that does well at technical issues versus people/business issues. Yes, there are exceptions, but I stand by the general rule. Paul Graham seems to agree as he mentioned that geeks in high school are often poor at social interaction because social interaction does not interest them any more than a football player is typically interested in gizmos or chess.

    12. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

      In my industry Java programmers are much more likely to be diploma mill mediocre developers with no or limited domain knowledge.

      In general I think your notion of a general "trade off" isn't reflected in reality - not everyone has the same capacity. Some people are poor in all areas, many of the better technical people are interested and driven enough to end up as true experts.

    13. Re:What makes a programming language 'Good'? by Tablizer · · Score: 1

      But you have lousy Java coders and good Java coders. The language itself is often secondary to issues of good general design/planning, attention to details, and caring about quality. I notice the language I use makes only about a 15% difference in my general productivity. Leverage their strengths and be careful around their weaknesses.

    14. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

      Another unsolved problem is, "How do you prove the code correct?" but that might not be solvable.

      Start with "How do you prove that the specification is correct."
      Bugs are often easy to catch and solve.
      The really hard ones might take a week.
      Incorrect specifications on the other hand sometimes wastes months.

    15. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

      But you have lousy Java coders and good Java coders.

      True.
      The programmers I know that I trust to get shit done have one thing in common.
      They know assembly and at least one high level language.

      Now this is a typical case of "correlation isn't causation". Knowing at least one assembly language today probably means that you've been a programmer for long enough to have plenty of experience.
      It could also mean that since you know both a high and a low level language you are likely familiar with multiple paradigms and are able to think about problems in another way.

      Someone who knows Java/Python/PHP/Perl is probably better than someone who only knows one language, but one of them together with a language that is vastly different will probably be better.
      I also wouldn't trust someone who only programs assembly unless they can show me that they've written some larger application in it.

    16. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

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

      Hey, that's the combination for my luggage!

    17. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

      I remember we had an attempt to solve it with a new kind of programming language, but there is nothing really concrete so far, AFAIK.
      https://en.wikipedia.org/wiki/Fifth-generation_programming_language

    18. Re:What makes a programming language 'Good'? by Anonymous Coward · · Score: 0

      I believe that is the miracle language known worldwide as Grawlix ;)

      http://100-pics.net/images/answers/en/symbols/symbols_14766_749240.jpeg
            and
      https://en.wiktionary.org/wiki/grawlix

    19. Re:What makes a programming language 'Good'? by luis_a_espinal · · Score: 1

      Haskell is a language where once you get your program to run at all it usually runs correctly.

      That's a dangerous way to even think. Very few bugs are actually programming mistakes- the vast majority, and the harder to fix are design mistakes. Just because it compiles doesn't mean its anywhere close to right.

      The vast majority of programming and logical mistakes can be represented as syntactical errors by coding standards and types in such a way that makes detectable by a compiler. Consider the old C/C++ safety habit of putting rvalues on the left side of an equality operator: it allows the compiler to catch the programming error of using '=' instead of '=='.

      Higher level languages take such approaches and formalize them into types. Haskell goes all the way out so that syntactical correctness closely implies logical correctness.

      It is a PITA to program in Haskell, however. Not my cup of tea. But it is no bs to argue that if a Haskell program runs it is most likely correct.

      Less extreme examples of this approach can be found in SPARK or Ada using the Ravenscar profile for critical systems. Or an even more pedestrian, day-to-day example would be coding in Node.js using jshint's most aggressive features.

    20. Re:What makes a programming language 'Good'? by AuMatar · · Score: 1

      Yeah- you're talking about things that are 1 error in 20. If that. The fact that you actually believe the bullshit you're spouting scares the shit out of me- I truly hope I don't use anything you've ever worked on.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    21. Re:What makes a programming language 'Good'? by K.+S.+Kyosuke · · Score: 1

      Ada didn't save Ariane 5. If it could have saved Ariane 5 it would have been deemed a theorem prover, not a programming language. Solving things at compile time unfortunately doesn't scale to propositions in large programs.

      --
      Ezekiel 23:20
    22. Re:What makes a programming language 'Good'? by lars_stefan_axelsson · · Score: 1

      Exactly! For those who want to dig deeper, the keyword is "typeful programming". I.e. where one uses a sophisticated type system with type checking, to encode and reason about many of the properties/requirements of ones programme.

      For those programmers who haven't been exposed to it, explaining what it is, is a little like trying to explain the ocean to someone who grew up in the desert. It's a mistake to dismiss it with a: "Sounds like just a lot of water to me". Instead, I encourage getting ones feet wet. Exposure to functional programming techniques will make one a better programmer, no matter what technology one uses.

      --
      Stefan Axelsson
    23. Re:What makes a programming language 'Good'? by luis_a_espinal · · Score: 1

      Yeah- you're talking about things that are 1 error in 20. If that. The fact that you actually believe the bullshit you're spouting scares the shit out of me- I truly hope I don't use anything you've ever worked on.

      You actually might. But with an absolutist, dogmatic answer such as yours, let's pretend that you are right and that somehow you have hurt my feelings or whatever the fucks that tickles your intellectual fancy.

  7. Or being left behind? by Anonymous Coward · · Score: 0

    The Python and R thing is one I can understand in a somewhat positive way. The US can afford more pure research for the time being though at some point we should think about going back to work.

    But, because device programming is a relatively small market, I'm guessing the C/C++ dominance has more to do with a lot of people stuck maintaining old code or programming for military application instead of making new and exciting developments.

    It would be interesting to see if the C/C++ gap is narrowing or widening. If narrowing, the legacy load is falling. If widening, it could be an anchor chained to our waste.

    1. Re:Or being left behind? by Anonymous Coward · · Score: 1

      StackOverflow is where mostly new programmers ask for advice in very specific issues, I would never use it as a source for language popularity or development trends.
      Also... there are more books and online information and tutorials about C/C++ that are not inside of StackOverflow (I always try to avoid StackOverflow).

      What StackOverflow usage might means is more like: "There are more people having trouble with Python and R asking for advice in StackOverflow."

    2. Re:Or being left behind? by thebullshitpatrol · · Score: 4, Interesting

      > StackOverflow is where mostly new programmers ask for advice in very specific issues, I would never use it as a source for language popularity or development trends.

      this sounds entirely untrue, but I can't prove it.

      I'm not a "new programmer" and still use it daily to remember how to do something simple, and maybe every few days with a situation-specific question.

      Maybe I'm retarded, but I have to use it multiple times a day to remember how to do very rudimentary things like concatenating arrays in different languages. I assure you my stackoverflow browsing history accurately reflects which languages and technologies I use.

    3. Re:Or being left behind? by Anonymous Coward · · Score: 0

      There are countless examples of this. In C++ can you catch exceptions in the constructor initializer list and what's the syntax?
      People with 10+ years of experience often can't tell you stuff like that off the top of their head and to me that's absolutely normal.

  8. Lol Android by Anonymous Coward · · Score: 0

    Cheap shit

  9. Re:Obviously 'R' is for 'Racist' by sinij · · Score: 1

    This is no forking joking matter, don't dongle it up.

  10. There is good reason for that... by Gravis+Zero · · Score: 1

    People in wealthy countries are the ones that are developing the new languages.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:There is good reason for that... by tomhath · · Score: 1

      The reason is that students in India and China are being taught Java. That was a great language for offshoring and H2-Bs a few years ago.

  11. Missed opportunity. by 140Mandak262Jamuna · · Score: 2

    They should have taken some other thing that is correlated to affluence. May be per capita meat consumption or access to healthcare. Then they could have come up with even more dramatic headline, "Meat eaters hack in C++ while the lotus eaters struggle with R". "Coders who get annual physical program in C++, while hackers might be sick stick with R".

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
  12. It seems to me... by Anonymous Coward · · Score: 0

    ... that they're trying to correlate various things that ultimately boil down to "mostly US people visit stackoverflow", which probably isn't caused by income gaps or programming language used. Location and spoken language, however... so it comes down to claiming "speaking english makes rich, not speaking english makes poor". Right.

    High-flying science, this. If you were meaning "science" to mean "pigs", at least.

    1. Re:It seems to me... by Hognoxious · · Score: 1

      You've lost me there. It can still tell that 75% of questions from Elbonia are about Sinclair Basic and the rest are about CP/M, whereas in Lavaturia they only come to 30% and 17% respectively.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    2. Re:It seems to me... by Anonymous Coward · · Score: 0

      The thing disregards other places of discussion, especially non-English ones.

      If there's a really good forum in your native language about a certain set of technologies then most of the questions about those will not be asked elsewhere.

  13. Maybe you are looking in the wrong direction by Kormoran · · Score: 1

    If you are really looking for an "Ideal language", maybe you should pay attention on what's going on in the "old" languages instead of focusing on new ones. Fortran, COBOL, Pascal and others, even C++ itself are all evolving, taking concepts from one another. I would dare to say they are slowly converging, though they will never become one.

    This trend should give you some good clues on what's really good to have in an "ideal" language. If a professional developer community take the task to adjourn their already working, time-tested language, they will add what they really need, and not what some academic thinks it could be nice (I still facepalm for C++ not having a native string type) or what someone thinks it's cool to have, just to give it a try.

    1. Re:Maybe you are looking in the wrong direction by johannesg · · Score: 2

      I still facepalm for C++ not having a native string type

      Did something happen to std::string while I wasn't looking? Or isn't it native enough for you if it lives in the standard library? What benefits do you believe would have been available if std::string had been part of the compiler instead?

    2. Re:Maybe you are looking in the wrong direction by Anonymous Coward · · Score: 0

      Well, a string literal is not automatically a std:string is it.

    3. Re:Maybe you are looking in the wrong direction by johannesg · · Score: 1

      Well, a string literal is not automatically a std:string is it.

      Nope. But why should it be?

      If it really bothers you stick an 's' on the end. Now it's an std::string.

    4. Re:Maybe you are looking in the wrong direction by Kormoran · · Score: 1

      The STL is not part of C++. Was added later, rather quickly, when became clear to developers what C++ should have been. Still it was buggy and pretty non-orthogonal, i.e. not every algorithm-container combinations were good and sometimes you were better (or forced to) calling specialized member versions. Things are better today, but STL isn't really fixed yet anyway.

      As a result, today in C++ we work with Cstrings, QTstrings, Ansistrings, UnicodeStrings, WhateverFrameworkStrings... anything but std::strings, since it would mean converting strings all the time. You can say "OK, frameworks would have had their string types anyway": maybe, but they would have been based upon C++ strings, because that would have been the obvious choice. They would have been cousins, instead of perfect strangers. And a poor grunt developer, like me, today could find some string love shifting frameworks, instead of learning from scratch every time, since the world would have been a little bit more standard...

  14. I'll do anything legal, I can get Paid For!! by oldgraybeard · · Score: 1

    Seems a bit odd, I am in the US and do most everything using Bash, PHP and Python with a little XCode/Swift mixed in.

    Also wonder why wealthier countries since PHP and Python have no Subscription/Buy It overhead.

    That is why I stopped doing Windows/Visual Studio work years ago. And yes I do know they let Visual Studio go but have not had the desire to check it out again.

    1. Re:I'll do anything legal, I can get Paid For!! by Anonymous Coward · · Score: 0

      Also wonder why wealthier countries since PHP and Python have no Subscription/Buy It overhead.

      Often completely irrelevant.

      Some PHB's like software with a cost since it implies that you get good support, but the problem is that you then also have to wait for support so you get shit done quicker if there is a large user base.
      Also, many programmers programs in their spare time, mainly in free languages and are often self taught.
      In developing nations the parents might not buy their kid a full blown computer to use as a toy.

  15. Shut up and code by Seven+Spirals · · Score: 1

    The best language, methodology, algorithm, compiler, toolchain, and design pattern is the one you *know*. I swear, there is more "gimme a shortcut to a $$$ job in IT" than I've ever seen (even in bodybuilding people don't lie as egregiously). People always want to find a shortcut. The truth is that the worthy pursuits that build your earning potential and coder-cred require mucho effort. Generally speaking, the folks with the most enthusiasm win because that gives them the most sticking power when they encounter all the crappy parts of being a coder &&|| a student. People who got into programming because they wanted a stable job are usually not the rockstar coders. In short, it pays to be passionate about it. If you can't be: think twice about doing it for a career.

    1. Re:Shut up and code by Mr.CRC · · Score: 1

      The best language, methodology, algorithm, compiler, toolchain, and design pattern is the one you *know*.

      To an extent.

      I made a very careful decision a few years ago to choose to learn Python to compliment my use of C, because I knew that I would soon need to write some programs to accomplish functionality which would be exceedingly tedious in C. But I could certainly have done it in C.

      Python was so easy to get started with it blew my freaking mind. It blew even more when some aspects of the programs I wrote with it literally took a single line to do what would have required an entire subsystem to first be composed in C.

      Summary: Use the right tool for the job. Sometimes the time investment to learn a new tool works out to be less than the time which would be wasted by staying in one's comfort zone.

      That said, "tool chains" are another matter. These days it seems I spend at least 50% of my time battling (or just waiting for) development environments that are simply impossible to change, and only about 10-15% of the time designing and coding, with the remainder testing and debugging.

      E.g., Xilinx is soldered on to the board it took me 6 months to design into the hardware that took several years to design. TI is soldered onto the other board.

      There is no turning back. So I must work with their tools.

  16. So by Anonymous Coward · · Score: 0

    That begs the question, if the civilize world uses C/C++ and R what do all the slants and sambo's use?