4 ms·
Ask HN: Why do you hate (or love?) your language's package manager?
We're getting ready to design a package manager for Rel, the declarative relational language we're building at RelationalAI (https://relational.ai/). I know that building a package manager is a fraught task, and that people have very strong feelings about their package managers.
Why do you hate yours? What mistakes should we take care to avoid?
Or if you're one of the lucky few blessed with happy package management, what is it you love about yours?
- idiomaticrust 4y agoI've used a few package managers that use json and I'm really glad that cargo uses toml. IMO xml/json/yaml are PITA file formats.
- PaulHoule 4y agoI'd say the file formats are often a red herring. It's easy to conclude that "maven sux" because you can conclude "you can't get from here to there" after a long time looking at inscrutable docs. The thing about Maven is that is is for Java devs and if something is not possible (or easy) to configure in XML you just write a Java class to do what has to be done, pack it up as a maven plugin, then put in a few lines of XML to invoke the class. It's easy peasy but people are still stuck in the "make" mindset whereas maven is like "make" would be if you could program it in C.
- PaulHoule 4y agoMy problem w/ pip is that it is unsound. It's particularly problematic that it works for simple projects and not hard to live with for complex projects with a single dev, but if you have a few freshers working on a complex project you will always be helping them unbreak their builds and sometimes their whole Python installation. The Python community is chasing new shinies that are 98% correct (e.g. Poetry... which you'd think wouldn't be so damn slow) instead of insisting on 100% which is usually cheaper and faster than the interminable process of pushing a bubble around under the rug. I had my own problems w/ conda back in the day but got back into it recently because today you can be up and running w/ transformer models on the GPU in conda in minutes, which is about 3000x faster than it was back in the day. I sketched out a design for a correct package manager for Python that only worked on wheels. Packages based on eggs would have to be built into wheels... It turns out that you pretty much have to do the same thing if you need to install pip packages into a conda installation and have it work 100% of the time.