Paradigm | Multi-paradigm: Object-oriented, imperative, functional, reflective |
---|---|
Designed by | Yukihiro Matsumoto |
Developer | Yukihiro Matsumoto, et al. |
First appeared | 1995 |
Stable release |
2.4.0 / December 25, 2016
|
Typing discipline | Duck, dynamic, strong |
Scope | Lexical, sometimes dynamic |
Implementation language | C |
OS | Cross-platform |
License | Ruby, GPLv2 or 2-clause BSD license |
Filename extensions | .rb, .rbw |
Website | www |
Major implementations | |
Ruby MRI, YARV, Rubinius, MagLev, JRuby, MacRuby, RubyMotion, HotRuby, IronRuby, Mruby | |
Influenced by | |
Ada,C++,CLU,Dylan,Eiffel,Lua, Lisp,Perl,Python,Smalltalk | |
Influenced | |
CoffeeScript, Clojure, Crystal, D, Elixir, Falcon, Groovy, Ioke,Julia,Mirah, Nu, potion, Reia, Rust, Swift | |
|
Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.
According to its creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. It supports multiple programming paradigms, including functional, object-oriented, and imperative. It also has a dynamic type system and automatic memory management.
Ruby was conceived on February 24, 1993. In a 1999 post to the ruby-talk mailing list, Ruby author Yukihiro Matsumoto describes some of his early ideas about the language:
I was talking with my colleague about the possibility of an object-oriented scripting language. I knew Perl (Perl4, not Perl5), but I didn't like it really, because it had the smell of a toy language (it still has). The object-oriented language seemed very promising. I knew Python then. But I didn't like it, because I didn't think it was a true object-oriented language — OO features appeared to be add-on to the language. As a language maniac and OO fan for 15 years, I really wanted a genuine object-oriented, easy-to-use scripting language. I looked for but couldn't find one. So I decided to make it.