3 ms·
As a long time Haskell user (from 1998 - my career started at 1989) and professional Haskell programmer, I should say that Snoyman is quite responsible for what
by thesz 6y ago
As a long time Haskell user (from 1998 - my career started at 1989) and professional Haskell programmer, I should say that Snoyman is quite responsible for what I do not like in Haskell infrastructure.
At 1998, Haskell was a joy to play. At 2008, it was still a joy to play - I really played through ghci (interpreter) implementing MIPS core. And, later, implementing a eDSL that can compile Haskell description of MIPS interpreter into VHDL.
I also ghci'd through VHDL compiler prototype.
At about 2009 or so there comes a cabal, a tool that "helps building large application", which took all the fun away.
I had to manually download and put into local version control all packages I needed for a project. I also mandated, being the team lead, that we do not use cabal packages, we use stable sources of packages downloaded into our version control for easy inspection and problem fixing.
That was my last attempt to bring fun (not "fun" as in "functional", but "fun" as "joy to play with") into my programming duties.
Then there was a stack by Snoyman. It was purported to bring easiness back into cabal-based Haskell world of building applications. The problem is that easiness does not equal joy. You can use Roomba with easiness yet Roomba mopping floor would give you any resemblance of joy first one or two times it works on your command.
That stack thing did not brought back the joy of use of Haskell. It did not provided you with ALL sources (only interface package authors intended) for you to consume, play and learn. It was all that boring cabal all over again.
He was able to fix that - he had the power. He just does not care about learning from other's code, I guess.
Me, on contrary, I do not have power there. But I have my goals set to bring the joy back into Haskell programming.
And now let me somewhat relate that with the article.
The "partiallness" of functions he referred there quite often, can be learned, through REPL interpreter and often quite useful. I used partiality quite fruitfully in development of the MIPS core I mentioned above - and yes, I was in full REPL control of all of my code.
For that fruitfullness, one need not only compiled and installed package(s), but sources. To see, to learn, to modify.
This is where stack by Snoyman fails as miserably as cabal it wanted to replace.
One would see that article as a critique of Haskell. I see a failure to see and acknowledge one's shortcomings.