Going back to a point I'm sure others have made already... Perhaps you guys have a good sense of how many people would be affected by any incompatibilities in this case?

Most people use "open-output-file" and hash tables, so you wanted to migrate all those people gently somehow. A relatively small percentage of people used mutable pairs, at least outside of textbooks, so a harsh migration path was more acceptable there.

I assume that the Web Server is somewhere between "open-output-file" and mutable pairs in popularity. If the tradeoff costs of backward-compatibility work and moving the platform forward expeditiously are unclear, perhaps you could poll the stakeholders.

Neil Van Dyke wrote at 11/30/2010 01:11 PM:
I don't have any important dependencies on the Web Server right now, but just wanted to add that even small backwards-incompatibilities in PLT/Racket have ruffled feathers of consulting clients of mine in the past.

When there are backward-incompats, it's *much* better that they be detected at compile time. Example: renaming the hash table procedures was an annoyance when code wouldn't compile, but the changes to "open-output-file" and friends to use keyword arguments resulted in much more insidious runtime errors.

(BTW, Not using Typed Racket yet. Large code base that has been evolving since PLT 1xx/2xx.)

When thinking about how you want people to be alerted to incompats, also remember that not everyone reads the release notes. A few times I've seen a programmer install the latest version of PLT to try, which happens to constitute a jump of several versions, and s/he smoke-tests their code with the new version *before* going and reading the release notes for all the intermediate versions. I think that having the platform inform them of incompatibilities through compile-time error messages or compile-time Java-like deprecation warnings gives more confidence in the platform than errors that occur significantly after time T0 in run-time.

--
http://www.neilvandyke.org/
_________________________________________________
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev

Reply via email to