From: "Radosław Bułat" Date: 2009-02-11T18:58:54+09:00 Subject: [ruby-core:21985] Re: New hash : syntax for the 1.8 series? On Wed, Feb 11, 2009 at 9:55 AM, Yukihiro Matsumoto wrote: > Hi, > > In message "Re: [ruby-core:21977] Re: New hash : syntax for the 1.8 series?" > on Wed, 11 Feb 2009 10:33:56 +0900, Evan Phoenix writes: > > |This causes massive confusion and doubt about ruby. When a user > |upgrades to 1.8.7 and a significant amount of code begins to fail, > |they worry. When the upgrade to 1.8.8 and discover they've been using > |new syntax that their coworkers don't have, they get worried. > > As for 1.8.7, it was unfortunate to break Rails at the beginning, but > "significant amount" is overrated, as far as I understand. The > problems were Rails design was bit weak for name conflict, and more > importantly, NO ONE ever had tried to check Rails on 1.8.7 RC during > the release candidate time. I had talked with DHH and people behind > REE after that, to ask for help when 1.8.8 will out. We will see less > problems, I hope. > > matz. > But it's only one side of the problem. The other is that with new syntax changes (possibilities to parse 1.9 syntax correctly as mentioned Akinori MUSHA) there possibility to write program in 1.8.8 which won't run either in 1.8.7 and 1.8.6 which is very bad thing. Considering example from Akinori: if RUBY_VERSION >= "1.9.1" # fansastic code for 1.9 making full use of shiny new features else # This part will be removed when you drop 1.8 support. # legacy code that works for 1.8 end This program completely fail (it won't even parse) in 1.8.6 and 1.8.7. From my experience I know that many (if not most) people didn't update 1.8.6 to 1.8.7. If I must be honest I'm very worried and confused with Ruby versioning policy. I can't even imagine what is that "fansastic code for 1.9 making full use of shiny new features" which I *must* use and it should work with 1.8.8 and 1.9.1. Doing so people will migrate to 1.9.1 even slowly because they get message "we backported so many thing from 1.9.1 s you don't have to migrate to 1.9.1 yet". From user perspective I expect that so tiny change in version number gives me almost 100% backwards compatibility and again with Ruby policy it's wrong. And what about other Ruby implementations? I know that it's not problem of Ruby core-team but they should be aware that probably other implementators target 1.8.6 and 1.9.* branches and won't make 1.8.7 and 1.8.8 versions (of course I'm guessing at this point but I can image what amount of work it costs). I could lead to partitioning of community (because people may want to be compatible with other interpreters like JRuby, Rubinius, MacRuby and in nearly future with IronRuby, MagLev). -- Pozdrawiam Rados�aw Bu�at http://radarek.jogger.pl - m�j blog