A interpreted *(object-oriented) *(programming language) based on the concepts of _(Smalltalk) while being oriented to command-line processing almost exclusively, so it has a terse punctuation-style syntax with libraries centered around text-processing and Unix shell functionality. It interestingly supports _(continuation)s, although this is not an advertised feature.

Blocks of code can be used as first-level citizens, and standard library makes pervasive use of this. The preferred idiom of iterating over collections uses blocks in combination with a mapping method. This kind of visitor pattern is used extensively in Ruby and Smalltalk code, and usually makes it much easier to read than anonymous inner classes in _(Java) or function pointers in the _(C language), although the relation to proper lexical closures is shaky.

While complex programs are usually easy to write and maintain in Ruby, the dynamic nature and simple implementation of Ruby makes it also quite slow, even when compared to other interpreted languages like _(Python).

<ul class="links">
<li>The _(home page| http://www.ruby-lang.org/).
<li>_(Ruby Garden|http://www.rubygarden.org/), a Wiki and News site.
<li>_(Ruby Central| http://www.rubycentral.com/), a portal.
<li>_(A book on Ruby| http://www.pragmaticprogrammer.com/ruby/index.html).
</ul>