Live data from Hacker News

Reverting the incremental GC in Python 3.14 and 3.15

discuss.python.org

91–100 of 134 posts

Re: Reverting the incremental GC in Python 3.14 and 3.15

#91
post #13

Earlier quoted context omitted.

The main benefit of python to me is that while slow, it's predictable. I do think they're going to get a lot more resistance to adding JITs, moving GCs, etc. it will become java with a million knobs to tune. If people want a JIT'd python just use pypy, right?

Why not just use Go? It has a proper concurrent, non-moving GC that, AIUI, has not been associated with sudden memory spikes.

It's a tradeoff. Go programs are extremely slow at starting up for example.

Re: Reverting the incremental GC in Python 3.14 and 3.15

#92
post #86
post #65

Earlier quoted context omitted.

I like my programming language flame wars just as much as the next guy but Go is a really easy language to get started with, while also being very fast. It's not just luck

> The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. -- Rob Pike

Any reference to the biggest issues with Go in your opinion, and what are you comparing it to?

Re: Reverting the incremental GC in Python 3.14 and 3.15

#93

"Python 3.14 shipped with a new incremental garbage collector. However, we’ve had a number of reports of significant memory pressure in production environments. We’ve decided to revert it in both 3.14 and 3.15, and go back to the generational GC from 3.13." Sounds the right move for me

Why are people still building systems on top of a language that continually undergoes fundamental changes nearly 40 years after release? Is this not the strongest indication that this language is not well designed, it is unstable, and encounters many issues that flat out don't exist in other high level languages?

Re: Reverting the incremental GC in Python 3.14 and 3.15

#94
post #13

"Python 3.14 shipped with a new incremental garbage collector. However, we’ve had a number of reports of significant memory pressure in production environments. We’ve decided to revert it in both 3.14 and 3.15, and go back to the generational GC from 3.13." Sounds the right move for me

The main benefit of python to me is that while slow, it's predictable. I do think they're going to get a lot more resistance to adding JITs, moving GCs, etc. it will become java with a million knobs to tune. If people want a JIT'd python just use pypy, right?

In what way do you feel Python is predictable, especially in comparison to other languages one would build a backend system in?

It's predictable vs Rust, C#, F#, Elixir, Go, etc.?

Re: Reverting the incremental GC in Python 3.14 and 3.15

#95
post #91

Earlier quoted context omitted.

Why not just use Go? It has a proper concurrent, non-moving GC that, AIUI, has not been associated with sudden memory spikes.

It's a tradeoff. Go programs are extremely slow at starting up for example.

That doesn't matter for anything other then CLIs.

Re: Reverting the incremental GC in Python 3.14 and 3.15

#96

.NET seems to have regularly changed the garbage collector over the years and I do not remember any similar surprises in production. I wonder why they have had better experience? I thought that by now dynamic garbage collection was a known quantity so that making changes, outside of out right bugs, is fairly safe and predictable?

.NET and the CLR was actually designed by computer scientists and experts, not so for Python.

Re: Reverting the incremental GC in Python 3.14 and 3.15

#97
post #13

"Python 3.14 shipped with a new incremental garbage collector. However, we’ve had a number of reports of significant memory pressure in production environments. We’ve decided to revert it in both 3.14 and 3.15, and go back to the generational GC from 3.13." Sounds the right move for me

The main benefit of python to me is that while slow, it's predictable. I do think they're going to get a lot more resistance to adding JITs, moving GCs, etc. it will become java with a million knobs to tune. If people want a JIT'd python just use pypy, right?

PyPy is not looking healthy right now - it's several versions behind in support and, while it's not dead, it looks like it might be settling down for a rest.

Obviously it's not easy to move the whole language of a big codebase, but I feel a lot of this stuff (fiddling with GC, JITing, type hints, and I'm dubious about the free-threading stuff) tries to take Python somewhere it isn't really good at, and if that's what you want, you really want a different language.

Re: Reverting the incremental GC in Python 3.14 and 3.15

#98
post #91

Earlier quoted context omitted.

Why not just use Go? It has a proper concurrent, non-moving GC that, AIUI, has not been associated with sudden memory spikes.

It's a tradeoff. Go programs are extremely slow at starting up for example.

What? Compared to Python they're like lightning. Typically milliseconds to the start of main() - admittedly they can be slowed down by init() nonsense and terrible generated protobuf code nonsense in deep dependency trees - but with a non-trivial Python program you can look forward to an order of magnitude more. There are techniques to help address that but (1) they're not idiomatic and (2) it still only mitigates it.

I suppose Go programs are slower than the equivalent thing in C or C++, but I'm not sure that's a very relevant comparison in most cases today (how many new things being written would choose those languages).

Re: Reverting the incremental GC in Python 3.14 and 3.15

#99
post #91

Earlier quoted context omitted.

Why not just use Go? It has a proper concurrent, non-moving GC that, AIUI, has not been associated with sudden memory spikes.

It's a tradeoff. Go programs are extremely slow at starting up for example.

So are Python and Java programs.
Post reply on HN