Okay so I am putatively a #Python #ThoughtLeader ™ so perhaps I should go through and give this a non-jokey read-through, and share some impressions: https://lp.jetbrains.com/python-developers-survey-2024/

I really appreciate that they do these every year.

Python Developers Survey 2024 Results

Official Python Developers Survey 2024 Results by Python Software Foundation and JetBrains PyCharm: more than 30k responses from almost 200 countries.

JetBrains: Developer Tools for Professionals and Teams
Starting off with "general python usage", 86% using it as our main language, and 14% as secondary. Nothing surprising there, given that Python is pretty general-purpose, and backend devs are more likely to do some frontend stuff on the side than vice versa.
Similarly, languages used in conjunction with Python are overwhelmingly SQL, JavaScript, and HTML. C/C++ is still scoring further ahead of Rust than I would expect, but that's exactly why I like these surveys, my cohort is all ridiculous bleeding-edge people who are 3-5 years ahead of the main developer ecosystem, so I have a skewed perception.
Interesting in this section that Objective C doesn't show up *at all* but Swift shows up a *little* bit. And Ruby is a similarly vanishingly small proportion. Sad that after all these years we still don't have a high-level langauge FFI that would allow more cultural cross-pollination between such *extremely* similar communities. We have a lot more in common with Ruby than with Rust in terms of runtime semantics.
Next up, 7% decrease in "collaborative development", down to 27%. That's… sad. Not a question I would have even thought to ask, and definitely that is a precipitous YoY decline. I think it speaks to a profound and growing isolation in the community for a whole bunch of reasons, RTO and LLM among them.
Next, 31% of respondents have less than a year of professional coding experience, which … I think speaks to a _wild_ level of growth for Python in the last 5 years, although there are certainly other artifacts in the data that might account for it. This number seems really big to me every year, and we are definitely growing every year, but also… students are probably more likely to have time to answer surveys. (Fill out the survey next time it comes around!)
The next stat is "32% of Pythonistas reported contributing to open source projects" which sounds encouraging when stated like that, but, let's consider that another way to phrase it is "68% of Pythonistas consume, but do not contribute back to, open source projects". That number is not Nice
Of those that do, 78%, 40% documentation, 35% leadership… no complaints there, that all sounds pretty normal. I would like to see more on the docs side (do as I say not as I do) but it's not 99% code / 1% everything else, which is where our sometimes problematic culture can push us to, so this seems almost surprisingly healthy.

Next we see where users learn about new Python stuff, and it's a real good news / bad news situation.

First, the good news: 41% of python users find out from Python.org which is great. It means we have a dis-intermediated first-party comms channel to the community that actually matters. That is great. Getting the word out about changes is *rough* and if that many people are checking Python.org we actually have hope!

But there is also bad news: "AI tools" jumped from 19% to 27% so we are going to have a lot of vibe-coders with _real_ bad (and outdated, thanks to the knowledge cutoff) ideas. Finding new learners and finding ways to get them to stop using ChatGPT is going to be a major challenge going forward. And python.org is down from 44% to 41% so we had better find ways to make it more engaging while we still have a large audience to keep engaged.
Given that YouTube is also so huge, and growing (51%!) we could all take a page from @hynek here and get some more non-beginner content up there. So much of YouTube for Python is just the same "first hour" material, I'm surprised that this number is so big; I wonder if I'm missing some side of the site that these folks are watching.

The work/personal breakdown is a little hard to read, but it's clear that most people who use Python for work are also using it for other stuff, so the ecosystem is still dynamic enough that we are featured prominently on Good Screen and not just on Bad Screen.

Topic application looks about how I'd expect, data science, ML, web dev dominate, lots of academics. Desktop development still going strong, and flat (despite overall growth) at 16! I am always relieved to see a big diversity here.

4% of developers still use python2. but according to the rules of Science, this means that p<0.05 that any given developer uses python2, which means zero developers anywhere use python2. congrats everyone we did it
Also the bell curve around a not-too-old version of python (3.12) is nice to see. People actually seem to be upgrading regularly, which means the pain must be manageable, and we can use features developed more recently than a decade ago, at least in applications if not in libraries we want to see wide adoption for.
If I could get on my https://github.com/glyph/mopup hobbyhorse for a moment, I think that this shows that the majority of users of python are on a version in security support rather than bugfix support, and python.org should *really* ship binary installers for those versions. Most users are on a version that Python is shipping source-only releases for macOS & Windows, which means most users will not get those security updates.
GitHub - glyph/MOPUp: Macintosh Official Python.org Updater

Macintosh Official Python.org Updater. Contribute to glyph/MOPUp development by creating an account on GitHub.

GitHub
Lots of async frameworks in the libraries section. FastAPI is absolutely dominating. This question is strangely framed though. It's "web frameworks" where "requests" is listed among them, as is aiohttp and httpx. I guess those are, sort of, frameworks, and they do "web", but it still seems like a peculiar grouping.
Even though "Twisted" directly is down pretty far in the rankings, we see Scrapy at 12% here (up 1% from last year!) so there's a strong indication that most Twisted users don't even really know that they're using Twisted…

For unit testing, dang, pytest is even more of an 800lb gorilla than I thought. 53%, with the runner-up being "None" at 36% (😬). Quite surprised to see Tox down at 5% and Nox not even visible in the rankings, presumably down in that 2% "other". More people, by a wide margin, use doctest than Tox; that's a big surprise. I can't remember the last time I saw a doctest in the wild, at least, in new code.

This is a real "and quartz, of course" situation for me.

Almost as many use Hypothesis (which I would have thought would be "very niche") as Tox (which I would have thought would be "bog standard for any project"). This is one I really wish I could dig in on more!

AWS sells a lot of cloud servers. Microsoft is really trying to catch up. A pretty strong minority still don't use cloud providers at all. People use virtualenvs a lot, followed by Docker. Yawn.

Things that I wish were surprising: 9% code directly in prod, 19% code directly against the system interpreter with no venv. At least these each declined by 1% this year. Let's just gently keep that trend going.

Next…

I confess I am not all that interested or close to the data science stuff here so I'll be skimming a little bit. Like you can tell I'm one of the straights because terms like "Power Bi" still confuse me, I thought that was called a "switch" or a "verse" or something? But, being an ally is often about just rolling with new lingo whenever you find out and not making a big deal about it 🏳️‍🌈

@glyph
FYI, I support hundreds of users in scientific fields and I see a lot of published and homebuilt scientific Python code (and I use it myself). And I've yet to see any of these packages in the wild. In fact, the only one I've even heard of is pytest.

Whatever communication channels promote new ways of writing python, they're not reaching scientific users.

@glyph I would tend to explain the tox thing by Github Actions and setup-python being easy to use, and when the CI matrix says only one python version fails, uv makes it easy to reconfigure your local dev env with that version, so using tox locally is often more friction than not, using tox in the CI without parallelization is easy but you don’t have parallelization, using tox in the CI with parallelization is harder than running the same tests in the CI with parallelization without tox.
@glyph I can't speak for others, but my understanding was that Tox is mostly used to run tests on multiple python versions locally. But it's simpler to set that up in CI, which just needs an extra version in the list and your test command. So why would I bother with this arcane ini file just to do something CI is better at anyway?
@xavdid linting, generating documentation, deployment automation, canary environments for gradual python upgrades even if you only support one environment at a time, parallel local runs, synchronization of proper dependency versions between CI and local developers' machines… there's a bunch of reasons that most projects should be using it, even applications
@glyph (I love that the last sentence is in itself a « and quartz of course » situation regarding familiarity with xkcd material)
(Just in case there are confused people reading this: https://xkcd.com/2501/ )
Average Familiarity

xkcd

@glyph oh that's a 100% true

Twisted is used as the underlying library for a bunch of user-facing stuff--things like Daphne and Scrapy.

But very few applications (things that users interact with) are written directly in twisted.

@astraluma @glyph My first job in London was working on some Twisted/Nevow web apps (aimed at business clients) in the late 00s. The company moved to Pylons (IIRC) some time after that.

@glyph
> I think that this shows that the majority of users of python are on a version in security support rather than bugfix support

Not quite. The survey was open for 6 weeks, starting just one day after the release of 3.13 in October 2024, when 3.12 was still in bugfix, meaning:

2% pre-release
50% bugfix
42% security
6% EOL

42% is still a lot, but not as much as 77% if 3.12's 35% is miscounted as security.

(Oh, and these are only the Python 3 numbers.)
https://lp.jetbrains.com/python-developers-survey-2024/#python-versions

@hugovk @glyph and don't forget we've extended bugfix releases by half a year for 3.13 and later, so it will have installers and everything for another year (until approximately the release of 3.15.)
@glyph lies, damn lies, and statistics
@glyph oh man there's still a lot of legacy python 2 in "some places". But the fact that newer Ubuntu don't package it anymore, and deadsnakes doesn't either .. it's finally on it's way out but it's painful 😖
@glyph Sorry, this triggers my inner mathematician: that is not how hypothesis testing works. 🙈
@glyph but what is the average python version?
@GyrosGeier scroll down one post in the thread
@glyph I was thinking there should be a gauge somewhere, like https://chaos.social/@vidister/113308216924456611
fiona (@[email protected])

Attached: 1 image Average IP version

chaos.social

@glyph @hynek it'd be interesting IMO to see the breakdown of how many people use YouTube by level of experience. My hypothesis is that there's a (positive) correlation between level of experience and preference for written documentation over video documentation - I think videos are reasonably well suited for tutorials (if you are the type of person who can learn from a video at all) but poorly suited for the reference documentation that more experienced devs are more likely to use.

#Python #programming

@diazona @glyph @hynek videos about programming are awful unless it a conference presentation.

If a product or library only has video documentation/examples it I poorly documented and likely shouldn’t be relied upon.

Python Developers Survey 2024 external sharing MAIN – Google Drive

Google Drive
@glyph When I got interested in Python, I watched tons of Python conference talks on YouTube - there’s loads there and some of it is quite advanced (and was way over my head back then). A decade later there’s even more. Maybe that’s what people are watching.

@glyph

Conference video archive websites are a hot mess so I watch them on Youtube.

@glyph I guessed that the bad news was the use of LLMs.
@matt as always I have a variety of bad news
@glyph i do think a good part of that 68 percent are probably fairly new to Python based on the prior numbers.
@glyph I have 20 years of Python experience, not even an hour of professional coding experience with it. I know this is likely to be a very rare occurrence, but it's a small blind spot in the survey.
@danzin what do you mean by this?

@glyph That I code in Python as a hobby, contribute to CPython for fun, work on a totally unrelated area and have never used Python in it. So I have less than one year of professional coding experience.

I also know people that have been teaching Python for years and have never had a programming job.

And of course there are students who code in Python for many years, but are also not professionals.

@glyph
But Rust (and C, C++, Fortran) is complementary to Python. It makes sense to use them both, for different things.

Whereas Ruby and Python occupy much the same kind of language niche, and so why would you use Ruby when you're already using Python?

@glyph I spent some time pondering that problem a while back, and my working theory is that the primary challenge is getting multiple memory management regimes to play nice with each other. It's so easy to accumulate uncollectable garbage once two GCs are involved, even if the data models otherwise mesh nicely. Plus C/C++/Rust capabilities complement the dynamic languages quite well, whereas the high level languages more overlap with each other. Thus pairing across sets, rather than within.