A year after Ruby 1.9.0 was released, it hasn't seen much use yet. Some of the reasons are incompatibilities with popular libraries or frameworks, and changes in behavior in some areas. David A. Black recently blogged a few small changes in 1.9.x that developers need to be aware of and which might break software in subtle ways. (InfoQ has reported on many of Ruby 1.9's other changes).



Now Ruby 1.9.1, the first stable release, is about to be released. Ruby 1.9.1 RC1 came out a few weeks ago, and RC2 will soon be released. Currently, the final Ruby 1.9.1 is expected in late January.



A stable 1.9.1 is one reason to take a closer look at running at 1.9.x, if only for the speed improvements. Some features, such as Fibers have been used to increase scalability (eg. NeverBlock for database access or I/O) or for workarounds (eg. NeverBlock HTTP library).

Ruby 1.9.x is also the version used for projects adding new features or usage scenarios for Ruby. The recently announced Rhodes framework (Rhodes is now available in version 0.2) for mobile applications uses 1.9.x versions of Ruby on some of the supported mobile platforms.

Another example is MacRuby, which should also soon see another release. MacRuby is based on Ruby 1.9.x, and focuses on tight integration with Objective-C, to the point where object such as Strings are actually Objective-C String objects; this tight integration allows to script Objective-C APIs with little to no overhead, as well as making use of Objective-C's Garbage Collector (the Objective-C GC (Autozone) was recently open sourced).



While JRuby is aiming to support 1.9.x, with full parsing and partial library support already in place in 1.1.6, other implementations (except for MacRuby), still lag behind in 1.9.x support.



What's keeping you on Ruby 1.8.x? What Ruby 1.9.1 features (performance, Fibers, threading changes, encoding changes, etc) are reasons for switching?