Designed by: Yukihiro Matsumoto
First Appeared: December 29, 1995
Typing Discipline: Duck, Dynamic
File Extensions: .rb, .rbw
Ruby is a dynamic open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
It was designed and developed in 1990’s by Yukihiro “Matz” Matsumoto in Japan. It runs on a variety of platforms such as Windows, Mac OS and the various version of UNIX. It supports multiple programming paradigms, including functional object oriented and imperative. It also has a dynamic type system and automatic memory management.
Ruby is a reflective, object- oriented, general purpose programming language. According to its creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada and Lisp.
It was conceived on February 24, 1993. Yukihiro wanted a genuine object oriented, easy to use scripting language. According to him object oriented language seemed very promising. He knew many languages such as Perl, Python etc., but he was not actually satisfied with these languages. So he decided to make a language that live up on his expectations or need.
Matsumoto describes the design of Ruby as being like a simple Lisp language at its core, with an object system like that of Smalltalk, blocks inspired by higher order functions and practical utility like that of Perl.
Characteristics/ Features of Ruby: (Wikipedia.org)
- Thoroughly object oriented with inheritance, mix-ins and metaclasses
- Dynamic typing and Duck typing.
- Everything is an expression (even statements) and everything is executed imperatively (even declarations)
- Succinct and flexible syntax that minimizes syntactic noise and serves as a foundation for domain specific languages.
- Dynamic reflection and alteration of objects to facilitate metaprogramming.
- Implemented on all major platforms.
- Large standard library, including modules for YAML, JSON, XML, CGI, OpenSSL, HTTP, FTP, RSS, curses, zlib and Tk.
- Centralized package management through RubyGems.
- Simple Syntax
- Basic features (classes, methods, objects and so on)
- Special features (Mix-ins, singleton methods, renaming etc.)
- Operator Overloading
- Exception Handling
- Iterates and closures
- Garbage Collection
- Dynamic Loading (depending on architecture)
- High transportability (runs on various Unices, Windows, DOS, OSX, OS/2, Amiga and so on)
puts “Hello World”
-------- X --------