On Oct 2, 2011, at 12:07 AM, Neil Toronto wrote:

A tad more seriously, if we had a death date for the old one, I could put it in 
the library name. You'd have to put

    (require plot/supported-until-2013-01-01)
I really like this one a lot. -- Matthias


So long as nobody thinks that this is necessarily a best practice for breaking API in the future, IMHO.

In the case of "plot", the API breaks at the time users have to change their "require" form to include this expiration date (and then the API may break a *second* time, on or after that date).

I'd see this as not a best practice, but a one-time deal: for the special case of the "plot" library that few people use, and which library we really want to get rid of because of the C code, combined with a desire to steal the old API's "(require plot)" for the new API.

In the future, we all will have had the benefit of the "plot" experience, which teaches us that API breakage will cause a huge amount of discussion, which costs the developers time/energy/morale before we even get to what API breakage costs users. So we will consider breaking API only when the win is so big that we are willing to endure discussion. I love that discussion can be used not only for collaborative design and problem-solving, but also as itself a painful stick to discourage misbehavior.

By all means, just move forward on getting the new "plot" goodness to the users, however the API migration is done. Learning experience has been achieved.

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

Reply via email to