From: Michal Suchanek Date: 2009-07-02T18:58:04+09:00 Subject: Re: Best OS packages for Ruby? 2009/7/2 Fabian Streitel : >> I think people would be asking for a deprecation period > > I never said you shouldn't do that. I just said you shouldn't go > around complaining about how your Ruby 1.0 script isn't gonna > work with 1.9 (*warning, exaggerated statement*). > Deprecation periods are of course good. But I just don't see why > people keep nagging about how 1.8.7 is sooo bad when mostly all > it did was add new features. These features alone are a problem. If you write your shiny new script on ruby 1.8.7 and give it to somebody with ruby 1.8.6 then it's very likely it won't work unless you were very careful and did throughout testing on earlier rubies. 1.8.7 adds a bunch of simple and useful utility functions which you ca easily emulate (an which you have most likely written in one form or another for your earlier code) but there is no warning in the docs or a runtime compatibility check or something. So instead of writing the utility functions as you did in 1.8.6 you will have to write a check that the method you want is already present, and only after you find out about the additions. Not exactly an improvement. > >> and not suddenly in a swift move that can sometimes >> to a large company be really cost-ineffective. > > If you sell a product that's based on Ruby, where's the problem > of shipping it with the ruby version it was developed with? At least > if your company is large. Ruby really isn't that > big a package? There are even tools that do this for you, if I > remember correctly (at least for Win32 I think). > > Sure that statement may be true for big stuff like Java and its standard > library, but the 5 Megs of Ruby code you'd have to package up can't > be that much a burdon, can they? > It may be the standard way on Windows or OS X but on Linux/UNIX you send the script and expect it to tun on any system with reasonably recent interpreter of your favourite language. And even on Windows it may be handy to send a few kilobytes of script instead of a few megabytes of interpreter+script package. The stuff about 1.8.7 breaking old stuff probably arose from the changelog being somewhat hard to read and ruby 1.8.7 reporting some arcane errors related to new features in some cases that were already broken on 1.8.6. Many people were probably misled by these errors and thought that the code broke because of the new features while it was already broken. Due to the dynamic nature of ruby it can easily happen that some state that was never reached before would by chance occur just after upgrade to 1.8.7. It would be much nicer if the new features were released separately as a package that could be installed on top of both 1.8.6 and 1.8.7 for people to test and enjoy when they are interested without the need for the stuff to be present at all times. Unfortunately it was not done that way so you get all or nothing. Thanks Michal