frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Breaking Changes in Python-3.14

6•wef•16h ago
One of the reasons Linux is so successful is Torvald's insistence on never breaking user space.

The python people don't adhere to this principle and maybe I need to give up on it, I'm just sick of this crap.

Those of us of a certain vintage will recall the tumult of python-2 to -3. Suddenly, production code needed significant re-writing. We got an arguably better python out of it, but oh! the pain.

In 3.14, (among many other things) the python developers decided to make 'forkserver' the default instead of 'fork' for the Process() method (this is for starting a child process - https://docs.python.org/3/library/multiprocessing.html). Why on earth break our code in such a wanton way? Why not leave the default alone - there was always the option to use 'forkserver' if one wanted it. Or maybe they could have created a new entrypoint with the new behaviour Process_fastserver() or some such? Oh no! Just break it and make their customers patch furiously!

When we adopt a language, we like to think that what runs today will run tomorrow - C and bash programs that I wrote 30 years ago still run. Not with python - if you use it, buckle up and make sure your regression tests are thorough, it'll be a rough ride.

Move slow and break things, perhaps?

Comments

mattbillenstein•16h ago
Why do you consider using forkserver as the default a breaking change? This should be transparent to most users?

fork() is very hard to get right as it keeps a lot of state around from the parent process you have to cleanly discard...

perrygeo•13h ago
This is far from transparent. It's a massive change in behavior. Fork may be very hard to get right, but every python developer using multiprocessing has already paid that cost - and expects it to keep working!

With fork, you could pass objects that couldn't be pickled (lambdas, local functions, file handles, database connections). With forkserver, everything must be pickleable. That alone breaks thousands of repos of code.

You can no longer work with global module-level objects, so it fundamentally changes how scoping rules work.

It launches a server with some extra machinery at runtime - startup cost and hidden complexity just snuck its your app without you knowing.

forkserver may be technically a better choice. But that's irrelevant. Changing the default breaks existing code.

mattbillenstein•9h ago
Eh, not letting the language ever evolve is a sure way to death, ymmv.

Forkserver is probably a better default, inheriting file handles, globals, and sockets leads to a bunch of subtle bugs - I'm not sure that's even a good feature, also ymmv.

And fork() is still available, so if it breaks things, the solution would be to explicitly ask for fork() - and I'd say for most casual uses of multiprocessing, a user won't know one way or the other which is what I meant by transparent.

WillowAndrew•16h ago
If you want things to stay as they are, just pin your versions.
CopyOnWrite•5h ago
What really annoys me about Python, is that a lot of problems that the language/infrastructure/community has can easily be tracked back to well understood problems that have been solved for decades in other communities. Some of these problems have been fixed with breaking changes, some others probably never will be fixed.

Just a list of bad/wrong decisions IMHO:

- Reference counting instead of using a real garbage collector

- The pyproject.toml format is under-specified, comes decades too late for a problem that has been solved good enough by Apache Maven more than 2 decades ago

- The absolutely weak support for functional programming, which then was patched by list comprehensions and co later

- venv and other solutions to isolate dependencies for a project

Python is successful because of the community support and a binding to almost everything, and this sadly outweighs a lot of poor choices from the language designers and the implementation. I just always feel frustrated, that during the great breakup from 2-3, they didn't try to fix more of the known issues (which again, have been solved by other communities decades before) instead of breaking the world and still managing to half ass it.

d--b•4h ago
What's worse is that Python libraries like pandas do that too.

The more I use Python in a professional environment the less I think it is suited for professional environments.

Ask HN: Do you allow vibecoded submissions in your open-source projects?

3•sneas•1h ago•4 comments

Ask HN: What are your predictions for 2026?

84•mfrw•2d ago•151 comments

Ask HN: Those making $500/month on side projects in 2025 – Show and tell

424•cvbox•1d ago•495 comments

Tell HN: HN was down

595•uyzstvqs•1d ago•326 comments

Ask HN: What Are You Working On? (December 2025)

437•david927•4d ago•1443 comments

Ask HN: Does anyone understand how Hacker News works?

156•jannesblobel•1d ago•212 comments

Tell HN: Cloudflare Down Again?

8•valtlfelipe•3h ago•6 comments

Ask HN: How do you deal with large, hard-to-read Excel formulas?

5•jack_ruru•11h ago•8 comments

Tell HN: AI coding is sexy, but accounting is the real low-hanging target

64•bmadduma•1w ago•55 comments

Ask HN: If one day AI brain chips become a thing, would you get it?

5•keepamovin•8h ago•20 comments

Ask HN: How do teams remember why infrastructure decisions were made?

5•curious_sre•13h ago•8 comments

Ask HN: Who here is not working on web apps/server code?

12•ex-aws-dude•20h ago•10 comments

Ask HN: Is starting a personal blog still worth it in the age of AI?

63•nazarh•4d ago•75 comments

Ask HN: Is anyone using LLM based document processing in production?

7•asdev•17h ago•6 comments

Computer animator and Amiga fanatic Dick van Dyke turns 100

281•ggm•6d ago•93 comments

Ask HN: Is building a calm, non-gamified learning app a mistake?

86•hussein-khalil•3d ago•122 comments

Ask HN: Should I start a software foundation (goal: help emergency services)?

11•strgcmc•1d ago•0 comments

Is analytics a necessary evil rather than a real value driver?

6•tiazm•21h ago•7 comments

Ask HN: How to fight back against Lovable, Replit, etc. in enterprise products

3•bears123•21h ago•3 comments

GitHub Actions Degraded

3•1qaboutecs•21h ago•0 comments

Ask HN: Is RSS Still Alive?

10•militanz•1d ago•12 comments

Ask HN: Should I Open Source Every Product I Build as an Indie Developer?

6•tomfox2•23h ago•11 comments

Ask HN: If you had to get a non-tech masters degree, what would you go for?

2•highwayman47•23h ago•6 comments

Tell HN: iOS 18.7.3 Update Hidden

5•alemanek•11h ago•2 comments

Ask HN: Etiquette giving feedback on mostly AI-generated PRs from co-workers

4•chfritz•1d ago•4 comments

Ask HN: Why do official-looking emails cause anxiety before I read them?

4•BianDan•1d ago•4 comments

Ask HN: Decentralized Auth for Information Exchange?

2•vxsz•1d ago•3 comments

Ask HN: How can I get better at using AI for programming?

467•lemonlime227•5d ago•466 comments

FWS – pip-installable embedded process supervisor with PTY/pipe/dtach back ends

2•mrsurge•1d ago•0 comments

Breaking Changes in Python-3.14

6•wef•16h ago•6 comments