
On Fri, May 03, 2013 at 03:35:08PM +0100, Ozgur Akgun wrote:
Hi,
On 3 May 2013 11:43, Tobias Dammers
wrote: PS The proposal to fix Functor => Applicative => Monad has patches attached for GHC and base, but the backwards compatibility bogeyman always seems to trump something that will break a lot of code.
This kind of "breaks everything" changes would require something similar to what Python is doing with the 2 -> 3 transition, and considering how painfully slowly it is progressing there, I understand perfectly well why people don't want to go there.
There is one very big advantage in the Haskell-world though. Most of the struggle will be at the compile time. The biggest headache caused by the Python 2 -> 3 transition is how you get a runtime error 2 weeks after you think you've fixed everything!
(Yeah, I know code coverage analysis is an option when you don't have static type checking, but ...)
Well; this is an additional problem that comes with the pragmatic choice for a language that doesn't believe in type checking and compile-time guarantees, but I think it is largely orthogonal. At least theoretically, you could have 100% test coverage, which would put the Python project in the same situation as the Haskell one (except that the tests themselves would also have to be converted...) The problem I'm talking about, though, is that such a change would split the ecosystem in two (say, "Traditional Haskell" and "Functor-Correct Haskell"), just like the 2/3 separation is all over the Python ecosystem and causes all sorts of headaches. "Should I be using Python 2 or 3" is not a question that has a simple answer, and that *is* a problem.
Cheers, Ozgur
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe