------art_54305_14420049.1158568197625
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 9/17/06, Joe Ruby MUDCRAP-CE <joeat303 / yahoo.com> wrote:
>
> Francis Cianfrocca wrote:
> > I would stress that strict back-compatibility,
> > even with bugs, is generally the way to go (except for bugs that open
> > security holes)
>
> Big -1 there. BC with bugs? Ixnay.


We've been talking about Java which is of course offtopic in a Ruby forum
(but the OP started it by suggesting that Java may be more back-compatible
than Ruby for *no other reason* than it has a large company behind it). As I
noted above, Sun's "guarantee" (which is really just a representation) that
neither they or their licensees will break back-compatibility includes the
disclaimer "unless we fix a serious bug."

A bug that opens a security hole must be fixed asap. If the fix breaks
existing code, that's life in the big city.

A change which breaks existing APIs (either by the violent means of changing
the method signature or the insidious means of changing its behavior) is
hard to characterize as a bug fix, as far as I'm concerned. You have
published a behavior which people now depend on, and if you decide it should
have been designed differently, well, the design flaw is your
responsibility. If you own the API (as Sun does Java), then you're free to
change it, but NOTHING infuriates developers like having working code
suddenly break for no discernible reason. You lose a lot of good will by
doing this, whether you call it a bug-fix or not. Sun, to their credit, well
understand this, and have kept this kind of thing to a minimum over the last
few years. Microsoft (whose entire business depends on locking developers to
their platform) understand this even better than Sun.

To me, a bug fix is when you change the behavior of something to conform to
the published description of how it was supposed to work, not because you
realized you left out a feature. Ruby has done its share of breaking older
code in order to improve APIs and add features, especially in the libraries.
But to go back to the original point, I don't think it's been any worse than
Java.

------art_54305_14420049.1158568197625--