Home » Ruby programming

Ruby overview

Ruby programming language overview: Here, we are going to learn the overview of ruby programming, this tutorial contains history, features, advantages and disadvantages of ruby programming language.
Submitted by Hrithik Chandra Prasad, on July 20, 2019

History of Ruby

Yukihiro Matsumoto "Matz", a software programmer, and a Japanese Computer Scientist developed and designed Ruby in the mid-1990s. There is an engrossing story behind naming the language as "Ruby". An online chat session was taking place between Matz and Keiju Ishitsuka(Matz's Colleague) during which two names were proposed for the language before writing any code on it, one was Coral and later was Ruby. The later one was selected as Ruby was the birthstone of one of the colleagues of Matsumoto.

Ruby 0.95 was the first version of the Ruby which was released in 1995, then various substantial versions were released in the following years:

In 1996, Ruby 1.0 was released.

In 1998, Ruby 1.2 was introduced to the market.

Ruby 1.4 and Ruby 1.6 were released in 1999 and 2000 respectively.

After this many versions were introduced with better features and the latest version of Ruby is Ruby 2.6.0 which was released on Christmas, 2018.

Features of Ruby

  • Object-Oriented
    Object-Oriented programming used programming standard which employs Objects and their interactions to develop Applications and Computer Programs. Ruby is an object-oriented language with some procedural features. The fundamental features supported by Rudy are:
    • Abstraction: Abstraction is clarifying complex reality by modeling classes suitable to the problem.
    • Polymorphism: Polymorphism simply refers to many forms. An object or function/method can be used in different ways for different data inputs.
    • Encapsulation: Encapsulation is a process of preventing an object from unauthorized access by hiding the values or state of that particular object.
    • Inheritance: It is a way to create new classes by deriving the properties of existing classes. It is like a Parent-child scenario.
  • Supports Mixins and Metaclasses
    Mixin is a feature of OOPS which allows Methods of a class to be used by another class without declaring Method's class as the parent class of that class which is accessing its methods. This feature is known as Mixin.
    A metaclass is a kind of class whose objects are also a class. An ordinary class defines the behavior of certain instances but a metaclass defines the behavior of precise classes and their objects.
  • Supports Dynamic Typing and Duck typing
    Ruby supports dynamic typing which means that the data type of the variable is checked or verified at the run time. Here, most of the times, the type of the variable or object is not specified at the run time.
    Duck typing can be simply defined as the process of determining if an object can work for the specified purpose or not.
  • Interpreted language
    Ruby is an Interpreted language which means that most of its instructions are executed directly and freely without prior compiling the program into its native machine or byte code.
  • Garbage Collection
    Ruby supports Garbage Collection which is a kind of Automatic Memory Management and means that it allocates the memory to the variable automatically and deallocates the same when memory is not in use. It is the antonym of Manual Memory Management in which the programmer needs to allocate and deallocate memory to the object through instructions.

Advantages of Ruby

  1. It has less number of lines of code which makes it an elegant yet powerful language.
  2. It permits easy creation of Web Application which requires fewer efforts and makes programming easy.
  3. The syntax of Ruby is very close to Spoken language thus making it simple to remember and code.

Disadvantages of Ruby

  1. It is a scripting Interpreted language and scripting languages are slower when compared to the Compiled languages.
  2. Most of its code is generated at runtime which makes it difficult to be read while debugging.

Comments and Discussions!


Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© some rights reserved.