[Haskell-cafe] [HF-discuss] Do something about Cabal?
Michael Orlitzky
michael at orlitzky.com
Fri Dec 11 19:38:28 UTC 2020
On 12/11/20 10:52 AM, Bardur Arantsson wrote:
>
> Indeed, it's a difficult problem with no obvious solution, but given the
> combinatorial explosion issue, it's probably better to (somehow) leave
> it up to a computer to explore that space rather than humans. :)
>
I'm reminded of the headline from this Onion article:
https://www.theonion.com/no-way-to-prevent-this-says-only-nation-where-this-r-1819576527
To fix dependency hell, you need only not cause it in the first place.
You have to standardize the language and a useful bit of code that you
dub the "standard library." Then anyone writing serious software in your
language has to be careful not to break API compatibility, and to use
semantic/libtool versioning when doing so is unavoidable. That's an O(n
= number of packages) algorithm for detecting breakage because instead
of detecting it in every consumer, you're _indicating_ it once.
This is what separates languages that a few people use to write software
for themselves from the languages that a lot of people use to write
software for others. If you don't cause yourself these problems in the
first place, then you don't need a not-invented-here package manager,
because you can pick up Nix or Gentoo prefix or Anaconda or whatever and
simply plug it in. The same is true of build systems.
On the other hand, if you want to do something that you shouldn't be
doing in the first place (living in Antarctica, climbing Mt. Everest,
using a language that breaks itself on Tuesdays, etc.) then specialized
tools are often necessary to bring the level of difficulty down from
"impossible" to merely "really stupid."
More information about the Haskell-Cafe
mailing list