Meta-point: backward compatibility
Chris Smith
cdsmith at twu.net
Wed Apr 23 17:10:50 EDT 2008
On Wed, 23 Apr 2008 22:52:18 +0200, Niklas Broberg wrote:
>> An interesting question. What is the goal of Haskell'? Is it to, like
>> Python 3000, fix warts in the language in an (somewhat) incompatible
>> way or is it to just standardize current practice? I think we need
>> both, I just don't know which of the two Haskell' is.
>
> I would hope it is both. Some changes simply cannot become current
> practice since they would not be compatible with existing code, and the
> only place that such changes *could* be made is in a new language
> version. Like you say, fail in the Monad class is one such issue that
> would not be backwards compatible, and couldn't become a current
> practice without some help. Chicken or egg first?
I don't think I agree that fail in the Monad typeclass is a good example
here, or necessarily that there is a good example.
We should remember that there is a cohesive community of Haskell
programmers; not a bunch of unrelated individuals who never talk to each
other. It's entirely possible to spend some time recommending against
using fail (as many people have been doing), and then eventually remove
it. It doesn't need to break very much. This is working in our favor,
so we may as well use it. IMO, this argues strongly in favor of making
any backward compatible changes incrementally, instead of adopting a
"Python 3000" model of postponing them and then breaking everything at
once.
(This is ignoring technical issues in this particular example; like what
happens when a pattern match fails if there is no fail in Monad. It's
entirely possible that discouraging use is the right answer in this case,
and that removal need not happen. That's beside the point.)
--
Chris
More information about the Haskell-prime
mailing list