Ruby is a dynamic interpreted scripting language famous for taking simplicity and code-readability to the extreme. It was first conceived by Yukihiro Matsumoto, a.k.a. MATs, in 1993 as an easy-to-use scripting language like Python, but with genuine object-oriented features like SMALLTALK-80.
It exploded in popularity after David Hanemeyer Hansen, a.k.a. DHH, created Rails in 2005, a model view controller framework. It was called a game-changer for startups because it reduced the complexity required to build a full-stack web application and has been used to create unicorns like Twitter, Shopify, Github, and Airbnb, just to name a few.
Ruby on Rails is often called a programmer’s best friend thanks to its minimal syntax that relies on plain English words and the use of blocks to write concise functional code. At the same time, it’s an object-oriented language where everything is an object, and every object can be modified, giving developers the flexibility to extend or alter the behavior of the underlying language.
The developer ecosystem is large and mature code is shared between developers with the Rubygems Package Manager. A program is organized into a self-contained format called a Gem. to get started, you can simply install Ruby, then create a file ending with a .rb extension. Declare a local variable by giving it a name, followed by a value. There’s no variable keyword, but you can define constants in all caps or global variables with a dollar sign ($). Every value is an instance of an object, which means we can call methods directly on a string. Parentheses are usually optional. Ruby is dynamically typed, which means there are no type annotations. However, modern tools like RBS can add a type system on top of it, like how typescript does for javascript.
To print a value to the standard output, use the puts method. We can define our own custom methods using the def keyword, which ends with the end keyword. Every method will always return exactly one object; no return keyword is necessary. Or, if you don’t want a named method, you might create a block with a do keyword, which works like anonymous function blocks can also take arguments found in between the pipe characters now, use the class keyword to create blueprints for your own custom objects
An interesting point is that ruby supports DUCK typing, which means that if it walks like a duck and quacks like a duck, then it’s a duck. In other words, it won’t throw type errors based on the class itself but rather the methods that are implemented on it.
Define the initialize method to run code; when a new object is constructed, any variable that starts with @ belongs to an object instance, while any variable with a double at symbol @@ is static and belongs to the class itself. You can easily add getters and setters to a class using the attr_accessor method. To create a new object instance by calling the new method in the class, run your code with the ruby interpreter from the terminal.
To Sum Up
Ruby on Rails is used to create a database-backed web application per the Model-View-Controller pattern. It divides an application into 3 layers, View, Model, and Controller, with specific responsibility for each. And is here to stay.