All Topics  
Ruby MRI

 

   Email Print
   Bookmark   Link






 

Ruby MRI



 
 
Matz's Ruby Interpreter or Ruby MRI is the reference implementation of the Ruby programming language
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
. As there is currently no specification of the Ruby language, the MRI implementation is considered the de facto reference.

lass="link1" onMouseover='showByLink("m3091393",this)' onMouseout='hide("m3091393")'href="http://www.absoluteastronomy.com/topics/Yukihiro_Matsumoto">Yukihiro Matsumoto
Yukihiro Matsumoto

is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference implementation, Ruby MRI....
 started working on Ruby on February 24, 1993, and released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
 programming language.

As of May 2008, the latest stable version is 1.8.7.






Discussion
Ask a question about 'Ruby MRI'
Start a new discussion about 'Ruby MRI'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Matz's Ruby Interpreter or Ruby MRI is the reference implementation of the Ruby programming language
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
. As there is currently no specification of the Ruby language, the MRI implementation is considered the de facto reference.

History

Yukihiro Matsumoto
Yukihiro Matsumoto

is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference implementation, Ruby MRI....
 started working on Ruby on February 24, 1993, and released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
 programming language.

As of May 2008, the latest stable version is 1.8.7. Ruby 1.9.1 was released in January, but it is considered a development release. The main developers have thrown their weight behind the virtual machine provided by the YARV
YARV

YARV is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada. The name is an acronym for Yet another Ruby VM....
 project, which was merged
Merge (revision control)

Merging is the act of reconciling multiple changes made to different copies of the same file. Most often, it is necessary when a file is modified by two people on two different computers at the same time....
 into the Ruby source
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 tree on 31 December 2006, and released as part of Ruby 1.9.

The 1.8 branch is still maintained, and 1.8.7 preview releases have been released since April 2008. This version will provide bug fixes, but also Ruby feature enhancements.

Licensing terms

The Ruby interpreter and libraries are distributed disjointedly (dual licensed) under the free
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 and open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 licenses GPL
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
 and Ruby License .

Operating systems

Ruby MRI is available for the following operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s:

This list may not be exhaustive.

Criticism

Version 1.8, the current stable version of the interpreter, has some limitations, which include:

  • Performance -- the Ruby interpreter's performance trails that of comparable languages such as Perl
    Perl

    In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
    , PHP
    PHP

    PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
    , and Python
    Python (programming language)

    Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
    , mainly due to the design of the interpreter: To execute Ruby code, the interpreter builds a syntax tree from the source code and then evaluates the syntax tree directly, instead of first compiling it into more efficiently executable form.
  • Threading -- the Ruby threading model uses green threads
    Green threads

    In computer programming, green threads are thread that are scheduled by a Virtual Machine instead of natively by the underlying operating system....
     , and its model has some inherent limitations which render it difficult to use or unsafe in some scenarios.
  • Unicode -- Ruby does not yet have native support for Unicode
    Unicode

    Unicode is a computing industry standard allowing computers to consistently represent and manipulate Character expressed in most of the world's writing systems....
     or multibyte strings.
  • Backward compatibility -- Ruby suffers from backward compatibility problems.


Ruby 2.0 aims to address all of the aforementioned problems:

  • Performance -- a new, faster interpreter, YARV
    YARV

    YARV is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada. The name is an acronym for Yet another Ruby VM....
    , a virtual machine
    Virtual machine

    In computer science, a virtual machine is a software implementation of a machine that executes programs like a real machine.Definitions...
     which executes bytecode instructions.
  • Threading -- native threads will be used instead of green threads.
  • Unicode -- full support for Unicode strings.


Version 1.9, the codebase which is the development version of 2.0, which was released on 30 January 2008 added Unicode support and significantly improved performance over 1.8.

External links