5 ms·
I think this post does a really good job of covering how multi-pronged performance is: it certainly doesn't hurt uv to be written in Rust, but it benefits immen
by woodruffw 10mo ago
I think this post does a really good job of covering how multi-pronged performance is: it certainly doesn't hurt uv to be written in Rust, but it benefits immensely from a decade of thoughtful standardization efforts in Python that lifted the ecosystem away from needing `setup.py` on the hot path for most packages.
- yjftsjthsd-h 10mo agoI think a lot of rust rewrites have this benefit; if you start with hindsight you can do better more easily. Of course, rust is also often beneficial for its own sake, so it's a one-two punch:)
- woodruffw 10mo agoCompletely agreed!
- pxc 10mo agoSuccinctly, perhaps with some loss of detail: "Rewrite" is important as "Rust".
- s_ting765 10mo agoRust rewrites are known for breaking (compatibility with) working software. That's all there is to them.
- pxc 10mo agoIn Python's case, as the article describes quite clearly, the issue is that the design of "working software" (particularly setup.py) was bad to the point of insane (in much the same way as the NPM characteristics that enabled the recent Shai Hulud supply chain attacks, but even worse). At some point, compatibility with insanity has got to go. Helpfully, though, uv retains compatibility with newer (but still well-established) standards in the Python community that don't share this insanity!
- s_ting765 10mo agoMy gripe is with Rust rewrites. Not uv. Though I very much think uv is overhyped.
- eduction 10mo agoActually uv retains compatibility with the setup.py “insanity,” according to the article: > uv parses TOML and wheel metadata natively, only spawning Python when it hits a setup.py-only package that has no other option The article implies that pip also prefers toml and wheel metadata, but has to shell out to parse those, unlike uv.
- pxc 10mo agoUgh. Thank you for the correction. :(
- eduction 10mo agoI mean, you’re on the right track in that they did cut out other insanity. But unclear how much of the speed up is necessarily tied to breaking backward compat (are there a lot of “.egg” files in the wild?)
- zahlman 10mo ago> (are there a lot of “.egg” files in the wild?) Not as far as I can tell, except perhaps in extended-support legacy environments (for example, ActiveState is still maintaining a Python 2.x distribution).
- Levitating 10mo ago> I think a lot of rust rewrites have this benefit I think Rust itself has this benefit
- glaslong 10mo agoSomeone once told me a benefit of staffing a project for Haskell was it made it easy to select for the types of programmers that went out of their way to become experts in Haskell. Tapping the Rust community is a decent reason to do a project in Rust.
- steve_adams_86 10mo agoI'm my experience this is definitely where rust shined. The language wasn't really what made the project succeed so much as having relatively curious, meticulous, detail-oriented people on hand who were interested in solving hard problems. Sometimes I thought our teams would be a terrible fit for more cookie-cutter applications where rapid development and deployment was the primary objective. We got into the weeds all the time (sometimes because of rust itself), but it happened to be important to do so. Had we built those projects with JavaScript or Python I suspect the outcomes would have been worse for reasons apart from the language choice.
- zahlman 10mo ago> having relatively curious, meticulous, detail-oriented people on hand who were interested in solving hard problems.... Had we built those projects with JavaScript or Python I suspect the outcomes would have been worse for reasons apart from the language choice. I genuinely can't understand why you suppose that has to do with the implementation language at all.
- KPGv2 10mo ago> I genuinely can't understand why you suppose that has to do with the implementation language at all. Languages that attract novice programmers (JS is an obvious one; PHP was one 20 years ago) have a higher noise to signal ratio than one that attracts intermediate and above programmers. If you grabbed an average Assembly programmer today, and an average JavaScript programmer today, who do you think is more careful about programming? The one who needs to learn arcane shit to do basic things and then has to compile it in order to test it out, or the one who can open up Chrome's console and console.log("i love boobies") How many embedded systems programmers suck vs full stack devs? I'm not saying full stack devs are inferior. I'm saying that more inferior coders are attracted to the latter because the barriers to entry are SO much easier to bypass.
- psyclobe 10mo agoGot it so, because it is rust it is good.. 10-4!!