A generic, reflexive and dynamic programming language, Ruby is object-oriented and was created in 1995 in Japan.
Ruby tends to be a balanced language because it was created from parts of Perl, Smalltalk, Eiffel, Ada, and Lisp, to create a new programming language that bets on the balance between functional and powerful programming.
Ruby can be seen as a mirror to life, simple in appearance but with an added complexity inside, similar to a human, or like the Ying and yang balance.
With a devoted fan-base of programmers worldwide, Ruby was integrated into the mainstream working environment by active groups created in large cities on the globe, with sold-out events and Ruby-Talk, the most active discussion list, numbers over 300 messages daily.
According to the TIOBE index, which indicated the speed on how fast programming languages grow, Ruby takes a comfortable number eleven worldwide. With such a healthy growth, Ruby will be in the top 10 programming languages in no time. Much of this success is owed to the Ruby on Rails web framework, a platform that makes it easier to build web apps in a fast and efficient way.
Ruby on Rails is derived by David Hansson from Basecamp, a tool created to ease project management. Rails was first launched as open-source software in 2004 but which became popular in 2005. By 2006, Apple decided to distribute Ruby on Rails together with Mac OS 10 Leopard, released in 2007.
Ruby on Rails includes tools that simplify development procedures such as improvisations that can automatically build the streams from the models and visualizations needed to create a simple web page.
Ruby on Rails is separated into several packages:
- ActiveRecord is a relationship-object-type binding system for database access;
- ActiveResource facilitates web services;
- ActionPack
- ActiveSupport
- ActionMailer
Before the launch of version 2, Rails also included the Action Web Service package that was replaced by ActiveResource. In addition to standard packages, developers can create plug-ins to expand existing packages.
With version 2.0, Ruby on Rails offers both HTML and XML as output formatting. The latter is possible due to RESTful web services. Version 3.0 which will be released soon will require Ruby version 2 to work.
Ruby possesses a plethora of other features, including the following:
1. Ruby can capture exceptions, such as Java or Python, to facilitate error handling.
2. Ruby has a truly residual memory-marker and sweeps memory collector for all Ruby objects. There is no need to keep reference counters in external libraries.
3. Writing C extensions in Ruby is more comfortable than in Perl or Python, having a very stylish API to call Ruby from C. It shows the way Ruby encapsulates software to be used as a scripting language. A SWIG interface is also available.
4. Ruby can dynamically load extensions libraries if the operating system allows it.
5. Ruby has independent OS threads. So, for all the platforms running Ruby, they will also have multi-threading, regardless of the operating system.