Programmers rejoice – the first stable release of the Ruby 2.0 series, the Ruby 2.0.0, was just announced. In response to the ever widening and diverse demands for Ruby, new features and improvements have been added and in abundance.
Some of the Language-core features include keyword arguments, which lend flexibility to the API design, Module#prepend, which is a new way to extend a class, The UTF-8 default encoding, which makes many magic comments omissible, _dir_, which returns the dirname of the file currently being executed, and A literal %i, which creates an array of symbols with ease.
The built-in libraries for Ruby 2.0.0 also include Onigmo, which is a new regexp engine, Enumerator#size and Range#size, for lazy size evaluation, #to_h, which is a new convention for conversion to Hash, and asynchronous exception handling API. Features of the debug support for Ruby 2.0.0 include Dtrace support, which allows run-time diagnosis in production, and TracePoint, which is an improved tracing API.
Ruby 2.0.0 also has performance improvements which include VM optimization such as method dispatch, Float operation optimization, Kernel#require optimization which makes Rails startup very fast. An experimental addition called Refinements, has also been added to 2.0.0, adding a new concept to Ruby’s Modularity.
Unlike the previous 1.9.0, 2.0.0 is a stable release in spite of the fact that its TEENY is 0. Every library author is recommended to support 2.0.0, as it will be comparatively easy to migrate from 1.9. Documentation improvements have also been added in addition to rdoc for methods and modules. Compared to 60 percent for 1.9.3, 2.0.0 will be approximately 75 percent documented. Ruby 2.0.0 is designed to be compatible with 1.9, and it will be easier to migrate from 1.9 to 2.0. Some applications like Rails and tDiary have also been reported to work on the release candidate version of Ruby 2.0.0.
Edited by Rich Steeves