I am not happy.

Ruby 1.8.7 and Ruby 1.8.8 are attempts to bridge the gap between 1.8.6 
and 1.9, but they change the 1.8 line in much more drastic ways that is 
warranted by a minor version number change. That's one point against them.

A similar approach in the Python community has led to 2.6, 2.7 releases 
stepping toward 3.0, but those are major release version number changes 
and they're only doing them if the community demands them. In this case, 
1.8.7 and 1.8.8 are moving forward whether the community wants them or 
not. Another point against.

Minor version releases should certainly not break things except as 
needed to fix bugs. Ruby 1.8.7 did this initially. They should not add 
entirely new APIs incompatible with other minor releases. They should 
not add new syntax incompatible with other minor releases. Ruby 1.8.7 
does the former, and 1.8.8 syntax backports will do the latter. More 
points against.

I still feel like Ruby 1.9 should have been 2.0. Then 1.8.7 could have 
been 1.9, 1.8.8 could be 1.10, and so on, and people depending on "Ruby 
1.8" to behave like "Ruby 1.8" would not be forced to upgrade.

In general, I don't have any doubt that 1.8.7 and 1.8.8 would be fine 
standalone releases, but making them be minor version number changes 
essentially forces everyone to upgrade eventually, whether they want to 
or not, since Ruby distributors generally don't expect a 0.0.x release 
to be filled with incompatible changes or additions. Ubuntu, for 
example, now installs 1.8.7 by default, so Ubuntu users are now much 
more likely to write code that doesn't work on 1.8.6.

And note also that Ruby core has only a few resources to maintain Ruby 
versions...which means the existence of 1.8.7 and plans for 1.8.8 will 
eventually force 1.8.6 to be abandoned like 1.8.5 and 1.8.4. How would 
you feel about 1.8.6 being EOLed because of 1.8.7 and 1.8.8 taking up 
resources?

- Charlie