Roo is a Ruby-based software that enables access to OpenOffice, MS-Excel, and Google Spreadsheets' content. It facilitates extraction, processing, and analysis of data from these applications.
For those who are unfamiliar, Ruby is a general-purpose, dynamic, and reflective object-oriented programming language that boasts syntax as sophisticated as Perl's, with various Smalltalk-inspired features. Originating in Japan in the mid-90s, it was developed and designed by Yukihiro "Matz" Matsumoto. The language is flexible enough to support different programming paradigms, including object-oriented, functional, and imperative, with a dynamic type system and automated memory management. Similar to languages like Python, Perl, Dylan, and CLU, Ruby runs as a single-pass interpreted language in its current official implementation, which is written in C. As there is no specification of the Ruby language, this particular implementation is deemed the de facto reference.
There exist alternative implementations of Ruby language like Rubinius, JRuby, YARV, and IronRuby, each taking different approaches with JRuby providing JIT (Just-in-time) compilation functionality.
Ruby was developed by Yukihiro Matsumoto, who began working on the project on February 24, 1993, and was first released to the general public in 1995. The name "Ruby" was used because of a joke amongst Matsumoto's circle of friends alluding to the name of the Perl programming language. 1.8.6 is the current stable version of the reference implementation as of December 2007.
Aside from the reference implementation, multiple virtual machines are in progress for Ruby, including JRuby, a Ruby port on the Java platform, IronRuby, a .NET Framework implementation by Microsoft, and Rubinius, an interpreter based on self-hosting Smalltalk virtual machines.
All in all, Roo is an exceptional tool for those who need to deal with OpenOffice, Microsoft Excel, and Google Spreadsheets content in their projects. And as a language, Ruby is quite rich, powerful, and easy to learn, and with multiple implementations, it has become increasingly versatile.
Version 1.0.0: N/A