foldable flexible bridges (putting foldable+traversable in prelude) Re: Burning bridges

amindfv at gmail.com amindfv at gmail.com
Wed May 22 15:18:05 CEST 2013



El May 22, 2013, a las 1:12 AM, Mark Lentczner <mark.lentczner at gmail.com> escribió:

> Ay yi yi!
> 
> A few thoughts on all of this:
> 
> 1) Rather than guessing how much will or won't break - would some please just run this change (F/T in Prelude) over Hackage and do some analysis and stats? Sure, it doesn't represent all code - but it's a good start.
> 

Agreed!

> 2) That there are so many Prelude replacements... and that none of them are worth it enough to induce people to add the two lines of code it takes to use 'em.... tells me that they don't have enough value.
> 

Other reasons are a) not widely known - no Haskell book mentions them, and b) introduction of another package dependency (a major concern for me personally)

> 3) Stability is very important to adoption of a language. People are very influenced by their first impressions of a system. We seem perilously close to "death by continuous little paper cuts" here: I saw the catch debacle snag tons of people and projects in tiny hiccups. If you were a newcomer to Haskell (experienced engineer or no) and you ran into this, I bet it was a turn off.
> 
> In generaly I'm against the constant evolution of Haskell. Revising the language every year (or even every two), and revising the core libraries and modules and Prelude piecemeal seem to me like recipes for avoiding success. Now that functional programming is gaining some notice in the wider engineering world, now would be the time to have the most stable, most "always just works", most reliable language of the lot. That probably means stability trumps warts. Not forever, but it means avoiding a constant stream of hiccups.
> 

This is a valid concern, but I can easily imagine the rationale of "functional programming is gaining popularity - don't scare people away now" preventing us from making changes for several years. 

A "continuous improvement" model of small changes we all adapt to could be less daunting to beginners. 

Also, the case has been made for beginners, but what about "intermediates"? Trying other data structures will be much less foreign if they've been raised on Foldable and Traversable.

> I think we'd be better served by "chunking" this stuff up over several years - and releasing it in well defined sets.
> 
> 4) My reaction to the "monomorphism helps newbies" argument is always the same: Well then, let's just fix the error messages! 
> 

Agreed.


Tom


More information about the Libraries mailing list