Hi,
In message "Re: If you are unhappy with the direction of Ruby 1.8.7+, respond"
|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.
|
I expect you to be more concrete and specific about minor problems.
Yes, I would like to be more concrete. Unfortunately, it's some time
since 1.8.7 was released and I do not have any of the code at hand.
As far as I know:
* Rails had problem from method name conflict. This was
unfortunate, caused by Rails' fragile monkey patching and our bad
for lack of thorough Rails test before 1.8.7. It is fixed now.
This was well understood from the start, and easy enough to fix.
Again, if the many methods added were optional such situations could be avoided.
* erb also had a bug in 1.8.7 initial release. It is fixed now.
* two other problems are reported (SWIG and hash order), and as far
as I understand, they both contain bugs that haven't disclosed for
1.8.6 by accident.
The SWIG problem was until recently described as something like "many
C extensions fail". I personally don't care as I don't use them but I
would not upgrade to 1.8.7 a package in a system distriution be cause
of this.
It's obviously a change of expectations on which many C extensions
rely. While this might be a step towards making the GC "more correct"
the old behaviour was "safe enough" and the fix is not localized into
replacing a single bit - many C extensions will have to change so this
might not be considered minor.
I consider them minor and not being worse than previous releases.
Most of them are addressed already. Am I missing something?
|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.
If compatibility of 1.8.7 is really "not so great":
* if it is fixable, we can fix.
I guess saying this is exactly what the 1.8.7 release was missing at the start.
There were people saying it breaks things, and no obvious progress
towards fixing the issues. When I got 1.8.7 in an overall system
upgrade I also had to modify code which I believed to work on 1.8.6.
* if it is minor, we can upgrade 1.8.7 (or later) whenever we want,
as we did in the past.
* if upgrading is not affordable for enterprisey people (yes, I
understand them; upgrading is costly even when incompatibility is
minor), they can keep using 1.8.6, which is maintained right now.
As EngineYard raised their hands, the maintenance of 1.8.6 will be
kept, even after 1.8.8.
If more evidence of great incompatibility is not shown, I will
consider it FUD, or FUD-like at most, even though I see no bad
intention from anyone.
Yes, the attitude towards 1.8.7 evolved in an unfortunate way.
And I think some of the uncertainty resulted from lack of
communication on part of the core team.
Thanks
Michal