I've been programming with Python for over 10 years now, and I use type hints whenever I can because of how many bugs they help catch. At this point, I'm beginning to form a rather radical view. As LLMs get smarter and vibe coding (or even more abstract ways of producing software) becomes normalized, we'll be less and less concerned about compatibility with existing codebases because new code will be cheaper, faster to produce, and more disposable. If progress continues at this pace, generating tests with near 100% coverage and fully rewriting libraries against those tests could be feasible within the next decade. Given that, I don't think backward compatibility should be the priority when it comes to language design and improvements. I'm personally ready to embrace a "Python 4" with a strict ownership model like Rust's (hopefully more flexible), fully typed, with the old baggage dropped and all the new bells and whistles. Static typing should also help LLMs produce more correct code and make iteration and refactoring easier.
The filename of the formal paper[1] reveals the internal codename: "Pyrona".
1: https://www.microsoft.com/en-us/research/wp-content/uploads/...
I'd rather love to see confluent persistence in python, i.e. a git-like management of an object tree.
so when you create a new call stack ( generator, async sth, thread) you can create a twig/branch, and that is modified in-place, copy on write.
and you decide when and how to merge a data branch,there are support frameworks for this, even defaults but in general merging data is a deliberate operation. like with git.
locally, a python with this option looks and feels single threaded, no brain knots. sharing and merging intermediate results becomes a deliberate operation with synchronisation points that you can reason about.
Is anyone familiar with Instagram's cinder?
https://github.com/facebookincubator/cinder
cinder includes changes for immutable module objects. I wonder if the implementation is similar? Or is cinder so old that it would be incompatible with the future noGil direction?
If I understand it correctly, this is only catching ownership violations at runtime, so it doesn't actually prevent writing/shipping the bug? But it does seem to be able to improve the detection rate and determinism, and also help with diagnosing the bug when it's discovered. If this does let simple unit tests in CI discover concurrency bugs, that's a big improvement, even if it's not as strong as static analysis. I imagine there are still cases where the ownership violation is not deterministic though, e.g. depending on the data or the app's configuration, and maybe will not be caught until production
Sounds like a fun job, I’d love to do something like this in my 9 to 5.
It’s also amazing how much work goes into making Python a decent platform because it’s popular. Work that will never be finished and could have been avoided with better design.
Get users first, lock them in, fix problems later seems to be the lesson here.
Microsoft just fired 3% of its staff, more than it ever did before. I would stick with type-checked free-threaded Python with locks and queues. Someone should be able to enhance the type checker to also check for unsafe mutation of variables.
This looks like a pivot on the Project Verona research, as there have not been much other papers out since the initial announcement, regarding the programming language itself.
I wish Python had moved to the BEAM or something similar as part of the 2 to 3 transition. This other stuff makes me cringe.
This is the true Python concurrency effort! I know, I have followed many! (Life of Brian)
So they sounded out the Faster CPython team, which is now fired (was van Rossum fired, too?):
"Over the last two years, we have been engaging with the Faster CPython team at Microsoft as a sounding board for our ideas."
And revive the subinterpreter approach yet again.
"fearless concurrency" reminds of the buzzword for another language
Microsoft laid off the Faster CPython lead Mark Shannon and ended support for the project, where does this leave the Verona project?