Ruby (programming language)wikipedia

Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.
RubyRuby programming languageRuby,Ruby languageRuby programming language implementationEigenclassJRubyOpen classesRubyObjC
1,063 Related Articles

Yukihiro Matsumoto

Yukihiro "Matz" MatsumotoYukihiro Matsumoto (Matz)Matz
It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.
Yukihiro Matsumoto is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference implementation, Matz's Ruby Interpreter (MRI).

Ruby on Rails

RailsRubyRuby-on-Rails
Around 2005, interest in the Ruby language surged in tandem with Ruby on Rails, a web framework written in Ruby.
Ruby on Rails, or Rails, is a server-side web application framework written in Ruby under the MIT License.

Programming Ruby

In September 2000, the first English language book Programming Ruby was printed, which was later freely released to the public, further widening the adoption of Ruby amongst English speakers.
Programming Ruby is a book about the Ruby programming language by Dave Thomas and Andrew Hunt, authors of The Pragmatic Programmer.

Object-oriented programming

object-orientedobject orientedobject-oriented programming language
reflective, object-oriented, general-purpose programming language. Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
Ruby,

Smalltalk

Xerox Smalltalk
According to the creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. MagLev, a Smalltalk implementation that runs on GemTalk Systems' GemStone/S VM
Virtually all of the object-oriented languages that came after—Flavors, CLOS, Objective-C, Java, Python, Ruby, and many others—were influenced by Smalltalk.

RubyGems

gemRubyGemRuby gems
Centralized package management through RubyGems
RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries (in a self-contained format called a "gem"), a tool designed to easily manage the installation of gems, and a server for distributing them.

Anonymous function

lambda expressionlambda expressionslambda
an additional lambda syntax:
Second, the languages that treat functions as first-class functions (Dylan, Haskell, JavaScript, Lisp, ML, Perl, Python, Ruby, Scheme) generally have anonymous function support so that functions can be defined and passed around as easily as other data types.

Class (computer programming)

classclassesanonymous class
Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
Instance vs. class accessibility: Ruby supports instance-private and instance-protected access specifiers in lieu of class-private and class-protected, respectively. They differ in that they restrict access based on the instance itself, rather than the instance's class.

JRuby

, there are a number of alternative implementations of Ruby, including JRuby, Rubinius, and mruby.
JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java.

Ruby MRI

Matz's Ruby InterpreterMatz's Ruby Interpreter (MRI)MRI
The original Ruby interpreter is often referred to as the Matz's Ruby Interpreter or MRI.
Matz's Ruby Interpreter or Ruby MRI (also called CRuby) was the reference implementation of the Ruby programming language named after Ruby creator Yukihiro Matsumoto ("Matz").

Rubinius

, there are a number of alternative implementations of Ruby, including JRuby, Rubinius, and mruby.
Rubinius is an alternative Ruby implementation created by Evan Phoenix.

Dynamic programming language

dynamicdynamic languagedynamic languages
Ruby is a dynamic, interpreted, Dynamic reflection and alteration of objects to facilitate metaprogramming
Popular dynamic programming languages include JavaScript, Python, Ruby, PHP, Lua and Perl.

MagLev (software)

MagLev
MagLev, a Smalltalk implementation that runs on GemTalk Systems' GemStone/S VM
MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemTalk Systems.

IronRuby

IronRuby an implementation on the .NET Framework
IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET framework.

RubyMotion

MacRuby, a Mac OS X implementation on the Objective-C runtime. Its iOS counterpart is called RubyMotion
RubyMotion is an implementation of the Ruby programming language that runs on iOS, OS X and Android.

MacRuby

MacRuby, a Mac OS X implementation on the Objective-C runtime. Its iOS counterpart is called RubyMotion
MacRuby is a discontinued implementation of the Ruby language that ran on the Objective-C runtime and CoreFoundation framework under development by Apple Inc. which "was supposed to replace RubyCocoa".

Mruby

, there are a number of alternative implementations of Ruby, including JRuby, Rubinius, and mruby.
mruby is an interpreter for the Ruby programming language with the intention of being lightweight and easily embeddable.

Iterator

iteratorsIteratingiteration
Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection. Lexical closures, iterators and generators, with a block syntax
Some object-oriented languages such as C#, C++ (later versions), Delphi (later versions), Go, Java (later versions), Lua, Perl, Python, Ruby provide an intrinsic way of iterating through the elements of a container object without the introduction of an explicit iterator object.

Monkey patch

monkey-patchingmethod swizzlingmonkey-patch
Adding methods to previously defined classes is often called monkey-patching.
The definition of the term varies depending upon the community using it. In Ruby, Python, and many other dynamic programming languages, the term monkey patch only refers to dynamic modifications of a class or module at runtime, motivated by the intent to patch existing third-party code as a workaround to a bug or feature which does not act as desired.

Safe navigation operator

optional chainingnull-conditional operatornull-conditional
A new safe navigation operator that can ease nil handling (e.g. instead of, we can use ).
It is currently supported in languages such as Apache Groovy, Swift, Ruby, C#, Kotlin, CoffeeScript and others.

Interactive Ruby Shell

IRB
Interactive Ruby Shell (a REPL)
Interactive Ruby Shell (IRB or irb) is a REPL for programming in the object-oriented scripting language Ruby.

Exception handling

exceptionexceptionserror handling
Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
This includes ActionScript, Ada, BlitzMax, C++, C#, COBOL, D, ECMAScript, Eiffel, Java, ML, Object Pascal (e.g. Delphi, Free Pascal, and the like), PowerBuilder, Objective-C, OCaml, PHP (as of version 5), PL/1, PL/SQL, Prolog, Python, REALbasic, Ruby, Scala, Seed7, Smalltalk, Tcl, Visual Prolog and most .NET languages.

Metaprogramming

metameta-programmingmetaprogram
Dynamic reflection and alteration of objects to facilitate metaprogramming
If programs are modifiable at runtime or if incremental compilation is available (such as in C#, Forth, Frink, Groovy, JavaScript, Lisp, Elixir, Lua, Perl, PHP, Python, REBOL, Ruby, SAS, Smalltalk, and Tcl), then techniques can be used to perform metaprogramming without actually generating source code.

YARV

Native threads and cooperative fibers (fibers are a 1.9/YARV feature)
YARV (Yet another Ruby VM) is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada.

Generator (computer programming)

generatorsgeneratorGenerator methods
Lexical closures, iterators and generators, with a block syntax
Generators first appeared in CLU (1975), were a prominent feature in the string manipulation language Icon (1977) and are now available in Python, C#, Ruby, the later versions of ECMAScript (as of ES6/ES2015) and other languages.