Earlier quoted context omitted.
It's not actually tied to GitHub. If GitHub died tomorrow, they would easily be able to move on and host the packages somewhere else. There's no way to do this without hosting. Also, there is a way to pin a version or commit. Julia for example always stores the exact commit information for all packages in the "Manifest" file. There are also straightforward ways to demand certain versions and package maintainers have…
There will be a mess of dependencies of old projects that depend of projects that have since moved off GitHub, there will be name clashes between GitHub projects and BitBucket projects etc. These ecosystems are very much dependent on GitHub, and if/when anything permanent changes, it will be a mess to move off of it.
Ask HN: Why does every package+module system become a Rube Goldberg machine?
221–222 of 222 posts
Re: Ask HN: Why does every package+module system become a Rube Goldberg machine?
#222Earlier quoted context omitted.
I appreciate Hackage and its lack of garbage, although I think the exclusivity can't scale. I also like Haskell's module system All other aspects of Haskell package management feel unfinished, like "an exercise left to the reader." The lack of polish is astounding. See also: "Why I Don't Code in Haskell Anymore" ( https://www.youtube.com/watch?v=SPwnfSmyAGI ) from TsodingDaily
You don't have to use Hackage. What part is unfinished? Just docs and the verbose CLI? It solves for versions, you can declare native dependencies in various ways, it has multiple solid integrations with Nix (which in turn automatically resolves both Haskell and native deps for you). Also that video is not a compelling source. That guy is just wrong lol. Or, rather, it's just his opinion that seems to be based on the…
Haskell, for my money, is similar to Node.js in that I don't have confidence I could reliably expect the state of Haskell development _today_ to resemble Haskell development 5~10 years from now. There's a cost to falling behind (who wants to work on a Haskell project using 10-year-old conventions?) and there's also a cost to keeping up.
Don't get me wrong, I think it's getting better. Stack is easy enough to learn, Stackage has nice for guarantees on compatibility. Nix solves some issues for deployments, although "multiple solid integrations" is maybe a too-rosy description from my experience... but I don't think that Haskell's ecosystem is in its final form yet. Not in the way that Maven or Cargo feel like they're stupid simple and here to stay.