

Survey Finds More Python Developers Like PostgreSQL, AI Coding Agents - and Rust for Packages (jetbrains.com) 70
More than 30,000 Python developers from around the world answered questions for the Python Software Foundation's annual survey — and PSF Fellow Michael Kennedy tells the Python community what they've learned in a new blog post. Some highlights:
Most still use older Python versions despite benefits of newer releases... Many of us (15%) are running on the very latest released version of Python, but more likely than not, we're using a version a year old or older (83%). [Although less than 1% are using "Python 3.5 or lower".] The survey also indicates that many of us are using Docker and containers to execute our code, which makes this 83% or higher number even more surprising... You simply choose a newer runtime, and your code runs faster. CPython has been extremely good at backward compatibility. There's rarely significant effort involved in upgrading... [He calculates some cloud users are paying up to $420,000 and $5.6M more in compute costs.] If your company realizes you are burning an extra $0.4M-$5M a year because you haven't gotten around to spending the day it takes to upgrade, that'll be a tough conversation...
Rust is how we speed up Python now... The Python Language Summit of 2025 revealed that "Somewhere between one-quarter and one-third of all native code being uploaded to PyPI for new projects uses Rust", indicating that "people are choosing to start new projects using Rust". Looking into the survey results, we see that Rust usage grew from 27% to 33% for binary extensions to Python packages... [The blog post later advises Python developers to learn to read basic Rust, "not to replace Python, but to complement it," since Rust "is becoming increasingly important in the most significant portions of the Python ecosystem."]
PostgreSQL is the king of Python databases, and only it's growing, going from 43% to 49%. That's +14% year over year, which is remarkable for a 28-year-old open-source project... [E]very single database in the top six grew in usage year over year. This is likely another indicator that web development itself is growing again, as discussed above...
[N]early half of the respondents (49%) plan to try AI coding agents in the coming year. Program managers at major tech companies have stated that they almost cannot hire developers who don't embrace agentic AI. The productive delta between those using it and those who avoid it is simply too great (estimated at about 30% greater productivity with AI).
It's their eighth annual survey (conducted in collaboration with JetBrains last October and November). But even though Python is 34 years old, it's still evolving. "In just the past few months, we have seen two new high-performance typing tools released," notes the blog post. (The ty and Pyrefly typecheckers — both written in Rust.) And Python 3.14 will be the first version of Python to completely support free-threaded Python... Just last week, the steering council and core developers officially accepted this as a permanent part of the language and runtime... Developers and data scientists will have to think more carefully about threaded code with locks, race conditions, and the performance benefits that come with it. Package maintainers, especially those with native code extensions, may have to rewrite some of their code to support free-threaded Python so they themselves do not enter race conditions and deadlocks.
There is a massive upside to this as well. I'm currently writing this on the cheapest Apple Mac Mini M4. This computer comes with 10 CPU cores. That means until this change manifests in Python, the maximum performance I can get out of a single Python process is 10% of what my machine is actually capable of. Once free-threaded Python is fully part of the ecosystem, I should get much closer to maximum capacity with a standard Python program using threading and the async and await keywords.
Some other notable findings from the survey:
Rust is how we speed up Python now... The Python Language Summit of 2025 revealed that "Somewhere between one-quarter and one-third of all native code being uploaded to PyPI for new projects uses Rust", indicating that "people are choosing to start new projects using Rust". Looking into the survey results, we see that Rust usage grew from 27% to 33% for binary extensions to Python packages... [The blog post later advises Python developers to learn to read basic Rust, "not to replace Python, but to complement it," since Rust "is becoming increasingly important in the most significant portions of the Python ecosystem."]
PostgreSQL is the king of Python databases, and only it's growing, going from 43% to 49%. That's +14% year over year, which is remarkable for a 28-year-old open-source project... [E]very single database in the top six grew in usage year over year. This is likely another indicator that web development itself is growing again, as discussed above...
[N]early half of the respondents (49%) plan to try AI coding agents in the coming year. Program managers at major tech companies have stated that they almost cannot hire developers who don't embrace agentic AI. The productive delta between those using it and those who avoid it is simply too great (estimated at about 30% greater productivity with AI).
It's their eighth annual survey (conducted in collaboration with JetBrains last October and November). But even though Python is 34 years old, it's still evolving. "In just the past few months, we have seen two new high-performance typing tools released," notes the blog post. (The ty and Pyrefly typecheckers — both written in Rust.) And Python 3.14 will be the first version of Python to completely support free-threaded Python... Just last week, the steering council and core developers officially accepted this as a permanent part of the language and runtime... Developers and data scientists will have to think more carefully about threaded code with locks, race conditions, and the performance benefits that come with it. Package maintainers, especially those with native code extensions, may have to rewrite some of their code to support free-threaded Python so they themselves do not enter race conditions and deadlocks.
There is a massive upside to this as well. I'm currently writing this on the cheapest Apple Mac Mini M4. This computer comes with 10 CPU cores. That means until this change manifests in Python, the maximum performance I can get out of a single Python process is 10% of what my machine is actually capable of. Once free-threaded Python is fully part of the ecosystem, I should get much closer to maximum capacity with a standard Python program using threading and the async and await keywords.
Some other notable findings from the survey:
- Data science is now over half of all Python. This year, 51% of all surveyed Python developers are involved in data exploration and processing, with pandas and NumPy being the tools most commonly used for this.
- Exactly 50% of respondents have less than two years of professional coding experience! And 39% have less than two years of experience with Python (even in hobbyist or educational settings)...
- "The survey tells us that one-third of devs contributed to open source. This manifests primarily as code and documentation/tutorial additions."
Python is scripting, not a programming language (Score:5, Insightful)
Re: Python is scripting, not a programming languag (Score:5, Interesting)
When you say 'rust is how we speed up python now' who is we, and why are they choosing this over more traditional approaches for extension modules like C?
Again I'm genuinely curious as to why you don't consider python a 'real language'.
Re: (Score:3, Funny)
Re: (Score:2)
Re: (Score:1)
Your user id # indicates you aren't who you claim to be.
Unless you avoided the slashdot since 1998.
Re: (Score:2)
Or got locked out of his 5 digit account? I think it's a safe bet that anyone claiming to be old on here is not lying.
Re: (Score:2)
However, anyone that age, I do not think, would openly admit to being a BASIC "programmer" if they'd ever completed even basic bootstrapping in assembler.
I think sky-high UIDs to cast some doubt on claims, particularly in this post-truth society where the answer to anything you don't like seeing, is to lie it out of existence.
Re: (Score:2)
This happened to me. My original Slashdot account was connected to an old hotmail account I lost track or stopped using. I don't really recall. I just know there was a few years I stopped following Slashdot and more or less lost both Slashdot and hotmail account. Shrugs. I mean, does anyone really care some stranger on the Internet doesn't believe them? Don't answer that. We know way to many people care way to much about "The Internet".
Re: (Score:2)
As said- absolutely possible.
However, these days, it's also hard to tell.
My level of trust in shit people on the internet say has gone markedly down, which is frankly kind of fucking impressive.
I'd argue the only person who cares if a stranger on the internet believes them or not are actually those doing what I hypothesized- trying to lie a new reality into existence.
Re: (Score:2)
Re: (Score:2)
Locked out or Locked up.
Re: (Score:2)
Sometimes people lose access to their original accounts. My current UID is still relatively how, but my original one was almost half of it. It was linked to my college email that I lost access to so after I forgot that password I wasn't ever able to retrieve it.
Re: (Score:2)
Get a load of this guy who is using the same email address since 1979.
Re: Python is scripting, not a programming langua (Score:2)
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
I get where you're trying to go with that, but no.
It is still the basic unit of programmable functionality for the CPU.
There's only one step closer, and that's to compose the opcodes manually. I've had to do that on a PDP-11. Not great fun.
Re: (Score:1)
Great to see you still active! I do think modern processors are too specialized to write assembly code.
However that is why Flight Simulator needs 16GB ram. And simple web pages occupy 15 MB.
ASM to speed up crucial parts of C
C to speed up crucial parts of python
python to speed up development
rust to speed up... python?
So where do object-oriented design, pair programming and the other buzzwords fit in?
Re: Python is scripting, not a programming langua (Score:2)
Re: (Score:2)
OP is just a cranky a C coder who needs to feel superior to entire swaths of colleagues. Which is ridiculous because we Assembly coders know that C isn't even a real programming language.
As for Assembly [9cache.com] . . .
Re: (Score:2)
Assembler? Luxury!!
In my day we had to flip the switches for 1s and 0s ourselves !!
Although the Monty Python reference possibly appropriate (4 Yorkshiremen sketch was performed by the Monty Python team **), it is, sadly true.
Back in the ancient mists of time in the pre-dawn of history (well the mid 1970s), I actually did spend some time flipping switches and loading data into memory before the final crossing of fingers and jump to start location. only for a while because we then acquired the hottest gadge
Re: (Score:2)
Which is ridiculous because we Assembly coders know that C isn't even a real programming language.
I started my embedded software life doing 4 and 8 bit assembly coding. When I can across C in the 1980s, I considered it an "advanced macro assembler". Still writing in C today and loving it.
I also really love Python. I'm also an electronics engineer. I have more than one screwdriver in my lab :)
Re: Python is scripting, not a programming langua (Score:2)
Re: Python is scripting, not a programming languag (Score:4, Insightful)
I'm not OP, but I can give you my answer to what you're asking:
A script mainly executes *external commands*.
Most languages can be used to write scripts. They can also be used as a "real" language. Some with more difficulty than others. Bash being an extreme example. You can do a heck of a lot in "pure bash" w/o relying on unix commands. Most people don't bother though. Thus, they write scripts.
When I started using perl some ~27 years ago, a lot of my initial stuff was scripts. I used backticks throughout my code, executing unix commands to get what I needed. Thus, I created perl scripts. More and more, I replaced my `ls` with readdir(), and so forth. They became programs.
Same for python. If you rely on python internals (which most folks do) - it's programs. If you shell out for most of your logic, it's scripts.
At least that's my take.
Re: (Score:2)
Re: (Score:2)
If you rely on python internals (which most folks do) - it's programs. If you shell out for most of your logic, it's scripts.
If you rely on python internals, you get a slow program.
If you shell out for most of your logic, you get a faster program.
Thus python is a "scripting" language because that's the best way to use it.
Re: (Score:2)
He had a point, a valid one, you have another, a valid one too
Here's another: (not claiming to be any more valid, just another way to feel about it)
A program is something you take a lot of care into making, with the tools you have at your disposal, a program made of many
Re: (Score:3)
'rust os how we speed up Python' is a quote from the article.
A 'real' language (quotes were deliberate), is one that realistically supports large scale general purpose development. I would be surprised if anyone would decide to develop, for example, a core banking system in Python.
Things I would pinpoint that exclude Python are:
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Yes, exactly: You don't know, and you don't have any good evidence to back up an argument. You only have your guess, and that's why you should have kept it to yourself.
All scripting languages are useful because they let you express some kind of high-level logic (that relies on code written in other languages to actually execute). That doesn't change what they are.
Re: Python is scripting, not a programming languag (Score:4, Insightful)
Re: (Score:2)
In THEORY you get the best of both worlds. In my experience, you mostly get the slow execution and memory overhead of Python, the asspain of SWIG, the annoyance of rather different object models that are superficially similar, and the need to maintain competency in two languages instead of spending brain cells on your actual work.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Python has duck typing inherently, which makes it better than most "real" languages for some purposes. It's become my language of choice for most Project Euler problems because I can have a library of e.g. matrix operations without caring explicitly about the type of the elements in the matrix. The only statically typed languages which I know of that can do the same thing flexibly are Haskell and its imitators. In addition, Python does support type annotations which can be statically checked. They're a bit
Re: (Score:2)
I have to admit, must admit, that delimiters (python uses indentation, C uses braces) are inconsequential.
Python code is wonderful to read. I'm sorry, what python lacks in brevity makes it much more readable.
And easier to type...
Don't get me started on editors that require 200 MB ram to 'autocomplete'
Re: (Score:2)
Sounds like you're confusing "high level language" with "Scripting language". Python is used in lots of large scale projects behind the scenes. Just because it's easy to develop in and frequently used in data science doesn't make it less a language
The main difference I see between a "real language" and "scripting language" is that the scripting language is executed through an interpreter. Python falls into a bit of a middle zone here as the main python file is typically interpreted, but included modules
Re: (Score:2)
what do you consider to be the difference between a real language and a scripting language?
there are a few good definitions in the thread based on the purpose and form of the code, which are valid but quite subjective.
i always pictured "script" as anything that you execute as is, without compilation or build process, because some kind of interpreter is available. there are quite a few instances that are ambiguous, e.g. java doesn't really produce machine instructions but bytecode to be interpreted by the jvm, and can even be interpreted on the fly (or transparently compiled) but it generally requ
Re: (Score:2)
A "real language" compiles down to actual machine instructions. A "real language" does not need some interpreter or heavy weight runtime to run your code. A "real language" is what you use to implement the real work your Python (or whatever) is doing, including all those modules you use and including the interpreter running the Python itself. A "real language" is what you use to write the compiler for said "real language" (self hosting). A "real language" can be used to hit the hardware or make sys calls to
Re: (Score:2)
That sounds more like a "low level language" or some weird gate keeping by someone that doesn't really understand modern programming
Re: (Score:2)
Oh, look! One of those......
Re: (Score:2)
Anything Turing complete is a programming language. Whether it is interpreted or compiled is a bit irrelevant. Its all going to machine code one way or another - its just a matter of if its down ahead of time or at run time.
That said, Python is slow as hell and not something I particularly enjoy using. I've written a few simple things in it but I'd rather stick to a C-like syntax.
Survey Finds most surveys are just flamebate (Score:2, Informative)
The rising popularity of Rust (not just inside Pyt (Score:5, Insightful)
... is due to C++ jumping the shark. The latter is so complex now that no one who has other things to do in life can spend enough time to learn the language & library functionality and the increasingly esoteric syntax to a point that you can approach most modern C++ code without going WT actual F? I've been doing C++ for 25 years and it's how I earn my living (along with some Python and straight C) , but if I was starting out today I wouldn't go within a mile of itm I'd probably head towards Rust too after I'd learnt C.
Re: (Score:3)
Re: (Score:3)
Tooling is always easier to make nice when it solves a smaller, newer problem. How many different compilers does the Rust toolchain support? How many different models of linking and loading shared libraries? Does it support any targets that don't use two's complement representation or that have decimal floats natively? How is cross-compiling support, especially for bare-metal / non-hosted targets? How many existing development environments does it generate outputs for?
Re: The rising popularity of Rust (not just inside (Score:2)
Rust supports one compiler, with another for bootstrap and GCC on the way.
It does support no float platforms with the nostd option. Not everything works in that environment.
Re: (Score:2)
... is due to C++ jumping the shark. The latter is so complex now that no one who has other things to do in life can spend enough time to learn the language & library functionality and the increasingly esoteric syntax to a point that you can approach most modern C++ code without going WT actual F? I've been doing C++ for 25 years and it's how I earn my living (along with some Python and straight C) , but if I was starting out today I wouldn't go within a mile of itm I'd probably head towards Rust too after I'd learnt C.
I've been learning Rust and in some ways find it a little annoying with formatting warnings in the compiler. let my_result = ( my_variable == 1 ) -> produces a warning that parenthesis are unnecessary (didn't run this through the compiler so I think the "code" is written correctly). Sure they are unnecessary but to my eyes this makes it much easier to read that what is being assigned is the result of a comparison, without the parenthesis I'd have to read the line more closely.
At the same time the compi
Re: (Score:2)
C++? Surely C should be enough for anyone.
Re: (Score:2)
C++? Surely C should be enough for anyone.
What, assembly gets you closer to the hardware!
Re: The rising popularity of Rust (not just inside (Score:1)
Perhaps what the world needs is a simplification and retooling of C++.
I recommend calling it either C+, or C+2.
Performance (Score:2)
There is a massive upside to this as well. I'm currently writing this on the cheapest Apple Mac Mini M4. This computer comes with 10 CPU cores. That means until this change manifests in Python, the maximum performance I can get out of a single Python process is 10% of what my machine is actually capable of.
The author might be surprised how short a time your 10 core machine can actually run at full performance without overheating.
Re: (Score:2)
The rest of us are surprised how dumb your argument is. I haven't seen numbers for Apple silicon, but for x86 desktops, often only one core at a time can boost to the maximum clock speed. However, that's usually less than 20% faster than the all-core boost speed, and less than 50% faster than what can be sustained for all cores. Having just two cores running code more than makes up for those clock-speed differences. So Python's painful multiprocessing support leaves a huge amount of performance on the t
Re: (Score:2)
And qualitatively (I don't have numbers), I can run my 12-core MacBook Pro indefinitely with CPU at 100% and the fan stays quiet.
What load are you running to peg your 12 CPUs at 100%?
Re: (Score:3)
My go-to workload is essentially a parallel scripting workload: for about 1700 files, decompress a .gz to text, run a domain-specific lossy compression (rnx2crx), calculate md5, and compress using bzip3. It shrinks about 50 GB of input to about 12 GB, and takes maybe 40 minutes.
Previously, I worked on a more-or-less DSP project that for legacy reasons had a Python driver at the top level. We optimized the lower levels quite a bit, but it took us a long time to realize why we couldn't get rid of a ~10% ove
Re: (Score:1)
+1
Rust has broken pythons platform independence (Score:2)
Re: Rust has broken pythons platform independence (Score:2)
Curious, which platform for Rust works only with a commercial compiler?
Re: (Score:2)
"Most still use older Python versions " (Score:2)
That is a sign of the sucess of the language. It means that there are a lot of envitonments in which it runs productively with a well defined scope, very often embedded into an bigger system or package.
Re: (Score:2)
When I read that I was thinking they were meaning version 2.x but just one year is old in their books.
Re: (Score:2)
Re: (Score:2)
I still use COBOL
Re:"Most still use older Python versions " (Score:4, Informative)
Speaking as someone who works with a large python codebase and everyone prepares for the annoyance of migrating when we decide to support another python release, it's kind of the opposite.
Every python release breaks backwards compatibility in a few ways. This is why people run old versions, this is why a number of pypi modules get abandoned as python revs.
There's broad agreement in the organization over time that python was ultimately not the best choice. It might have been pretty good, if not for the core and ecosystem changing things and driving a non-trivial amount of our effort to just be on a treadmill.
Particularly aggravating because we have users demanding python 3.6, 3.9, 3.12, 3.13, all at the same time so we have to curate things with a broad level of compatibility. It took *forever* before the users stopped demanding python 2.7.
For the sake of my job... (Score:3)
I am signed up for my employer's 'optional' AI subscriptions and have even enabled it so they can see that my environment is touching the LLM.
However, the more I tried to use it, the less confident I have become in it being a particularly good help.So I get the suggestions and make my employer thing I'm a good little LLM user, but pretty much discard the suggestions. For some very very boilerplate stuff, it can help, but even for tasks today that I thought "oh, this is boilerplate, the LLM can whip this up no problem", it totally botched it.
So while the hiring managers say "we need LLM use by our employees because they are more productive", they end up getting lied to by those of use that are told you'll be laid off if you aren't using LLM. The fact that they can't tell except by taking our word for it speaks volumes to me..
Re: (Score:2)
For some very very boilerplate stuff, it can help, but even for tasks today that I thought "oh, this is boilerplate, the LLM can whip this up no problem", it totally botched it.
I had a (new) table definition where each column referenced a different object field. Those fields didn't exist in the class yet. I asked Claude to create them, using the table as a reference. Claude implemented the first eight and the last two. It looked great at a glance, but there were another 15 fields in the middle that were skipped. I fired Claude.
Pandas is hot garbage (Score:2)
It's amazing to me as a person that works with data that people willingly use Pandas. What a piece of hot garbage. The syntax is garbage, the way of reasoning about data is garbage - it's a piece of garbage.
And yet it's the defacto requirement for something like 80% of data science/ data analyst jobs. It honestly blows my mind.