3 ms·
The rather small stdlib of Rust is a learning from Python: Python's stdlib really does have "everything and the kitchen sink", but lots of modules will have cav
by majewsky 4y ago
The rather small stdlib of Rust is a learning from Python: Python's stdlib really does have "everything and the kitchen sink", but lots of modules will have caveats like "do not use urllib2, use requests from PyPI instead". The biggest reason for this is that the stdlib has a much stronger backwards-compatibility guarantee than any library, so any bad API choice is set in stone forever until Python decides to do another major version bump. (And we all remember how smoothly the last one went.)
- hyperman1 4y agoI understand very well. The JDK has the same problem. But both are in better shape than the node ecosystem. I have no problems with major libraries, and I understand why rust is sometimes slow to stabilize things, even if ut is sometimes frustrating to see the thing you need in there but not ready for prime time. But minor libraries or deep dependency chains are another thing. So my hope is to have a few big libearies, subscribing to some standard of stability. You can then make an informed choice between the exciting bleeding edge or the boring stable world.
- pornel 4y agocrates.io isn't npm. A lot of mess in npm is specific to npm, Node and JS. I need to rm -rf node_modules regularly. Cargo works every time. Node makes breaking changes regularly and intentionally. Rust releases are checked against all crates-io crates to avoid breaking anything. JS has dynamic typing, monkey patching, and a drama around modules. Rust has very clear and strict library interfaces. Cargo is much more reliable than the npm client. Has lock files that work. Left-pad scenario has been fixed at npm long time ago, and has never been possible at crates-io.
- pjmlp 4y agoAs counterpoint, I can be assured everywhere there is a compliant Python version, I can rely on those features being available. With 3rd party libraries is hit and miss regarding cross platform portability.