Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Python Stats

Python Developer Survey: 55% Use Linux, 6% Use Python 2 (jetbrains.com) 68

More than 25,000 Python developers from nearly 200 countries took the 7th annual Python Developers Survey between November 2023 and February 2024, with 85% saying Python was their main language.

Some interesting findings:
  • Though Python 2 reached "end-of-life" status in April of 2020, last year's survey found 7% of respondents were still using Python 2. This year's survey found that number has finally dropped... to 6%.

    "Almost half of Python 2 holdouts are under 21 years old," the survey results point out, "and a third are students. Perhaps courses are still using Python 2?"
  • Meanwhile, 73% are using one of the last three versions of Python (3.10, 3.11, or 3.12)
  • "The share of developers using Linux as their development environment has decreased through the years: compared with 2021, it's dropped by 8 percentage points." [The graphic is a little confusing, showing 55% using Linux, 55% using Windows, 29% on MacOS, 2% on BSD, and 1% on "Other."]
  • Visual Studio Code is the most popular IDE (22%), followed by Jupyter Notebook (20%) and Vim (17%). The next-most popular IDEs were PyCharm Community Edition (13%), JupyterLab (12%), NotePad++ (11%) and Sublime Text (9%). Interestingly, just 23% of the 25,000 respondents said they only used one IDE, with 38% saying they used two, 21% using three, and 19% using four or more. [The annual survey is a collaboration between the Python Software Foundation and JetBrains.]
  • 37% said they'd contributed to open-source projects within the last year. (77% of those contributed code, while 38% contributed documentation, 35% contributed governance/leadership/maintainer duties, and 33% contributed tests...)
  • For "age range," nearly one-third (32%) said 21-29 (with another 8% choosing 18-20). Another 33% said 30-39, while 16% said 40-49, 7% said 50-59, and 3% chose "60 or older."

    49% of respondents said they had less than two years of programming experience, with 33% saying "less than 1 year" and 16% saying "1-2 years." (34% of developers also said they practiced collaborative development.)

And here's how the 25,000 developers answered the question: how long have you been programming in Python?

  • Less than 1 year: 25%
  • 1-2 years: 16%
  • 3-5 years: 26%
  • 6-10 years: 19%
  • 11+ years: 13%

So what are they doing with Python? Among those who'd said Python was their main language:

  • Data analysis: 44%
  • Web development: 44%
  • Machine learning: 34%
  • Data engineering: 28%
  • Academic research: 26%
  • DevOps / Systems administration / Writing automation scripts 26%
  • Programming of web parsers / scrapers / crawlers: 25%

62% were "fully employed by a company," while the next-largest category was "student" (12%) with another 5% in "working student". There were also categories for "self-employed" (6%), "freelancer" (another 6%), and "partially employed by a company" (4%). Another 4% said they were unemployed.

In other news, the Python Software Foundation board has also "decided to invest more in connecting and serving the global Python community" by hosting monthly "office hours" on their Discord channel.


This discussion has been archived. No new comments can be posted.

Python Developer Survey: 55% Use Linux, 6% Use Python 2

Comments Filter:
  • Finally (Score:5, Funny)

    by ukoda ( 537183 ) on Saturday August 31, 2024 @11:09PM (#64752466) Homepage
    "For age range, ... 3% chose 60 or older.". Finally I made it in to the top 3% !
    • Re:Finally (Score:5, Interesting)

      by Z00L00K ( 682162 ) on Sunday September 01, 2024 @03:24AM (#64752810) Homepage Journal

      I'm not yet 60, but have done very little in Python and prefer compiling languages since when I tried out Python I discovered that it has many of the shortcomings interpreting Basic had in the 80's.

      One shortcoming is that if a function is changed in a called file you won't discover that until you run the program and try to call that function while in a compiling strong static typing language you'd won't even be able to run the program until it compiles correctly.

      You may say that there are Python checkers and compilers out there, but not everyone uses them and if you are using source files from others, like in a larger project you'd experience a lot of code rot.

      • by ukoda ( 537183 )
        Sounds like you would like the old school Modula 2. It was a pain to get it to compile but if it did compile you never got runtime errors you can get in C. No de-referencing null pointers or running of the end of arrays etc.

        I have developed soft spot for Python since it so easy in some ways. Your points are valid and I still prefer C for embedded coding.

        As a starter language Python is much better than Basic but if students are serious about coding they really need to master a language like C so the
        • You can very well dereference a null/NIL pointer in Modula II.
          And get a core dump or similar crash.

        • > old school Modula 2.

          I'm not the OP but I used Modula-2 for a course in university. I ditched it when I discovered the TopSpeed Modula-2 compiler transpiled to C. Modula-2 is a like a less brain-dead language of Pascal, but still brain dead. I wouldn't want to wish it upon my worst enemy -- that would just be outright cruel.

          > Actually, lets start them with assembler, ...

          Agreed. 6502 assembly language is a good beginner language. It is simple with only 56 instructions but has all the -- pardon the p

          • 6502 doesn't have a multiply instruction.
            • The 6502 doesn't have a division instruction either.

              It is an excellent opportunity to dive into the details of how multiplication and division can be implemented with bitshifts, etc.

              • True. Imo any university that doesn't teach assembly is deficient. Better, they should teach how to build your own computer from scratch, since that can be easily done in a semester.
  • Deployment (Score:4, Interesting)

    by phantomfive ( 622387 ) on Saturday August 31, 2024 @11:20PM (#64752480) Journal
    I wonder if deployment and dependency management for Python is ever going to resolve itself. That's kind of a pain.
    • Re:Deployment (Score:5, Informative)

      by jddj ( 1085169 ) on Saturday August 31, 2024 @11:29PM (#64752492) Journal

      It won't as long as Python Frameworks (Django, looking at you) keep obsoleting code developed on earlier versions.

      I have a project that runs once a year, and for a couple weeks is used intensely, then goes away 'til next year.

      Year over year, I have to make stupid changes to code whose functionality hasn't changed because the underlying Django framework has been updated a few times, and moved out from under working code.

      "Hey Your Old Code Is Still Working, Just Keep Old Django!"

      Nope, It's been updated to close exploits, and I have to take the unrelated obsoleting if I want to stay secure.

      • Python doesn't have pointers or direct memory access, so it doesn't have security problems. Really, I'm not even joking.
        • by NoWayNoShapeNoForm ( 7060585 ) on Sunday September 01, 2024 @01:37AM (#64752642)

          Python doesn't have pointers or direct memory access, so it doesn't have security problems. Really, I'm not even joking.

          Sounds like Python doesn't need to be rewritten in Rust, right?

          I bet the Rust crowd will hate hearing that.

          /s

        • Security problems can be on every level.
          Remember that Java Logging Library problem?
          Some developer thought it is smart to be able to pull in classes into the runtime from remote hosts.
          So that suddenly got exploited. Aka, I sneak in something, that pulls a class from my host.

          Django is a web framework, basically a web server written in Python with some abstractions for workflows and database access etc.

          I do not know what security problems they have/had. But it can be on any level. Like mailing out confidential

          • No man, you don't understand. If c/c++ aren't used, then there aren't any security bugs. I learned that somewhere.
            • I get it. Today is your ironic and/or sarcastic day.
              Don't get Rusty, keep that up!

              • Rust is the best language. Anything else just show your insecurity.
                • And I was just about to hone my old PERL skills and dive into PERL 6, but they changed it to Raku and Rakudo - sigh, my Japanese is Rusty ... not sure if they even have a English documentation?
                  As Larry Wall is a linguist, I assume the reference documentation is in cuneiform?

        • The people who relentlessly underplay the massive shitshow of security in C are no better than the rust fanatics.

          • Rust is perfect.
            • Haters are as tedious and uninsightful as fanbois. The former are usually C fanbois which is a double whammy of stupid.

              • Ok it's nice of you to self-identity, but it's clear your a hater of C++, what are you a fanboy of? Python?
                • Ok it's nice of you to self-identity, but it's clear your a hater of C++

                  You need better glasses, bro.

                  I like C++, probably my favourite language. I like it to the point where I've done tedious work on proposals. Ultimately accepted, so yeah I've even contributed, albeit a tiny tiny bit, to the standard. I'm not foolish enough to believe it's perfect or that "trust me bro" is the solution to the memory safety problems.

                  what are you a fanboy of? Python?

                  sed

        • Django could have things like SQL injection vulnerabilities, just like a web server written in any other language, including Rust.

      • Suggestion: pin your versions. https://pip.pypa.io/en/stable/... [pip.pypa.io] You can work on upgrading dependencies after your 2-week busy period. Talking about Django specifically, it has a pretty good LTS mechanism that lets you get security updates without forcing you to upgrade. They're quite good about back porting important security fixes to old LTS versions.
      • by keltor ( 99721 ) *
        I have a tax pre-analysis report that's mostly R, but some of the data extracts run in Python (and some Java). It only used for about 1 week per year and EVERY YEAR I have to put like 30 hours of work into making it work because fucking Python got updated on the reporting server. The R code doesn't have to be touched, the Java code may or may require a recompile, but otherwise no updates since Java 5. And its always way more updates that should be necessary.

        I have FORTRAN code that's technically been upda
    • by Kisai ( 213879 )

      "Almost half of Python 2 holdouts are under 21 years old," the survey results point out, "and a third are students. Perhaps courses are still using Python 2?"
      No, because certain software integrated python 2.x and they are still using that software. For example Ren'Py relies on PyGame-SDL2 which relies on SDL2 (not 3), and not PyGame.

      People still hanging on to Python 2 for Blender 2.4 who refuse to change their workflow

      But more importantly, Python needlessly inflates it's version numbers (like PHP do

  • by jddj ( 1085169 ) on Saturday August 31, 2024 @11:23PM (#64752484) Journal

    I'm thinking it's YouTube.

    I assist another OpenSource project, that hit its stride a decade ago. There are a ZILLION YouTube videos talking about how to install that decade-old version, manually installing Java, giving lots of - what would have been good advice 10 years ago, but is TERRIBLE advice for the latest version, and sure to complicate users' lives.

    It'd be nice if there was a way to flag YouTube videos as Way Out Of Date, or "Zombie" or something, but YouTube doesn't make it easy to do so and _get it seen_.

    • by ukoda ( 537183 ) on Saturday August 31, 2024 @11:32PM (#64752498) Homepage
      Same goes for stackoverflow. Before I look at an answer there I look at how old it is as often the old ones, often view and voted on, are at the top but are terrible advice for today.
      • by Kisai ( 213879 )

        Don't look at videos or really any web content that is older than 4 years on a topic unless it's dealing with EXACTLY the version number of the thing you're using. Also, ignore any web content made after 2022, that's when the AI/LLM/GPT enshittening-the-web-mill reached maximum speed.

        Honestly at this point what developers really need is a new "stack overflow" type of site that is actually organized by language and library dependency. Gawd do I ever hate looking up something for JavaScript and getting all th

        • by ukoda ( 537183 )
          Yea, I do worry about the future of stackoverflow with respect to AI as their weekly newsletter always promotes AI and you just know someone there probably thinks it would be a good change to have AI answer the questions ahead of humans who have actually found solutions, instead of hallucinating them.
    • I'm thinking someone got the bright idea to "upgrade" some legacy system using python thinking it will be future proof and then python 3 breaks compatibility. Now they're stuck because maintaining is easier than fixing the problem.

    • Most these surveys are about asking developers about new or ongoing projects, so of course python 3 is the answer. But how much python 2 is running the world's important things? That's almost all we have at work, and I'm talking about a place that pulls in over a billion in revenue.

      there is about 3 to 4 years more support for that in some major distros, but the time will come when legacy stuff won't have any security or bug updates.

      Just wondering if there is poll about use, not asking developers but othe

      • If there are billion dollar companies relying on Python2, then I'm sure some enterprising outfit will sell them security patches for decades into the future. The price for the support will undoubtedly be set to be just a smidgen lower than what it would cost to port the code to Python3.

    • Thinking some of it is people trying to use unmaintained legacy software that was written for older pythons. Just using python a little its very particular about all sorts of formatting, and they broke backwards compatability between 3.x and 2.x such that older programs written for some version of 2x won't compile if you only have 3.x. Or at least that's what I ran into, and had to rewrite an old program coded for python2 in python3.
    • There are great talks on YT about conferences, obscure languages, neat ideas, or whatever.

      But if you use a video to learn how to code or install basic software: then there is something seriously wrong in your mind.

      A average person reads 4 times faster than watching a video.

      And you can copy/paste the commands if appropriated.

      • Well, WRT our decade-old version, the install at that time WAS a fraught, royal pain. One of the major improvements: installers for Mac, Win, Linux that don't litter your machine with now-insecure versions of Java.

    • It'd be nice if there was a way to flag YouTube videos as Way Out Of Date

      The videos have dates on them. You can sort searches. That pretty much says it all. But I have an alternate proposal. People are maintaining legacy code bases that are a pain to convert to Python 3.

    • I'm thinking it's YouTube...There are a ZILLION YouTube videos talking about how to install that decade-old version, manually installing Java, giving lots of - what would have been good advice 10 years ago, but is TERRIBLE advice for the latest version

      That's a plausible explanation for the under-21 crowd, although I would have expected them to be overwhelmed by newer videos mentioning why you ought not use Python 2. Shoot, even in 2014 it was pretty clear you shouldn't start anything new in Python 2.

      I think another reason is simply legacy code. My previous employer just loved inventing new test frameworks, first in Ruby, then Python 2, then Python 3, then a new Python 3 framework. Each time we invented a new one, there was never a business case for re-fa

    • Incidentally that is one reason PHP code often has SQL injection exploits: because the tutorials teach you to do it that way.
  • Thus confirming that the Python 2 to 3 transition was the biggest software disaster ever.
    • I'm not sure a 94% adoption rate, in the most popular programming language, counts as "the biggest software disaster ever".

      Yeah the transition sucked, but IMO it's better than living with mistakes introduced in the language during the 90s forever.

  • All the python I see at job and with employers' partners is Python 2, not much under development but processing data.

    Would be curious about percent use in science, industry, analytics companies.... but not asking developers. In other words, how much python 2 is the world stuck with that will be out of support by all the major linux distros in 4 years.

    • I hope none. Why can't we let tech get obsolete? Holding onto to ancient technology is stupid, really. Just fucking delete it, rm /bin/python .. how hard is that? Keep it in the museum. You can tell your grandkids .. back it my day we could just print without parentheses. And we had to type our own code, AI wouldn't just do it for us.

      • You're funny but your money and insurance claims are processed by code with parts that are decades old. The serious stuff isn't disposable LAMP or other crap stack code that can come and go like fashion. Companies that have hundreds of thousands or millions of lines of code aren't going to just throw it away because "it's old"

        Indeed if Python had a more mature philosophy there would be a way to run Python 2 code without modification, the languages that have stood the test of time and that are still used (

      • I sort of agree with you on this instance with python (get rid of the old version), but in general keeping backward compatibility is important. Redoing, relearning, buying something new because its 6 months old and they have a new product to sell you, isn't beneficial in the long term. Also as engineers go on, often they tend to screw a product up more than improving it, thus there's "peak engineering"

        from wikipedia's article on the Mythical Man Month

        The second-system effect proposes that, when an architect designs a second system, it is the most dangerous system they will ever design, because they will tend to incorporate all of the additions they originally did not add to the first system due to inherent time constraints. Thus, when embarking on a second system, an engineer should be mindful that they are susceptible to over-engineering it.

      • It is probably only a link to the real python or a helper script, that starts the python you need, depending on environment.

      • "Why can't we let tech get obsolete? Holding onto to ancient technology is stupid, really. Just fucking delete it"

        I must assume that you are offering to pay *all* the costs of replacing it.

      • The ignorance in this post is surprising. I thought you would realize that there is a cost associated with rewriting. I thought you knew that.
  • If you have a script that requires Python 2, you use Python 2. Or you do the manual and error-prone process of porting that script over to python 3, where strings and byte arrays are no longer the same type.

  • Biased (Score:5, Interesting)

    by Ubi_NL ( 313657 ) <joris.benschop@gmail. c o m> on Sunday September 01, 2024 @01:12AM (#64752606) Journal

    This poll is from pycharm, clearly aimed with a commercial mindset. For example, WingIDE has been around for decades and is on par (in my view superior) with pycharm, but always conveniently left out of the options

  • I Wonder (Score:5, Interesting)

    by NoWayNoShapeNoForm ( 7060585 ) on Sunday September 01, 2024 @01:39AM (#64752644)
    How many of those Python developers still using Version 2 are Linux kernel developers or packagers for some Linux distribution?
  • (I FUCK HATE 2.7 !!!)

    (I don't like not putting shit in parentheses.)

  • Only 55% Linux, given how much mess wheels with complicated dependencies are on Windows?

    Who could have known masochism is so wide-spread?

    • Windows isn't the only other option. There is MacOS, and FreeBSD which is what I use.

    • Hmm. I'm forced to use Windows at work, but I do all my Python work in WSL. Lately, I've been using VS code (in Windows) as an editor. Am I using Linux or Windows (or both)?
  • by Chris Mattern ( 191822 ) on Sunday September 01, 2024 @11:14AM (#64753332)

    I'm wondering how many of them are stuck in legacy projects because they're junior programmers.

    "No, we don't let programmers with two years of experience do a major language port."

  • by larryjoe ( 135075 ) on Sunday September 01, 2024 @04:57PM (#64754120)

    Vim is an IDE! Woohoo! It's all-powerful!

  • They did a survey of 25000 people and 25% used Python less than a year? That doesn't sound representative at all. It sounds like the survey either targetted or was advertised to a very young group with lots of students, and any results from it need to be weighed like you would a political poll.

It is impossible to travel faster than light, and certainly not desirable, as one's hat keeps blowing off. -- Woody Allen

Working...