Re: [Haskell-cafe] Haskell-Cafe Digest, Vol 217, Issue 16

>>* Haskell's big problem right now is adoption. * Heh heh, this sentence is multi-ways ambiguous. As in the 'problem' is that there's too many adopters/the wrong sort of people trying to adopt Haskell. The 'problem' is that Haskell is not keeping to its objective to "avoid success at all costs". > I'm not quite sure this is a problem. Haskell and its libraries are designed around math concepts, as opposed to CS concepts (semigroup vs IConcatenable). Learning it all but requires learning some algebra as well, thus a lower adoption rate is expected. Thank you for saying that out loud. I've been feeling for some time that GHC is getting harder to use. You're telling me that because I don't get Category Theory you want to throw me out of using Haskell. People who are allergic to Lambda-calculus are already excluded. So the ostensible difficulty on these threads: that the documentation is unhelpful, is not the problem at all. In fact it's deliberate that the docos are exclusionary. As part of this grand plan, Viktor is deliberately making the Libraries docos impenetrable. (By which I mean: the style is clear, but the material is unlearnable. Apparently I need to know what is an endomorphism before I can write a Foldable instance) And that explains a paradox: I learnt Haskell over a decade ago. There was far less intro material; and certainly no store of StackOverflow questions/answers. It should have been more difficult to learn than today. But I don't remember learning being as difficult as the claims on this thread. (Memory can deceive, I guess.) Back then Haskell was a much smaller, simpler language. There was less that could go wrong at the type level; and the error messages didn't keep recommending to switch on bamboozling features that (as it turned out) made the difficulty harder. Don't go claiming that if I switch off those features today it's as if I was still using H2010. Simply not true. I know that's not true, because I can still go back and use Hugs, or use GHC v7.10 (vintage ~2015), and have a much more pleasant/less bamboozling experience. Then "Haskell's big problem right now" is (depending on your point of view) either GHC or too many of the wrong adopters. And with Dependent Types coming along GHC is going to get a lot worse. (Maybe GHC will eventually get through the fog, throw out a load of cruft and become on average as usable as v7.10. I'm not prepared to go through the pain for 5 years to find out. I'll stick with v7.10.)

On Sat, Sep 18, 2021 at 03:35:29PM +1200, Anthony Clayden wrote:
In fact it's deliberate that the docos are exclusionary. As part of this grand plan, Viktor is deliberately making the Libraries docos impenetrable. (By which I mean: the style is clear, but the material is unlearnable. Apparently I need to know what is an endomorphism before I can write a Foldable instance)
I believe I'm owed an apology. The above is inappropriate snark that does not belong on this forum. If we start finger pointing at people driving away participation, perhaps a look in the mirror is warranted. It's not like I took a bunch of extant accessible background material and made it harder to read. There was none there to be found. So my excuse could be that in the worst case if it is doing nothing for you, then just stop reading it and you're no worse off. However, I am not planning to hide behind that. Yes, I slipped up and labeled those particular `b -> b` terms "endomorphisms" without explaining or motivating the use of the term. I should probably have left the term out, or else justified its use (deeper down the rabbit hole, so I doubt you'd go there) by observing that we're transforming the original fold into a fold of function terms under composition, which of course requires these to have the same input and output types, i.e. be "endomorphisms". This is probably how a tiny fragment of that thought process slipped into the final text. Mea culpa, but it is then rather a leap to say "Viktor is deliberately making the Libraries docos impenetrable". I might note that the concept of endomorphisms already appeared in the "Laws" section of the GHC 7.10 documentation (unsabotaged by me) in the form of unexplained "Endo" and "appEndo" terms: https://hackage.haskell.org/package/base-4.8.0.0/docs/Data-Foldable.html Foldable instances are expected to satisfy the following laws: foldr f z t = appEndo (foldMap (Endo . f) t ) z foldl f z t = appEndo (getDual (foldMap (Dual . Endo . flip f) t)) z ... I did (with recent moral support it seems) move the laws section to the end of the docs, precisely because I thought many a reader would find the section more puzzling than helpful. Though I likely slipped up more than once by using some avoidable jargon, this seems a rather thin justification for condemning the entire effort as deliberate obfuscation. The goal of the writeup is to cover topics to which mere synopses don't do enough justice. Somewhat advanced material is properly in scope. No writeup will cater to all audiences, sorry it did not work out for you. -- Viktor. P.S. I'll elide "endomorphism" for the next update. If you'd like to write some text from a more approachable perspective that augments or replaces the current text, by all means open an MR in gitlab, and if it does a better job, I'll be among those cheering for it to be merged.

On Sat, Sep 18, 2021 at 02:03:11AM -0400, Viktor Dukhovni wrote:
On Sat, Sep 18, 2021 at 03:35:29PM +1200, Anthony Clayden wrote:
In fact it's deliberate that the docos are exclusionary. As part of this grand plan, Viktor is deliberately making the Libraries docos impenetrable. (By which I mean: the style is clear, but the material is unlearnable. Apparently I need to know what is an endomorphism before I can write a Foldable instance)
I believe I'm owed an apology. The above is inappropriate snark that does not belong on this forum. If we start finger pointing at people driving away participation, perhaps a look in the mirror is warranted.
Fully agreed. Base has lacked important documentation for *years*. Anyone could have volunteered to improve it during those years but no one did. In the end it was Viktor who made the effort. He deserves our thanks and support and constructive suggestions for futher improvements. Thanks Viktor! Here's to continued collaborative improvement of our ecosystem.
If you'd like to write some text from a more approachable perspective that augments or replaces the current text, by all means open an MR in gitlab, and if it does a better job, I'll be among those cheering for it to be merged.
Indeed. Tom

I should have said earlier that while I disagree with Viktor about typeclass laws, I'm very much in favor of his goal of making the documentation more approachable. On Sat, Sep 18, 2021, 3:30 AM Tom Ellis < tom-lists-haskell-cafe-2017@jaguarpaw.co.uk> wrote:
On Sat, Sep 18, 2021 at 02:03:11AM -0400, Viktor Dukhovni wrote:
On Sat, Sep 18, 2021 at 03:35:29PM +1200, Anthony Clayden wrote:
In fact it's deliberate that the docos are exclusionary. As part of this grand plan, Viktor is deliberately making the Libraries docos impenetrable. (By which I mean: the style is clear, but the material is unlearnable. Apparently I need to know what is an endomorphism before I can write a Foldable instance)
I believe I'm owed an apology. The above is inappropriate snark that does not belong on this forum. If we start finger pointing at people driving away participation, perhaps a look in the mirror is warranted.
Fully agreed. Base has lacked important documentation for *years*. Anyone could have volunteered to improve it during those years but no one did. In the end it was Viktor who made the effort. He deserves our thanks and support and constructive suggestions for futher improvements. Thanks Viktor! Here's to continued collaborative improvement of our ecosystem.
If you'd like to write some text from a more approachable perspective that augments or replaces the current text, by all means open an MR in gitlab, and if it does a better job, I'll be among those cheering for it to be merged.
Indeed.
Tom _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
participants (4)
-
Anthony Clayden
-
David Feuer
-
Tom Ellis
-
Viktor Dukhovni