Live data from Hacker News

Python 3.14 garbage collection rigamarole

theconsensus.dev

71–80 of 85 posts

Re: Python 3.14 garbage collection rigamarole

#71
post #66

Earlier quoted context omitted.

You're simply incorrect here. The GC was in versions 3.14.0 to 3.14.4. See https://docs.python.org/3/whatsnew/3.14.html#whatsnew314-inc... On what planet is the currently released version of any software "not a live system?"

Do you live on a planet where the Python language maintainers are deploying Python into your servers or managing them? Do you live on a planet where a new version of Python being released gets instantly and automatically deployed into your systems without testing and validation? You are responsible for that, not them. And if Python 3.13 is fine for you and you report a performance regression for 3.14, you can still s…

Your argument is, frankly, idiotic. If a version of Windows, or any deployed software, has a performance regression, do you consider it “not a live product” because you didn’t personally install it yet?

I really don’t have words. When people bemoan the state of software engineering, your comment here is exactly what they’re talking about.

Re: Python 3.14 garbage collection rigamarole

#72

Do people use python for new projects apart from ML stuff which hasn't moved to all-native yet? My experience with Python is a really bad one for professional work: it's chaotic and slow, and has by far the worst versioning and packaging story of any mainstream language, yet its proponents keep praising it in denial. I guess Python is an ok target for agentic coding, but my god do look Claude's commit messages preten…

Yeah I still use Python. I've been using it for a long time, I can get stuff done quickly with it, but I feel the same way you do to a big extent. Not sure what to use instead. I hate anything having to do with Javascript even though some parts of the JS world beat Python hollow (it's the other parts that are even worse than Python). Golang? Rust? Both too low level. I do use C++ (also low level) when I need something to run fast, but it's not the first stop. Erlang/Elixir? I like Erlang (haven't used Elixir) but it's too small a world and I'd want something with a serious type system if I'm gonna change languages. Haskell? Too much headache to do even simple things, such as logging. Scala? The bureaucracy of Java with the headaches of Haskell. OCaml? Maybe underrated and I should look into it more, but again it seems like Haskell's poorer cousin. I'm sure I'm overlooking some good ones though.

Re: Python 3.14 garbage collection rigamarole

#73
post #36

Earlier quoted context omitted.

Half or more of the scientific research community live and breathe Python. Granted, it's Python 3.12, as 3.13 broke most of the C API, and everything COBOL and Fortran just about ground to a halt. But new projects are spun up constantly.

3.13 broke most of the C API 3.14 broke GC I guess these kinds of priorities are exactly why Python is not my favorite programming language and why you have tens of Python versions installed on any machine. Not to talk about the Python 2 -> 3 drama that was also about fetishising syntax and pureness over pragmatism, installed base, and respect for existing code.

What happened in 3.13? Somehow I missed that. 2->3 was already a jump the shark incident though.

Re: Python 3.14 garbage collection rigamarole

#74
post #67

Earlier quoted context omitted.

Any claims that Python has a huge backwards compat mission go right out the window when you consider Python 3. 3 was a perfect chance to fix all of the major problems with Python, problems other languages have solved so there isn't even a need to invent things from scratch. They didn't and that's why the community is still split on adoption.

I have no idea what you're talking about. 3.x objectively did fix the major problems and was not particularly inventive in its approach. The fact that they didn't fix more things all at once — and the fact that they still received massive complaints about supposedly fixing too much — is the origin of that backwards compatibility mission. Actually talking to the devs for any significant length of time makes it clear h…

Python 3 got very slow update and poor acceptance precisely because it DIDN'T fix major problems, it only tweaked around the edges of minor ones. So people stayed with Python 2 as long as possible. Here's a post from 2014 that I bookmarked and it explains things a decade+ later:

https://news.ycombinator.com/item?id=7802575

From the link: "You know why I'm not running python 3? Because it doesn't solve a single problem I have. It doesn't solve anyone's problems. It solves imaginary problems, while creating real problems."

Re: Python 3.14 garbage collection rigamarole

#75
post #71

Earlier quoted context omitted.

Do you live on a planet where the Python language maintainers are deploying Python into your servers or managing them? Do you live on a planet where a new version of Python being released gets instantly and automatically deployed into your systems without testing and validation? You are responsible for that, not them. And if Python 3.13 is fine for you and you report a performance regression for 3.14, you can still s…

Your argument is, frankly, idiotic. If a version of Windows, or any deployed software, has a performance regression, do you consider it “not a live product” because you didn’t personally install it yet? I really don’t have words. When people bemoan the state of software engineering, your comment here is exactly what they’re talking about.

Snarky comment aside, Python is definitely *not* a "live system". If you had worked with such system before you'd know the world of difference between a version release of "stable" software versus a live platform that cannot fail.

Re: Python 3.14 garbage collection rigamarole

#76

> Python 3.14.0 introduced a new incremental garbage collector. But reports of higher memory usage caused the Python team to revert the garbage collector changes in 3.14.5. If they didn't have very good objective reasons the new GC is better, they never should have shipped it. If they do, they should not have reverted the change.

It's this sort of stuff that leaves me scratching my head why people like Python so much. I hear them say they prefer the syntax and personally I feel like that's such a small part of the holistic experience of working with any particular language. It's one of the reasons why I gave up on C++ years ago for .NET, the whole system of tooling in .NET has never left me feeling like I was pigeonholed into doing things in…

When people say they prefer 'the syntax', I think they usually mean a bit more than just that: at least a fair bit of this is semantics. Python provides a lot of features out of the box, and if you work superficially along the happy path, it is very easy to understand how these work and read code using them.

Take list comprehensions for example. It is mostly syntax: you can do virtually all list comprehensions with just a map and filter function. But the way that it is integrated and presents the code, makes is vastly easier to follow for most developers, which tilts the balancer in favor of doing away with loops and mutable state. Is it syntax that made them do so? Yes, maybe. But its the actual semantics that provide the value.

Re: Python 3.14 garbage collection rigamarole

#77
post #75
post #71

Earlier quoted context omitted.

Your argument is, frankly, idiotic. If a version of Windows, or any deployed software, has a performance regression, do you consider it “not a live product” because you didn’t personally install it yet? I really don’t have words. When people bemoan the state of software engineering, your comment here is exactly what they’re talking about.

Snarky comment aside, Python is definitely *not* a "live system". If you had worked with such system before you'd know the world of difference between a version release of "stable" software versus a live platform that cannot fail.

> If you had worked with such system before

You mean software that has to be deployed locally? Like the example I gave?

> you'd know the world of difference

It's actually worse. The longer you take to get a fixed version out there, the more people will install the buggy version. As distribution is more difficult than just merging a Github PR, that buggy version will live longer on live systems. And before you say "but it's on the developer/DevOps/sysadmin to test," I point you to the countless CVEs where this didn't happen.

Knowing this is the situation, it's unconscionable to leave a faulty build on live for longer than necessary, when you can rollback the change with limited risk.

Re: Python 3.14 garbage collection rigamarole

#78
post #71

Earlier quoted context omitted.

Do you live on a planet where the Python language maintainers are deploying Python into your servers or managing them? Do you live on a planet where a new version of Python being released gets instantly and automatically deployed into your systems without testing and validation? You are responsible for that, not them. And if Python 3.13 is fine for you and you report a performance regression for 3.14, you can still s…

Your argument is, frankly, idiotic. If a version of Windows, or any deployed software, has a performance regression, do you consider it “not a live product” because you didn’t personally install it yet? I really don’t have words. When people bemoan the state of software engineering, your comment here is exactly what they’re talking about.

3.14.5 has a serious performance regression - GC pause times have increased significantly since the entire 3.14 series. This is the problem - you’re arbitrarily putting max RSS of certain workloads over the p95 latency of others. It’s arbitrary and why the worst kind of software engineering that inhibits software progress for the sake of nothing changing.

As for Windows, I think you need a better example. OSes frequently change their performance profile on certain workloads and use more memory. Terrible example.

Also please cool it with the personal insults. They’re not productive and shows you’re trying to win the argument through force and emotion instead of reason.

Re: Python 3.14 garbage collection rigamarole

#79
post #36

Earlier quoted context omitted.

Half or more of the scientific research community live and breathe Python. Granted, it's Python 3.12, as 3.13 broke most of the C API, and everything COBOL and Fortran just about ground to a halt. But new projects are spun up constantly.

3.13 broke most of the C API 3.14 broke GC I guess these kinds of priorities are exactly why Python is not my favorite programming language and why you have tens of Python versions installed on any machine. Not to talk about the Python 2 -> 3 drama that was also about fetishising syntax and pureness over pragmatism, installed base, and respect for existing code.

[deleted]

Re: Python 3.14 garbage collection rigamarole

#80

Earlier quoted context omitted.

3.13 broke most of the C API 3.14 broke GC I guess these kinds of priorities are exactly why Python is not my favorite programming language and why you have tens of Python versions installed on any machine. Not to talk about the Python 2 -> 3 drama that was also about fetishising syntax and pureness over pragmatism, installed base, and respect for existing code.

What happened in 3.13? Somehow I missed that. 2->3 was already a jump the shark incident though.

> I removed around 272 private functions and 15 private variables from the public C API (compared to Python 3.12 API).

[0] https://discuss.python.org/t/c-api-my-plan-to-clarify-privat...

Post reply on HN