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.
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.
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.
> 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.
"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.
Table-ized A.I.
> 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.