Ruby-logo

Ruby

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.

Features

  • Thoroughly object-oriented with inheritance, mixins and meta-classes
  • 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 meta-programming
  • Lexical closures, iterators and generators, with a unique block syntax
  • Literal notation for arrays, hashes, regular expressions and symbols
  • Embedding code in strings (interpolation)
  • Default arguments
  • Four levels of variable scope (global, class, instance, and local) denoted by sigils or the lack thereof
  • Garbage collection
  • First-class continuations
  • Strict boolean coercion rules (everything is true except false and nil)
  • Exception handling
  • Operator overloading
  • Built-in support for rational numbers, complex numbers and arbitrary-precision arithmetic
  • Custom dispatch behavior (through method_missing and const_missing)
  • Native threads and cooperative fibers (fibers are 1.9/YARV feature)
  • Initial support for Unicode and multiple character encodings (no ICU support)
  • Native plug-in API in C
  • Interactive Ruby Shell (a REPL)
  • Centralized package management through RubyGems
  • Implemented on all major platforms
  • Large standard library, including modules for YAML, JSON, XML, CGI, OpenSSL, HTTP, FTP, RSS, curses, zlib, and Tk

Visit ruby-lang.org

Ruby Documentation

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>