Ruby is the brainchild of Yukihiro Matsumoto, also known as "Matz" to the Ruby programming community, and was publicly released as an open source project in 1995. Ruby is most well known for its purity as an object oriented programming language. It is heavily influenced by the Perl scripting language, since the author's original intent was to create a replacement for Perl with greater power, and stricter adherence to the object oriented programming principles made popular by the Smalltalk language.

In Ruby everything is an object, not just explicitly defined class objects like those found in C++. In addition Ruby supports many of the most powerful object oriented programming idioms such as:

  • Metaclasses
  • Closures
  • Iterators
  • Heterogeneous collections

    Unlike some other pure object oriented programming languages, Ruby has extensive libraries that offer the functionality required by real world applications. For example:

  • Full regular expression support
  • A wide spectrum of integration functions that give access to the operating system that is running Ruby.
  • A solid debugger with a full set of features such as breakpoints based on conditional expression evaluation, and variable monitioring and inspection facilities.
  • An interpreter shell that allows you to evaluate and experiment with the language by entering code in real-time.
  • Automatic garbage collection
  • Multiple threads of execution (multithreading)
  • Exception handling

  • Japan currently has the largest community of Ruby users, but there is a vast and growing number of Ruby enthusiasts in Europe, USA, and throughout the rest of the globe.

    Ruby On Rails is the driving force for much of Ruby's recent growth in popularity. It is a web application development framework that eliminates many of the tasks involved in creating web applications; especially those of a repetitive nature. To use Ruby On Rails you must adopt the Model-View-Controller paradigm which separates an application into three different areas of functionality. This can be a difficult transition for some developers, but the result is an application that is easier to maintain due to code that is more cleanly separated along lines of use.

    Note: Ruby is a rapidly evolving language that frequently changes dramatically; even its terminology is constantly being updated and expanded. If you purchase any ruby books, especially those dealing with Rails, make sure you find one that has an electronic form that is being maintained; a good example is the reknowned "Agile Web Development with Rails" book by Dave Thomas which has a PDF form that is constantly being revised. For example, one of the latest additions to the Ruby On Rails paradigm is database migrations. This is a structured way for isolating revisions to a database scheme in a separate module; a module that contains methods for upgrading or retrograding to a new or older version of the database structure respectively.

    External Links

  • The Ruby Edge - Digg style community driven news site
  • - The Official web site for Ruby
  • Ruby Garden - The Main Ruby Wiki
  • RubyForge - The host for many popular open source Ruby projects
  • Programming Ruby - A complete online book in HTML format
  • Ruby On Rails - official web site