Ruby (programming language)

Ruby
ParadigmMulti-paradigm: functional, imperative, object-oriented, reflective
Designed byYukihiro Matsumoto
DeveloperYukihiro Matsumoto, et al.
First appeared1995; 29 years ago (1995)
Stable release
3.3.6 Edit this on Wikidata[1] / 5 November 2024; 19 days ago (5 November 2024)
Typing disciplineDuck, dynamic, strong
ScopeLexical, sometimes dynamic
Implementation languageC
OSCross-platform
LicenseRuby License
Filename extensions.rb, .ru
Websiteruby-lang.org
Major implementations
Ruby MRI, TruffleRuby, YARV, Rubinius, JRuby, RubyMotion, mruby
Influenced by
Ada,[2] Basic,[3] C++,[2] CLU,[4] Dylan,[4]
Eiffel,[2] Lisp,[4] Lua, Perl,[4] Python,[4] Smalltalk[4]
Influenced
Clojure, CoffeeScript, Crystal, D, Elixir, Groovy, Julia,[5] Mirah, Nu,[6] Ring,[7] Rust,[8] Swift[9]

Ruby is an interpreted, high-level, general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

Ruby is dynamically typed and uses garbage collection and just-in-time compilation. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. According to the creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, BASIC, Java, and Lisp.[10][3]

  1. ^ Cite error: The named reference Ruby 3.3.0 Released was invoked but never defined (see the help page).
  2. ^ a b c Cite error: The named reference nov2pro was invoked but never defined (see the help page).
  3. ^ a b Cite error: The named reference confreaks was invoked but never defined (see the help page).
  4. ^ a b c d e f Cite error: The named reference bini was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference Julia was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference Burks was invoked but never defined (see the help page).
  7. ^ Cite error: The named reference Ring and other languages was invoked but never defined (see the help page).
  8. ^ Cite error: The named reference rust was invoked but never defined (see the help page).
  9. ^ Cite error: The named reference lattner2014 was invoked but never defined (see the help page).
  10. ^ Cite error: The named reference about was invoked but never defined (see the help page).