Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Python

The Most Loved and Most Disliked Programming Languages Revealed in Stack Overflow Survey (stackoverflow.com) 268

angel'o'sphere shares a report: The annual Stack Overflow survey is one of the most comprehensive snapshots of how programmers work, with this year's poll being taken by almost 90,000 developers across the globe. This year's survey details which languages developers enjoy using, which are associated with the best paid jobs, which are most commonly used, as well as developers' preferred frameworks, databases, and integrated development environments.

Python's versatility continues to fuel its rise through Stack Overflow's rankings for the "most popular" languages, which lists the languages most widely used by developers. This year's survey finds Python to be the fastest-growing major programming language, with Python edging out Android and enterprise workhorse Java to become the fourth most commonly used language. [...] More importantly for developers, this popularity overlaps with demand for the language, with Julia Silge, data scientist at Stack Overflow, saying that jobs data gathered by Stack Overflow also shows Python to be one of the most in-demand languages sought by employers.

[...] Rust may not have as many users as Python or JavaScript but it has earned a lot of affection from those who use it. For the fourth year running, the language tops Stack Overflow's list of "most-loved" languages, which means the proportion of Rust developers who want to continue working with it is larger than that of any other language.[...] Go stands out as a language that is well paid, while also being sought after and where developers report high levels of job satisfaction.
Full report here.
This discussion has been archived. No new comments can be posted.

The Most Loved and Most Disliked Programming Languages Revealed in Stack Overflow Survey

Comments Filter:
  • by Troy Roberts ( 4682 ) on Friday April 12, 2019 @10:57AM (#58426802)

    Always produce significant and valid results .... NOT!

    • by rnturn ( 11092 )
      Exactly. Don't even waste your time squinting at these results in an effort to get anything useful from them.
    • by bobby ( 109046 )

      Absolutely agree, and it's a big factor in most surveys (which is why people should take them with many grains of salt).

      That said, the survey should show stats from and about those who have stronger interests / passions, and of course, those who are willing to take surveys, which I think is a big factor in and of itself.

    • by omibus ( 116064 )

      But we are talking about programmers here...I don't think there is a way to produce significant and valid results with that demographic. So stuff like this is about as good as we are likely to get.

    • Always produce significant and valid results .... NOT!

      Sure.. But they make for GREAT headlines...(Click bait for $$)

      You want to create some fake news narrative? Conduct a POLL and publish the results.. Don't have money to pay a pollster? Do an online poll...

      This technique comes right after quoting an "unnamed source" who is claiming some kind of malfeasance is taking place due to some conspiracy or something and writing a "news" story based only on the quote and a bunch of "we think it means..." logical leaps.

      • Don't have money to pay a pollster? Do an online poll...

        Should do bullshit yes or do bullshit no.

        Just make it all up.

    • The root problem is that SO gamification system rewards the lowest common denominator not the highest or even just professional level

    • Red bowl - salted, blue bowl sweet. You know where the fridge is.

  • *pulls out moto x pure and stares at it.* There is an Android programming language? who knew?

  • by pegdhcp ( 1158827 ) on Friday April 12, 2019 @11:14AM (#58426862)
    Once Frank Herbert had Gurney Halleck to tell Paul Atreides, thus to us as reader:
    "Mood? What has mood to do with it? You fight when the necessity arises — no matter the mood! Mood's a thing for cattle or making love or playing the baliset. It's not for fighting."
    Similarly loving a language has nothing to do with its utilisation or benefits, it is for (well not cattle, but) cowboys who love to brag about last huge program they wrote, which contains 1.000 or more lines, even excluding whitespace that is...
    • Once Frank Herbert had Gurney Halleck to tell Paul Atreides, thus to us as reader: "Mood? What has mood to do with it? You fight when the necessity arises — no matter the mood! Mood's a thing for cattle or making love or playing the baliset. It's not for fighting." Similarly loving a language has nothing to do with its utilisation or benefits, it is for (well not cattle, but) cowboys who love to brag about last huge program they wrote, which contains 1.000 or more lines, even excluding whitespace that is...

      I'm pretty sure people who "love" a programming language really love not having to use other languages. It's not that complicated and not necessarily an ego thing.

    • by Opyros ( 1153335 ) on Friday April 12, 2019 @02:23PM (#58427970) Journal

      --Donald Knuth, Seminumerical Algorithms

  • Fuck Python (Score:2, Insightful)

    All this Python popularity reminds me of the rise of BASIC's popularity. It won't be long before people think you can write serious, user facing applications with that steaming pile. I can defintitely get behind using it for infrastructure automation and analytics but fuck trying to build anything large. But alas, the non technical will hear buzz of its popularity and the inexperienced will be allowed to build shit with it. God help us all.
    • You have to properly indent, making the code more readable and better organized. If you get stuck maintaining somebody else's code it's a Godsend. But for me it drives me nuts since I hate worrying about space counting.
    • *Already* happened with JavaSchit, er, Javascript -- the BASIC of the new millennium! /me ducks /s =P

      When you have to use string literal HACKS like "use strict"; to catch typos -- the language is fucked.

      But that's what you get when a language was designed and implemented in 10 days by an amateur and learnt NOTHING about WHY professionals hated noob languages like BASIC.

    • Ummm....don't look at OpenStack then. It's all Python.

      Admittedly, it's all "infrastructure automation" interfacing with hypervisors and storage arrays. But it is a large project.

    • In my last job I had to learn some Python.
      Python kinda gives me an icecream headache. When I spent an hour trying to figure out why the code blew it's brains out when I took a three-element array and put only ONE element in it, I wanted to grab the workstation and defenestrate it.
      So I started with something like: temp[-10, 50, 110]
      ..and needed it to be something like this: temp[50]
      ..which, in any sane language (like C/C++), would've been fine, but in Python? Oh, no no no!
      In Python, it had to be like
      • Python kinda gives me an icecream headache. When I spent an hour trying to figure out why the code blew it's brains out when I took a three-element array and put only ONE element in it, I wanted to grab the workstation and defenestrate it. So I started with something like: temp[-10, 50, 110] ..and needed it to be something like this: temp[50] ..which, in any sane language (like C/C++), would've been fine, but in Python? Oh, no no no! In Python, it had to be like this: temp[50,] Mind: BLOWN. *facepalm*

        None of that is true about lists - foo = [50] works just fine.

        Are you thinking of tuples, maybe? If you want to create a one-item tuple, you have to put in an extra comma so that the interpreter knows that you want a tuple instead of just using parentheses for something like forcing order of operations; you have to write (50,) instead of just (50). I agree that the syntax for that is somewhat annoying, but I would also question why you're creating a one-item tuple in the first place.

        • ..but I would also question why you're creating a one-item tuple in the first place.
          It was someone else's test script, and I needed it to run a single temperature test on a DUT, not multiple temperatures. It couldn't be rewritten just to avoid this it had to be run with minimal modifications.
          • If that someone else was using a tuple to store a list of values, they were Doing It Wrong (TM). That's what lists (a.k.a. arrays in many other languages) are for. Tuples are more like structs.

            If the tuple was just being used as an iterable anyway (e.g. for temp in temps:), you could have replaced it with a list and it would have worked the same way.
            • *shrug* whatev. I'm glad I don't get paid to code for a living and I'm glad I made that decision a long time ago. I'd rather work with hardware anyway. Also if I ever wanted to write anything serious I'd use C anyway not Python. Despite the legitimate business uses for it I take Python about as seriously as I'd take BASIC today.
              • Would you blame C because some idiot used a struct instead of an array? Because that's basically what you're doing.
      • Re:Fuck Python (Score:4, Insightful)

        by fluffernutter ( 1411889 ) on Friday April 12, 2019 @02:32PM (#58428022)
        If I could pick a language that does what I want and I could learn quickly (ie. any fool can learn it) then why wouldn't I use it? Are you saying I should spend extra months learning a horribly complex language that I only need 10% the capability of?
    • Re:Fuck Python (Score:5, Insightful)

      by dbrueck ( 1872018 ) on Friday April 12, 2019 @01:46PM (#58427740)

      Language choice is fairly subjective, so if you don't like Python, that's cool. But there are a number of solid reasons why it has grown in popularity and it's not because it's something new - the language is almost 30 years old now. I've been using it for about 20 years now and for me it has been terrific for one-off utility scripts written by one person to huge projects with many developers at a couple of different Fortune 50 companies, and everything in between.

      Many of the alleged reasons why Python would be unusable for certain scenarios (e.g. large projects) tend to be fallacies or more theoretical problems than actual problems.

      The choice of programming language *always* involves tradeoffs. Python isn't the best tool for every job, but in many scenarios the benefits have outweighed the costs in a pretty lopsided manner. To each his own of course.

      • It's my experience that large python projects tend to run like large java project- shit. absolutel shit.
        Though there must be some merit to the language, because there definitely seems to be a trend toward writing big projects in that shitpile of a language, even at the expense of them running within reasonable time/resource constraints.
        • Some amount of that could be just the sucky nature to lots of large software projects - we've probably all seen big projects go bad in any number of different languages.

          Like I said to the other guy, if it's not for you, great. But there's really nothing in the language that makes it inherently bad for large projects (and lots of things that makes it good for them). We've used Python on a number of very large projects and it worked out well for us.

          • Sure, it works. I've just found that where it works, you simply accept the tradeoffs.
            I mean, I use Zenoss. It's an amazing product.
            The fact that it takes 5 minutes to start up on $4000 hardware, where Nagios does it in about 12 seconds is fine. We accept the trade-off.
            Personally, I wish we weren't making the performance trade-off required to use python. More and more aspects of Linux OS tooling runs slower and slower because of it.
            • Sure, it works. I've just found that where it works, you simply accept the tradeoffs.

              Of course, but that's true of all languages. As an example: a good chunk of my career has been writing application servers, and years ago I stopped writing them in C/C++ because the development time was too long - with C I could squeeze out nearly every ounce of potential performance, but the cost of doing so was too high (time to dev as well as the resulting complexity). The Python versions were of course slower, but not drastically so (because the servers tended to be I/O bound anyway).

              When performance is

              • Of course, but that's true of all languages. As an example: a good chunk of my career has been writing application servers, and years ago I stopped writing them in C/C++ because the development time was too long - with C I could squeeze out nearly every ounce of potential performance, but the cost of doing so was too high (time to dev as well as the resulting complexity). The Python versions were of course slower, but not drastically so (because the servers tended to be I/O bound anyway).

                No doubt about it. The development cost of using C makes it unattractive where it isn't strictly needed.

                When performance is the main problem, it's often easy to move a small portion of an app to a language closer to the metal, without having to port the whole thing. Last month I finished up a desktop app that takes 3D room models and generates CAD files. I wrote the app in Python but found the performance was not up to snuff (no surprise), so I moved the heavy lifting (maybe 2-3% of the functionality) to C. Performance still wasn't where I wanted it, so I moved that to the GPU.

                Agreed. I do the same thing.

                In terms of tradeoffs, I used Python to get the whole app working end-to-end much more quickly than I would have in some other languages (especially with the requirements changing out from under me a couple of times along the way), and then moved the little kernel of performance-critical stuff into something more suitable - paying the price for tradeoffs but doing it in a way where the cost-benefit ratio worked out pretty well.

                Also no argument here.

                Out of curiosity, is there any indication that the difference is actually due to Python?

                The language? Na.
                The implementation? Absolutely.
                Python is a memory hog. Even basic benchmarks show that.
                I've found that python isn't bad at all for smaller jobs, but larger ones, particularly resident ones, very often become problematic and need to be restarted, as they get slower and slower (memory fragmentation?)
                I also know I'm not alone in noticing

        • Then you should learn from your experience and avoid shops that are either run like shit or run their projects like shit.

          What the funk has the programming language to do with it? If it was a C++ project with unexperienced programmers, I would understand your grudge, but would still blame the shop hiring unexperienced people.

          shitpile of a language, even at the expense of them running within reasonable time/resource constraints.
          In the real world, no one considers it "shit" and the time / resource constraints

    • Re:Fuck Python (Score:5, Insightful)

      by fluffernutter ( 1411889 ) on Friday April 12, 2019 @02:25PM (#58427980)
      When you write pseudo-code do you write all the brackets? The point of python is to be like pseudo-code but actually be functional. If you're writing something where speed doesn't matter that much but you need absolute flexibility in functionality Python will get you there quick. If you're writing a driver, use C for chrissakes.
    • It won't be long before people think you can write serious, user facing applications with that steaming pile.
      No idea why you consider it a "steaming pile".
      a) the language is beautiful, you hardly can claim that about any other language
      b) the libraries are excellet
      c) you are simply wrong, there is plenty of large software written in Python, e.g. Eve Online, the MMO with the biggest concurrently online community in a single game world on the planet.
      d) the language is portable and has enough GUI bindings to de

  • by Anonymous Coward on Friday April 12, 2019 @12:05PM (#58427112)

    I like languages that let me get paid, be efficient, have unlimited control over the resulting program.
    I had languages that restrict my capabilities, have obnoxious fanbois, and are slow.

    Like list:
    * C
    * C++
    * Perl
    * Go
    * Ruby (though it is slow, sometimes)

    Hate list:
    * Java
    * Javascript
    * Rust - hate the fans.
    * C# and any other "managed" language
    * ObjectiveC - sometimes hate just comes from the platform
    * Php
    * Cobol

    Don't care list:
    * python
    * Pascal
    * Whatever apple is pushing today.
    * Whatever google is pushing today.
    * Whatever MSFT is pushing today.

    I've coded for almost 3 decades, using about 40 different languages. If you are a noob, stick with noob-friendly languages, please. BTW, that does NOT include php.

  • by Anonymous Coward

    I don't understand the hate for Java.

    Java is fast, secure, and compact.

    With only a few cores, a few GB of disk space, and a few GB of ram, "hello world" compiles and runs in just minutes!

    And it gets faster every time it's run!

    Find me a language more secure.

    Find me a language more compact.

    Find me a language that's faster.

    C is full of security holes, and slow.

    ASSembly is slow, full of holes, and slow.

    The minimum specs are there for a reason. If you don't have at least a few cores, and a few GB of RAM, and say

    • by PCM2 ( 4486 )

      Find me a language more compact.

      I take it you're not talking about source code.

    • I don't understand the hate for Java.

      Java is fast, secure, and compact.

      With only a few cores, a few GB of disk space, and a few GB of ram, "hello world" compiles and runs in just minutes!

      And it gets faster every time it's run!

      Find me a language more secure.

      Find me a language more compact.

      Find me a language that's faster.

      C is full of security holes, and slow.

      ASSembly is slow, full of holes, and slow.

      The minimum specs are there for a reason. If you don't have at least a few cores, and a few GB of RAM, and say 100GB of disk space, go back to your speak and spell.

      Shesh.. I don't know if this is a joke or not...

      So wrong on every level.. Java is none of the things you claim and just about *any* compiled language will be faster than Java on the same hardware.

      But.. Then there is the security thing.... C isn't full of security holes per say, nor is Assembly.. Neither language enforces the strict type checking that the Java compiler gives you I suppose, but that doesn't mean they are insecure. It just means the programmer needs to mind his P's and Q's and be careful to

      • The thing about C is that it assumes you know what you're doing. Total control, no training wheels.
        • Re:Hate for Java? (Score:4, Insightful)

          by bobbied ( 2522392 ) on Friday April 12, 2019 @02:25PM (#58427982)

          Yup, exactly this...

          The compiler doesn't really care if you want to multiply the letter "A" by "5" and then use the result as a pointer to a data structure. Of course, there have been improvements in the compilers over the years, where they will at least complain about type mismatches, and the ever valuable LINT program to help keep you out of the weeds. But in the end, you are free to do as you please, as fast as the machine will chew though the assembly code the compiler wrote for you (or as I've done in the past, the assembly you wrote for the compiler).

          The issue most of these surveys don't take into account is which tool is suited for which job. My favorite language depends on the task at hand and the suitable tools in the my tool box. Writing a device driver? C or assembly.. Writing some GUI to run locally? C++/Java... Need to interface with some specific Java library? Then Java.... It all depends.

          • The compiler doesn't really care if you want to multiply the letter "A" by "5" and then use the result as a pointer to a data structure.

            Of course the compiler does- unless you know of a magical flag to disable type checking.
            It's the CPU that doesn't care, and the compiler that allows you to tell it to pretend "A" and "5" are of the same type.

            • Your previous ranting about Python was already extremely ignorant, if not even dumb.

              and the compiler that allows you to tell it to pretend "A" and "5" are of the same type.
              You made typo. If you want to multiply A with 5, you write 'A' * 5. And most (old school) C compilers happily compile it. Hint 'A' is a char, which is promoted to int. 5 is in an int. multiplying to ints is fine.

              Even writing a * in front of it and dereferencing it is fine .... perhaps you need some casts, though.

              Perhaps you should actuall

  • After 35 years my love for this language (and its KeXX and ooReXX variants) has only grown deeper and more profound. Python is a funny language with white space issues.
     

  • I don't see Perl anywhere on the list. Not popular, not hated, not paid, not used. I can't be the only person still regularly using it.
    • by hugetoon ( 766694 ) on Friday April 12, 2019 @12:49PM (#58427356)

      Count the number of times Perl is mentioned in the comments here, it will give You a hint on what it has become: irrelevant.
      I am probably as sad as You are about this fact of life, let's mourn our beloved programming language together, fellow Perlist.

      • It's definitely irrelevant in the scope of software engineering.
        In the world of internet infrastructure, it's a requirement.
        Some guy, somewhere, with perl has to make sure you can run your python scripts. That's an immutable fact.
        • Nope.
          All big shops I worked for, use Shell (bash or ksh) over Perl, I did actually only once meet a company that had a small set of Perl scripts and they needed a decade to replace them with Phython.

          I'm not a ware that my mac or any linux box I used recently has any init scripts or other infrastructure scripts or anything network related that is based on Perl.

    • Comment removed based on user account deletion
    • by kackle ( 910159 )
      I wondered the same about Perl: An easy check is a job search. It doesn't look good.
      • by damn_registrars ( 1103043 ) <damn.registrars@gmail.com> on Friday April 12, 2019 @02:13PM (#58427910) Homepage Journal

        I wondered the same about Perl: An easy check is a job search. It doesn't look good.

        I generally advise nobody ever apply to a job that lists a specific programming language as an absolute requirement, it is usually just a pathway to obsolescence. Find a posting instead that describes the types of problems they are looking to solve and then present to them why you are the best person to help solve them. The language choice is not critical, and never should be.

        Just because it isn't listed as a job requirement doesn't mean it's not used, either. This shitty website still runs primarily on Perl.

      • by Ecuador ( 740021 )

        That's a weird thing to say, I'm in the UK and the Perl job market is very competitive. Decent perl devs get snapped up immediately. My company had to offer about 20% more than we'd offer to a swift/obj-c dev of similar experience to lure our latest hire...
        But I am pretty sure no Perl dev would be filling out a stack overflow questionnaire.

    • Nobody wants to admit they still use it. It's sliding into COBOL territory...

    • I don't see Perl anywhere on the list. Not popular, not hated, not paid, not used. I can't be the only person still regularly using it.

      The Perl programmers are too busy constructing that perfect recursive regex (with look-ahead and look-behind) to be able to take part in a survey.

  • My Claw Hammer (Score:5, Insightful)

    by Carcass666 ( 539381 ) on Friday April 12, 2019 @12:37PM (#58427274)

    I love my claw hammer. It works for anything I want to build, and I never need other tools. People who use ball-peen hammers or malletts obviously don't know how to use hammers properly. Anybody who uses screwdrivers or wrenches is obviously an idiot, who doesn't really understand how to build things.

  • SQL #3?????? (Score:4, Informative)

    by MikeDataLink ( 536925 ) on Friday April 12, 2019 @12:38PM (#58427280) Homepage Journal

    "Do I think that more people will start using Python than SQL? That would be tough, SQL plays a role in huge swathes of the economy. I'd be surprised if next year Python overtakes SQL, just because SQL is so dominant."

    SQL is #3 on the list. Since when did SQL become a programming language SQL us a a QUERY language.

    • by N1AK ( 864906 )
      Trust me that there are plenty of people who use SQL like a programming language. We have dozens of 3,000+ line stored procedures and job steps (queries) that we have to keep ticking over; just because SQL "shouldn't" be a programming language doesn't mean everyone got that memo!
    • by geek ( 5680 )

      It has syntax, stores variables, instructs a system to do things. Not seeing an issue. Especially when the "L" in SQL is for LANGUAGE.

  • I feel like the beloved Raspberry Pi has caused the rise of Python. All these school kids are learning Python in school and they just think its the best language for everything after that.

    It's why Steve Jobs gave Apple's to schools. ;-) It works.

    • I feel like the beloved Raspberry Pi has caused the rise of Python. All these school kids are learning Python in school and they just think its the best language for everything after that.

      It's why Steve Jobs gave Apple's to schools. ;-) It works.

      Python has been around since 1991. It has stood the test of time. Well, some time, anyway ..

      • It has been around, in obscurity, since 1991. That's true.
        It didn't blow up and get splattered everywhere, reducing the performance of our machines faster than the fixes for Intel's architectural mistakes, until recent history.
    • Poor windows folks lacked a decent Perl. So they used Python.

      • Which blows my mind, because they had VB, which is basically Python with more understandable syntax and better performance.
  • MFL is any language that lets me talk to it and have it produce code, or hardware, just the way I want it.

    Enterprise NCC1701-D's Food Replicator comes to mind. I bet you could tell it to generate the software you need to deliver tomorrow.

  • IMHO, this survey should separate languages that are compiled versus those that are interpreted.

  • by cyber-vandal ( 148830 ) on Friday April 12, 2019 @03:22PM (#58428276) Homepage

    A Slashdot snobfest!

  • ... Python was released in 1991. I don't think we can call it a fad anymore.
    • Your logic is terminally broken.

      A bandwagon can be jumped on long after it leaves its origin. That doesn't make it not a bandwagon.
      See: Linux.

Get hold of portable property. -- Charles Dickens, "Great Expectations"

Working...