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/