On Jan 31, 2005, at 10:16 PM, Eric Hodel wrote:

> On 31 Jan 2005, at 18:21, Francis Hwang wrote:
>> What about compatibility with previous versions in the std lib? I 
>> wrote a Ruby-driven e-commerce site in 2002, using Ruby 1.6, and 
>> those versions of Marshal and Eruby. When the host upgraded to 1.8.2, 
>> the site fell down like a ton of bricks, because those libraries were 
>> massively backwards incompatible. Luckily, I was available to fix it 
>> posthaste, but if I had been, say, on vacation, or no longer working 
>> with that company, they would have been screwed.
>
> Marshal format has always been tied to Ruby version, but care has been 
> taken to make it as compatible as possible.  Unfortunately, a good 
> alternative format for persisting data didn't exist for very long in 
> the 1.6 series.

Sure. And since I'm not smart enough to have programmed the Marshal lib 
in the first place, I'm not complaining. But I'm an exception, as are 
most of the regulars here on ruby-talk. There are, believe it or not, 
lots and lots of programmers who really don't want to spend a lot of 
time managing dependencies and worrying about upgrades. Some of these 
programmers, in fact, almost never compile from source or have access 
to root on the machines they use. And they have no way of looking into 
Ruby and its standard libs, and knowing what parts of the ever-growing 
API will work in a year, and what will break without warning, and so 
some of them are going to keep muddling away in Java or Perl or 
whatever.

Now, maybe that's a price we're willing to pay to keep up a certain 
rate of progress; maintaining backwards compatibility certainly can 
slow down development and API improvement. But if that's the case, we 
should be ready for Ruby to stay a fringe language. And we should pay 
other programmers the respect of letting them know that when they're 
considering getting into Ruby.

Francis Hwang
http://fhwang.net/