Ruby (programming language): Difference between revisions

Content deleted Content added
LittleDan (talk | contribs)
concatenation much faster than += for strings
Fixing Matsumoto link.
Line 8:
Ruby is purely object-oriented: every bit of data is an object, including types that are designated "primitive" in impure languages. Every function is a method. This is similar to Smalltalk but unlike [[Java programming language|Java]]. Every named value (variable name) in a Ruby program designates a reference to an object, not the object itself. Ruby supports [[inheritance (object-oriented programming)|inheritances]] with [[dynamic dispatch]], [[mixin]]s, and [[singleton method]]s. Ruby does not support multiple inheritance, but classes can import modules as mixins. Although Ruby can have procedural syntax, everything in Ruby is an object, in the sense of Smalltalk, not Perl or Python. Anything done in Ruby procedurally (ie. outside of the scope of a particular object) is actually done to the Object primative, modifying all classes and objects so they can use it.
 
The language was created by [[Yukihiro Matsumoto|Yukihiro "Matz" Matsumo|Yukihiro Matsumoto]] on February 24, [[1993]]. The current stable version is 1.8.1. Note that the name is not an [[acronym]]--it is actually a [[pun]] on [[Perl]]. According to the author, he designed Ruby to follow the ''[[principle of least surprise]]'' (POLS), meaning that the language should be free from the traps and inconsistencies that plague other languages.
 
From the Ruby [[FAQ]]: ''If you like Perl, you will like Ruby and be right at home with its syntax. If you like Smalltalk, you will like Ruby and be right at home with its semantics. If you like Python, you may or may not be put off by the huge difference in design philosophy between Python and Ruby/Perl.''