Comment by zzzeek
1 month ago
> real threads, no need for multi-processing
parallel downloads don't need multi-processing since this is an IO bound usecase. asyncio or GIL-threads (which unblock on IO) would be perfectly fine. native threads will eventually be the default also.
Indeed, but unzipping while downloading do. Analysing multiple metadata files and exporting lock data as well.
Now I believe unzip releases the GIL already so we could already benefit from that and the rest likely don't dominate perfs.
But still, rust software is faster on average than python software.
After all, all those things are possible in python, and yet we haven't seen them all in one package manager before uv.
Maybe the strongest advantage of rust, on top of very clean and fast default behaviors, is that it attracts people that care about speed, safety and correctness. And those devs are more likely to spend time implementing fast software.
Thought the main benefit of uv is not that it's fast. It's very nice, and opens more use cases, but it's not the killer feature.
The killer feature is, being a stand alone executable, it bypasses all python bootstrapping problems.
Again, that could technically be achieved in python, but friction is a strong force.
> Maybe the strongest advantage of rust, on top of very clean and fast default behaviors, is that it attracts people that care about speed, safety and correctness. And those devs are more likely to spend time implementing fast software.
people who have this opinion should use Rust, not Python, at all. if Python code does not have sufficient speed, safety, and correctness for someone, it should not be used. Python's tools should be written in Python.
> The killer feature is, being a stand alone executable, it bypasses all python bootstrapping problems.
I can't speak for windows or macs but on Linux, system pythons are standard, and there is no "bootstrapping problem" using well known utilities that happen to be written in Python.
For the latter point, you are blinded by your own competence.
Bootstrapping a clean python env is the single biggest problem for people that are not daily coding in python.
That's half of the community in the python world.
When you write sqla that's not obvious, because you know a lot. But for the average user, uv was a savior.
I wrote a pretty long article on that here:
https://www.bitecode.dev/p/why-not-tell-people-to-simply-use
We also discuss it with brett cannon there:
https://www.bitecode.dev/p/brett-cannon-on-python-humans-and
But the most convincing argument is to teach python to kids, accountants, mathematicians, java coders and sysadmin.
After 20 years of doing that, I saw the same problems again and again.
And then uv arrived. And they disapeared for those people.
1 reply →