From: Michal Suchanek Date: 2009-02-13T16:41:25+09:00 Subject: Re: If you are unhappy with the direction of Ruby 1.8.7+, respond On 13/02/2009, Yukihiro Matsumoto wrote: > Hi, > > In message "Re: If you are unhappy with the direction of Ruby 1.8.7+, respond" > on Fri, 13 Feb 2009 02:10:41 +0900, Stefan Lang writes: > > |What do you mean with "Hash ordering"? > |An order for Hash instances? Hash doesn't define a <=> method. > |Or iteration order of Hash elements? That wasn't defined > |in 1.8.6 (I don't know if it is in 1.8.7). > > I think he relied on the version/implementation specific behavior, so > 1.8.7 HELPED to find a bug in HIS code, unless I am wrong in any ways. > Any other example of 1.8.7 incompatibility? > > I am not happy with FUD-like attitude against 1.8.7. From my point of > view, 1.8.7 is a good release with unfortunate beginning. There are > slight incompatibility, but every past releases also had some sort of > incompatibilities as well. I'd like to use 1.8.7 to write new 1.8 > code. I'm sorry if I personally added to this kind of view. Unlike earlier releases I had some minor problem with code not running after upgrade to 1.8.7, and it seemed many other people have similar experience. While acceptable for your own code it is not good for code you distribute to somebody else. Back then nobody stepped up and said that if code working on 1.8.6 broke it is a bug so I just left it at that - the compatibility seemed to be not so great. I have not experienced the same with earlier versions. There was some issue in the past when a bug in the interpreter was fixed and it broke a C extension that relied on the bug and was widely used but it was a single, well understood issue. The real indisputable failing of 1.8.7 is the introduction of many new convenience methods into the core classes. If these were separated into an extension (perhaps one which could be built for 1.8.6 as well) which was not automatically loaded it would be fine and useful to have them. As things are now the new methods are often convenient and somebody coding on 1.8.7 would likely use the new methods making the code unusable on 1.8.6 and earlier. Been there, done that - as many people did. Thanks Michal