Slashdot Mirror


Is Python Really the Fastest-Growing Programming Language? (stackoverflow.blog)

An anonymous reader quotes Stack Overflow Blog: In this post, we'll explore the extraordinary growth of the Python programming language in the last five years, as seen by Stack Overflow traffic within high-income countries. The term "fastest-growing" can be hard to define precisely, but we make the case that Python has a solid claim to being the fastest-growing major programming language... June 2017 was the first month that Python was the most visited [programming language] tag on Stack Overflow within high-income nations. This included being the most visited tag within the US and the UK, and in the top 2 in almost all other high income nations (next to either Java or JavaScript). This is especially impressive because in 2012, it was less visited than any of the other 5 languages, and has grown by 2.5-fold in that time. Part of this is because of the seasonal nature of traffic to Java. Since it's heavily taught in undergraduate courses, Java traffic tends to rise during the fall and spring and drop during the summer.

Does Python show a similar growth in the rest of the world, in countries like India, Brazil, Russia and China? Indeed it does. Outside of high-income countries Python is still the fastest growing major programming language; it simply started at a lower level and the growth began two years later (in 2014 rather than 2012). In fact, the year-over-year growth rate of Python in non-high-income countries is slightly higher than it is in high-income countries... We're not looking to contribute to any "language war." The number of users of a language doesn't imply anything about its quality, and certainly can't tell you which language is more appropriate for a particular situation. With that perspective in mind, however, we believe it's worth understanding what languages make up the developer ecosystem, and how that ecosystem might be changing. This post demonstrated that Python has shown a surprising growth in the last five years, especially within high-income countries.

The post was written by Stack Overflow data scientist David Robinson, who notes that "I used to program primarily in Python, though I have since switched entirely to R."

27 of 254 comments (clear)

  1. Who cares? by fnj · · Score: 4, Insightful

    Humph. Who in hell cares? I personally enjoy programming in python, but I certainly make such choices based on whether or not something is "popular".

    1. Re:Who cares? by ShanghaiBill · · Score: 5, Insightful

      Popularity matters.
      1. If a language is unpopular, there may be good reasons. Examples: Ada, Modula-2.
      2. Popular languages have a community of users, so you don't just get more questions on Stackoverflow, you also get more answers.
      3. Popular language have more libraries, frameworks, and run on my platforms.
      4. If a language is popular, you can get a job writing code in it.

    2. Re:Who cares? by Hognoxious · · Score: 2

      But if a language gets too popular, the only job you can get is writing code in it.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:Who cares? by DontBeAMoran · · Score: 2

      No, if a language gets too popular you won't get a job writing code in it because everyone else will want the same job as you.

      Pick something like Fortran or Cobol? You'll be able to count the job offers on one hand but you won't have much competition for those jobs.

      --
      #DeleteFacebook
    4. Re:Who cares? by h33t+l4x0r · · Score: 5, Interesting

      3. Popular language have more libraries, frameworks, and run on my platforms.

      Not necessarily. Python has Beautiful Soup, which is a terrible library, but popular. It's so popular that nobody has bothered to make something better.

    5. Re:Who cares? by h33t+l4x0r · · Score: 2

      So I'll just get the websites on the phone and offer to pay them lots of money for their data instead of scraping it for free. Why didn't I think of that?

    6. Re: Who cares? by K.+S.+Kyosuke · · Score: 2

      Well, Common Lisp has multidimensional arrays out of the box, and instead of the object oriented nonsense of other languages, it has generic functions.

      --
      Ezekiel 23:20
    7. Re: Who cares? by vtcodger · · Score: 2, Funny

      (My ((God) Man). (You (left ((out)) all) the) parentheses!!!)

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    8. Re: Who cares? by vtcodger · · Score: 2

      You mean something like "1.0 if X else 3.1416" -- which is legal Python and does what you'd expect.

      OK, I have to admit. I haven't seen a FORTRAN program since about 1988. And I have no idea what part of the language a FORTRAN arithmetical IF statement might be. But I have to say that I don't especially miss FORTRAN although I do think it's a hell of a lot more readable than C, C++ or Perl.-- all of which tend to look like a terrier has been banging enthusiastically on the keyboard.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    9. Re:Who cares? by Plus1Entropy · · Score: 2

      How does spending all your time on that one language for n years get you 2n years of experience anyway?

      If you get an interview for a job posting with that kind of requirement, then you should bring it up in the interview. Tell them that the experience they are looking for will be impossible to find without a time machine. If you're the only candidate who brings this up, then it shows that either a) you're the only one who isn't lying, or b) you're the only one who knows what they're talking about.

      If other candidates have brought it up, but they never changed the job requirements, then you probably don't want to work there anyway. My advice if the interviewer doubles down is to walk out and look elsewhere.

      --
      Only crack the nuts that crack. You don't put the ones that don't crack in the sack.
  2. Re:not looking to contribute to any "language war" by Anonymous Coward · · Score: 3, Insightful

    I'm not a racist, but whitespace having any sort of significance is pants-on-head retarded.

  3. Survivor Bias? by pedz · · Score: 2

    Perhaps "Survivor Bias" is not the right term but traffic to sites to ask questions may not be a good indicator of a language's popularity. It is an indication of questions people had about the language.

    For example, when is the last time you asked a question about C? Probably never. Why? Because its very easy to understand and the libraries are also easy to find.

    I'm not saying anything about Python. I'm just saying that looking at the number of questions may not give valid results.

  4. Re: Python was first released in 1991 by DontBeAMoran · · Score: 4, Funny

    I have a buddy in prison who says it's offered as a class to inmates.

    Man, I heard prisons were tough, but Python, really? Doesn't that violate U.N. human rights accord?

    --
    #DeleteFacebook
  5. Re:The Register by DontBeAMoran · · Score: 2

    What do you mean? EAX or EDX?

    --
    #DeleteFacebook
  6. Re:not looking to contribute to any "language war" by Baloroth · · Score: 2, Interesting

    Yeah, because searching through 1 page of error messages because you forgot a ; or } is *so* much better, especially when those have no immediate visual significance at all. Besides, *all* (sane) languages already have significant whitespace: voidFunction() and void Function() are two completely different things. Whitespace is significant in human languages, and there's no reason it shouldn't be significant in computer languages.

    --
    "None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
  7. Because of inclusion with visual studio 2017 by Billly+Gates · · Score: 4, Informative

    For those in Linux land you maybe surprised but visual studio is now free with the community edition. It also includes Python and R with win64 optimized versions of idle and Cython.

    Many people on Windows are wondering what it is since it's a huge section in the installer. This is probably what is causing the boost

  8. Python is the Most Troublesome by blavallee · · Score: 4, Insightful

    Traffic to Stack Overflow is an indication of people having issues with Python. Not it's popularity!
    Traffic for high-income countries (US/UK) is misleading, since they are using this troublesome language more often. Non-English speaking countries don't want to use it, due to the default ASCII character set.

    Seems the researches need to understand how Stack Overflow is used before making such a misleading statement.
    A higher score on Stack Overflow Trends would indicate the inadequacies of the language.
    More visits indicate the level of frustration, not the languages popularity.

    GitHut tells a different story.

  9. Pythons exclusive advantages by Qbertino · · Score: 4, Interesting

    I'm really not that surprised that Python appears to be the only language that continuosly grows it's popularity during the last 15 years.

    It's easy to learn whilst at the same time being resonably well constructed and scalable towards larger projects. It also appears to be a language where, unlike Ruby, PHP and JS, people do *not* screw around and get their projects perfect from the beginning. There is basically one CMS written in Python and that's Plone, based on Zope, and that System has been ahead of everything else in the PHP and Ruby field in terms of architecture, design and utility ever since Zope came around in the late 90ies. Same goes for Django. One Webframework to rule them all. Unlike PHP or Ruby or JS where you have a mess of a bazillion different toolkits, every single one screwing around in their own specific quirkyness, Python appears to be the language of people who want to get shit done properly right away and then move on. Python, whilst being a very neat programming language, doesn't lend itself to self-indulgance. Maybe those twot traits are correlated.

    Point in case: Python is the only language I know of that is to measurable extent being used professionaly in every field.
    Research, engineering, game development, media, 3D, web, custom ERP, system administration, embedded, bioengieering, robotics, process automation, etc.

    IMHO it speaks volumes if a language is that easy to pick up and at the same time is used in so many fields. AFAICT it is only dominated by PHP and JS in server and client side web for historic reasons. Would people have to decide today which language should rule the client and server-side web they'd probably pick Python for that aswell.

    I also think that Python is a language that remains fun to programm in even if you use it for an extended period of time. Can't say that for PHP for example.

    My 2 cents.

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re: Pythons exclusive advantages by Entrope · · Score: 2

      If Python is for people who want to do things right the first time, why Python 2, much less Python 3?

  10. Re:It's a requirement for a lot of things now by drinkypoo · · Score: 4, Informative

    Hopefully something which doesn't make so much importance out of whitespace will be next.

    OhyeahliketheEnglishlanguageandprettymucheverynaturallanguageoutthere.

    That's a very stupid thing to say since the argument is not over single spaces, but over using some number of spaces instead of punctuation. If natural languages worked that way, it would be a nightmare. We have one space, and we have an indent, and that's it, especially since double-spacing has died with typewriters.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  11. Re: not looking to contribute to any "language war by Entrope · · Score: 4, Insightful

    People complain about semantic whitespace in Python because that's a pants-on-head stupid detail to make people pay attention to. There are enough things that need attention that invisible characters shouldn't be one of them.

  12. Re: not looking to contribute to any "language war by Entrope · · Score: 2

    Python's type-related problems are not because of duck typing. They are because it uses a damaged mix of strong and weak dynamic typing. You get None when you read an undefined field of an object, no error if you store to a field nobody ever reads, no warning if you store a string like '123' to a variable that normally holds a number, and an exception if you try to divide that variable by 3.

    And don't get me started on the egregious breakages between Python 2 and 3, like changing the definition of the / operator solely to save a bit of typing (or alternatively, error checking) by one constituency while making the language less consistent.

  13. Re:It's a requirement for a lot of things now by drinkypoo · · Score: 4, Insightful

    If you use a good modern editor like Microsoft Code, Atom, Brackets, or the bazillion other electron node.js based and not Vi or Emacs it will indent for you.

    That does not solve the problem of copy and pasting code samples, and losing the formatting information. This is exactly why we have punctuation in written language. You can discard the formatting entirely and still make sense of the content. This is also exactly why using indentation to denote control flow is an idiot move which should have been permitted to die with punch cards. Once upon a time, it was actually a convenient convention. Today, it is purely inconvenient. Once that information is lost, it is gone forever. If control flow is denoted with punctuation, you can simply feed the code to an autoindenter, but no such thing can be created for python. The best an IDE can do is assist you with indentation while you write, it can never restore lost indentation.

    This problem is older than computing, and so is the solution. That anyone would create a language which discards this basic tenet of modern language technology is pathetic, and that anyone would defend that decision is doubly so.

    Unix of today is compromised by users and developers who do not understand it. On the one hand we have the proliferation of python, created by people who apparently want to turn back the clock to a time when mainframes and minicomputers dominated, and you had to enter code and data in the correct column. And on the other, we have the proliferation of systemd, created by someone who has forgotten all the lessons of the immediate past. And thus, Unix is doomed to be endlessly and poorly reimplemented by people who do not understand it.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  14. 2.7 vs 3.x has seriously damaged it by EmperorOfCanada · · Score: 3, Interesting

    I generally prefer 3.x Python. What I really like is python when it works. But over and over and over, I have downloaded a library or some code that only runs on one or the other. Keeping both up to date and with the latest libraries is a huge pain in the bottom. The way I have it installed also seems to send some products for a loop when they simply insist that I must have 2.7 installed. So I go and change which version is "python" just so that program can run.

    I really don't care what the arguments are for the lack of backwards compatibility; doing this really hurt python with a self inflicted wound.

    The next self inflicted wound is the speed of python. I see these crazy arguments that in order to make it faster that it needs strongly typed variables. That is total BS as there are many scripted languages without this that run blazingly fast (JS, PHP, Lue, etc) without this.

    Quite simply the people who are in charge of steering python seem to be way more interested in giving talks at python conferences than keeping python moving forward. Oh there are lots of little features being added, but nothing like the leaps and bounds that JS and PHP have made in the same time period. JS is not screwing up with a backwards compat problem. And PHP trimmed out some crud so is technically not backwards compat anymore but if you were using the features they cut, you were writing bad code.

    Python rocks. I use it for ML, I use it for so many quick and dirty things. But all this means is that nothing is better right now. Look a perl. It owned the world of scripting 17 years ago.

  15. Re: not looking to contribute to any "language wa by Entrope · · Score: 2

    The solution to Python having problems is not to pancake more awful ideas (like ORMs) on top of its rotten foundation, making an ever-more-precarious edifice of fail stacked upon fail. What are you, a Python programmer?

  16. Re: not looking to contribute to any "language war by bzipitidoo · · Score: 2

    You are criticizing Python where you should be criticizing ASCII. Python uses positioning, specifically indentation, to indicate structure. Nothing wrong with that.

    What sucks are the ASCII methods for positioning text. The tab character is a mess, and everyone appreciates that. What isn't so appreciated is the lack of any succinct way to indicate indentation. Leading spaces is a horrible way to do it, but it's the only way ASCII can do it. It's extremely redundant, it forces the use of a fixed width font to make the columns line up, and it's prone to error. UTF did nothing to address this, simply repeating the mistakes made with ASCII.

    One solution is better control characters. An "indent++" and "indent--" control character can solve this issue.

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
  17. Re:It's a requirement for a lot of things now by drinkypoo · · Score: 2

    You argue that positioning is antiquated and stupid because data must be positioned in the correct column. That is not the fault of the idea of positioning, that is the fault of the way ASCII does positioning.

    It doesn't matter whose fault it is, and the problem is not unique to the ASCII character set. There's literally no character set that has the feature you want, so it's not a matter of switching sets.

    One simple idea to fix the issue that so upsets you is to repurpose 2 of the currently unused and useless ASCII control characters to mean "indent++" and "indent--". Those characters would be analogous to parentheses.

    That would be stupid. We already have parentheses, and they work just fine.

    Markup languages demonstrate more sophisticated ways to position text: metadata. I don't know about you, but I am perfectly happy with the default way browsers display HTML, in "presentation mode", without the tags being visible.

    Thank you for just completely fucking torpedoing your own argument: HTML is another language which works in an intelligent fashion. You can lose all the carriage returns and all the indents from HTML and it still displays correctly.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"