[Haskell-cafe] Fwd: Backward compatibility

Simon Marechal simon at banquise.net
Sun May 5 13:25:35 CEST 2013


On 05/05/2013 11:41 AM, Adrian May wrote:
> Half a decade is nothing to most programming cultures.
> A newbie looks for sample code and blames himself if he can't get it
> working.

I ran into this kind of trouble when I was starting to learn Haskell. I
had error messages like that :

test.hs:1:8:
    Could not find module `List'
    It is a member of the hidden package `haskell98-2.0.0.2'.
    Use -v to see a list of the files searched for.

I then proceeded to figure how to include this haskell98 package, and
later ran into other problems. Perhaps this message could be hard coded
to tell the user that this is deprecated code, and he should use
Data.List instead. This certainly would be friendlier, but I am unsure
it would change anything about adoption:
* all major tutorials are up to date
* almost everyone understands the concept of bit rot, and, as it has
been demonstrated, it is much more manageable than with other
"production ready" languages
* google works fairly well

Everything changes all the time in the javascript and ruby world, but
this doesn't seem to reduce adoption.

There have been several people pointing out the case of PHP. I would say
that with an ageing codebase, you can't upgrade your distribution
because the little things that change will break your code in places you
don't even imagine. With a 10 years old Haskell program, you can choose
to upgrade the codebase, or you can stick with your old binary.

> it would be cool if people could tell the compiler to behave as it did
> half a decade ago when the code was written so people could prove to
> themselves that the code works in principle, then they could clock the
> compiler forward little by little, reading its release notes along the way.

But how would that work ? You would need some archaeologist to tell you
how old the code is so that you could give the proper flags to the
compiler. But if you know how to do that, then you know exactly how to
fix the code.

But you already can do this all by yourself : just install every compilers.



More information about the Haskell-Cafe mailing list