Ruby (programming language)

RubyRuby programming languageRuby languageRuby,EigenclassJRubyOpen classesRuby on RailsRuby programming language implementationRubyObjC
Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.wikipedia
1,062 Related Articles

Yukihiro Matsumoto

Yukihiro "Matz" MatsumotoMatzYukihiro Matsumoto (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 Active Record Migration
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.

Smalltalk

Xerox Smalltalk
According to the creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp.
Virtually all of the object-oriented languages that came after—Flavors, CLOS, Objective-C, Java, Python, Ruby, and many others—were influenced by Smalltalk.

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,

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.

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.

Anonymous function

lambda expressionlambda expressionsanonymous functions
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.

Iterator

iteratorsIteratingC++ iterators
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.

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.

RubyGems

gemRuby GemRuby 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.

Eiffel (programming language)

EiffelEiffel programming languageEiffel language
According to the creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp.
Other programming languages, especially ones that emphasize functional programming, allow a similar pattern using continuations, closures, or generators; Eiffel's agents emphasize the language's object-oriented paradigm, and use a syntax and semantics similar to code blocks in Smalltalk and Ruby.

Safe navigation operator

optional chainingnull-conditionalnull-conditional operator
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.

Mixin

mixinsinter-type declarationsmixed in
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

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.

Generator (computer programming)

generatorsgeneratorgenerate
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.

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.

Garbage collection (computer science)

garbage collectiongarbage collectorgarbage-collected
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.
Other dynamic languages, such as Ruby and Julia (but not Perl 5 or PHP before version 5.3, which both use reference counting), JavaScript and ECMAScript also tend to use GC. Object-oriented programming languages such as Smalltalk and Java usually provide integrated garbage collection.

General-purpose programming language

general-purposegeneral purpose programming languageGeneral
reflective, object-oriented, general-purpose programming language.
Ruby

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.

Closure (computer programming)

closureclosureslexical closure
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 languages, such as Ruby, enable the programmer to choose the way is captured.

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.

Arbitrary-precision arithmetic

arbitrary-precisionarbitrary precisionbignum
Built-in support for rational numbers, complex numbers and arbitrary-precision arithmetic
Some programming languages such as Lisp, Python, Perl, Haskell and Ruby use, or have an option to use, arbitrary-precision numbers for all integer arithmetic.

String interpolation

interpolationinterpolatedvariable interpolation
Embedding code in strings (interpolation)
String interpolation is common in many programming languages which make heavy use of string representations of data, such as Apache Groovy, Kotlin, Perl, PHP, Python, Ruby, Scala, Swift, Tcl and most Unix shells.

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").