------ 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--