I am having two problems with Haskell, both related to the installation of large programs. I guess that Haskell has two popular installation tools, stack and cabal. Both tools take a very long time to install, require a lot of help from the user and often end in failure, which leads me to the second problem:
It seems that Haskell developers don’t pay much attention to backward compatibility. If somebody has developed a large application through a past release of GHC, one can bet that it won’t compile with the present tool chain. I came to Haskell due to three programs, those being pandoc, the text editor yi and JHC. I will talk about my experience with these three applications.
I never had problems with installing pandoc. Besides this, the person who is developing this very useful and interesting tool started a binary distribution, which works like a breeze. So let’s take pandoc out of the discussion.
I would like to have an Emacs like editor that I could script in a language other than Emacs Lisp (elisp). I found three, which are lem (scripts in Common Lisp), remacs (scripts in Rust) and, of course, yi (scripts in Haskell). Common Lisp has two installation tools, roswell and quicklisp. These tools are very fast (a few seconds for a large package), with a very low failure rate. Therefore, I was able to install lem in a very short time. Common Lisp has many interesting packages. For example, when I decided to play planet discover, I found a Fortran-2-Lisp translator that put all vintage astronomy software into Lisp. Other programs in Common Lisp: Maxima Computer Algebra, lem text editor, ACL2 theorem prover, Cyc, PTC CAD/CAM, SKILL VLSI CAD, etc. As for Haskell, when I installed yi a couple of years ago, the installation was uneventful, in Macintosh, Windows and Linux. However, when I tried to install it with cabal two weeks ago, the process took a very long time, and ended in failure. I switched to stack, and it also ended in failure. I wrote to a stack discussion group, where Snoyman told me to use an older version of ghc, which I did, but stack could not install yi with the old compiler either.
When I came across JHC a few years ago, I thought it was interesting because it could cross compile to the iPhone. The history of the yi editor repeated itself in the case of JHC. I wonder whether the Haskell community knows of or could find a way of preventing Haskell software from becoming obsolete, as well as faster and easier to install. I imagine two ways of achieving these goals: (1) Backward compatibility; (2) An unchanged nucleus to which extensions and improvements to the language could be translated automatically, something easy to use, like Lisp macros and read-tables.