developed in Japan by Yukihiro Matsumoto (Matz). An interpreted scripting language for quick and easy OOP. It is simple, straightforward, extensible, and portable. It posesses a simple syntax, inspired by EIFFEL and ADA. Also has exceptional handling features, like JAVA and PYTHON, to make it easy to handle errors. Has the ability to add methods to a class, and even to an instance during run-time. Features true closures. Not just unnamed function, but with present variable bindings, a true mark-and-sweep garbage collector. OS independent threading. Thus for all platforms on which RUBY runs, you have multi-threading, regardless of if the OS supports it or not, not even on MS DOS.  Complete, full, pure OOL. Means all data is an object, not in the sense of PYTHON or PERL, but like SMALLTALK.  More elegant than PERL, less parentheses than LISP.  Free, open source.  

Ruby is a language for quick and easy programming. Similar in scope to Perl
and Python, it has high-level data types, automatic memory management,
dynamic typing, a module system, exceptions, and a rich standard library.
What sets Ruby apart is a clean and consistent language design where
everything is an object. Other distinguishing features are CLU-style
iterators for loop abstraction, singleton classes/methods and lexical

Related languages
Ada => Ruby   Influence
CLU => Ruby   Influence
Eiffel => Ruby   Influence
Smalltalk => Ruby   Influence

  • Masato Kiyama "Implementation and Evaluations of Generational Garbage Collection in Object-oriented Scripting Language Ruby" IPSJ Transactions on Programming Vol.42 No.SIG03 - 005 view details Abstract: Object-oriented scripting languages are becoming more and more important as a tool for software development, as it provides great flexibility for rapid application development.Scripting languages have been used for developing small-scale programs, object-oriented scripting languages are also used for developing large-scale programs. n general, memory management is implemented in object-oriented language in order to reduce programmers burden. Garbage Collection is necessary to collect and reuse the unnecessary memory to utilize the memory effectively. Mark-sweep and reference counting are general use among most object-oriented scripting languages. But these method, the ratio of whole execution time to GC execution time will increase as program size increase. In order to reduce program execution time, we introduce generational garbage collection in Ruby. In this paper, we show the method of implementation of generational garbage collection in Ruby, and how efficient that. It can reduce 50´% of total execution time and 92´ of the cost of garbage collecting for our benchmark.