[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