What are your opinions and expectations on Google's Unladen Swallow? From their project plan:
We want to make Python faster, but we also want to make it easy for large, well-established applications to switch to Unladen Swallow.
- Produce a version of Python at least 5x faster than CPython.
- Python application performance should be stable.
- Maintain source-level compatibility with CPython applications.
- Maintain source-level compatibility with CPython extension modules.
- We do not want to maintain a Python implementation forever; we view our work as a branch, not a fork.
And even sweeter:
In addition, we intend to remove the GIL and fix the state of multithreading in Python. We believe this is possible through the implementation of a more sophisticated GC
It almost looks too good to be true, like the best of PyPy and Stackless combined.
More info:
Update: as DNS pointed out, there was related question: What is LLVM and How is replacing Python VM with LLVM increasing speeds 5x?
Later, at the Bridge of Death, the Bridgekeeper asks Arthur his third question. "What is the airspeed velocity of an unladen swallow?" When Arthur asks the old man whether he means an African or European swallow, the Bridgekeeper is unable to answer, and is thus launched into the chasm.
It's common for these predatory birds to capture and carry prey weighing in at 1 to 2 pounds, though there have been instances of carrying prey upward of 5 or 6 pounds over distances of at least a mile.
It's a simple question of weight ratios A 54-year survey of 26,285 European Swallows captured and released by the Avian Demography Unit of the University of Capetown finds that the average adult European swallow has a wing length of 12.2 cm and a body mass of 20.3 grams.
I have high hopes for it.
This is being worked on by several people from Google. Seeing as how the BDFL is also employed there, this is a positive.
Off the bat, they state that this is a branch, and not a fork. As such, it's within the realm of possibility that this will eventually get merged into trunk.
Most importantly, they have a working version. They're using a version of unladen swallow right now for Youtube stuff.
They seem to have their shit together. They have a relatively detailed plan for a project at this stage, and they have a list of tests they use to gauge performance improvements and regressions.
I'm not holding my breath on GIL removal, but even if they never get around to that, the speed increases alone make it awesome.
I'm sorry to disappoint you, but when you read PEP 3146 things look bad.
The improvement is by now minimal and therfore the compiler-code gets more complicated. Also removing the GIL has many downsides.
Btw. PyPy seems to be faster then Unladen Swallow in some tests.
This question discussed many of the same things. My opinion is that it sounds great, but I'm waiting to see what it looks like, and how long it takes to become stable.
I'm particularly concerned with compatibility with existing code and libraries, and how the library-writing community responds to it. Ultimately, aside from personal hobby projects, it's of zero value to me until it can run all my third-party libraries.
I think the project has noble goals and with enough time (2-3 years), they will probably reach most of them.
They may not be able to merge their branch back into the trunk because Guido's current view is that cpython should be a reference implementation (ie. it shouldn't do things that are impossible for IronPython and jython to copy.) I've seen reports that this is what kept the cool parts of stackless from being merged into cpython.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With