At some point in my software engineering career, I was introduced to the Ruby programming language, which is known to be one of the easiest programming languages to learn in today's world of programming.

In technical terms, Ruby is:

a dynamic, open-source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.

(As defined in the official ruby page)

When I first got into software engineering, I thought about how the technology came to be. I thought about ancient times when computers didn’t even exist. To think this all came from almost nothing is absolutely fascinating. I couldn’t help but think about how everything works in the industry, or more importantly, how it all ties together.

I wanted to have the same understanding for Ruby, but I felt like to get a better understanding of Ruby, I had to see the rich history the language had to offer.

At the time of enrolling in the Flatiron coding bootcamp, I didn’t know what Ruby was, or how it worked, or more specifically, how object-oriented programing itself worked. It was all so different from the initial Javascript language I had learned a couple of years back in community college. The language seemed intimidating at first, but after doing some reading, I discovered the real beauty behind the Ruby programming language.

Creator of Ruby

Ruby was created back in 1993 by Yukihiro “Matz” Matsumoto, a programmer that was searching for a true object-oriented, easy-to-use scripting language but failed to find one during his search.

So he decided to make his own.

Matz created Ruby by taking parts of his favorite programming languages (Perl, ADA, Smalltalk, and Eiffel) and combining them all into one language. Ruby was created with the concept of making a programming language that was meant for programmer productivity and fun. Matz also wanted to make Ruby easy for humans to read, which is why it’s such an easy language for beginners to pick up on when learning a new programming language.

For example, reading these following couple of lines of Ruby code aloud will sound almost like normal English:

This block of code uses conditional if-else statements to see if x is equal to 1. It will go through each conditional and display a line of text when the conditional is true. So in this example, we would get the line “x is 1” because x is less than and not equal (<=) to 2 and it does not equal (!=) zero.

The name ‘Ruby’ originated from an online chat session between Mattz and a colleague, way before any code was even planned out for the language. It was a decision between the names ‘Coral’ and ‘Ruby’.

Rising Success of Ruby

The very first public appearance of Ruby was back in December 1995. It was released in version .95 and first announced on a Japanese Usenet newsgroup, which was almost similar to a blog, meant for viewing messages posted from many users in different locations around the world using the Internet. Following its initial release, 3 more versions were released within 2 days. The initial release even came with a mailing list option, for those interested in the then-new language.

Upon its initial release, many users new to the language were able to adapt fairly quickly due to its similarities to the other languages Matz took inspiration from.

By the same month next year, Matz went on and released the official 1.0 Ruby version, following another 3 versions within the span of 4 years. During this timespan, the rise in Ruby was being displayed with several items for the language. For example, the first article over Ruby was created back in 1997. In the following year of 1999, an English mailing list was started by fans and supporters, displaying growth outside of its home country. And by the 2000s, Ruby was more popular than Python in Japan.

As of today, Ruby is still widely popular and is a good language to first learn when coding. Matz's goal of making a language that was fun and easily understandable was a success.

Ruby vs other languages

As mentioned before, Ruby is an object-oriented programming language, meaning it has a modeled structure of organizing software design around data, or objects, rather than working with functions or logic. An object in ruby can be defined as data fields that carry certain attributes and behavior, and can even inherit traits from other objects. This approach to programming is suited for large, complex programs that are actively being updated/maintained.

When comparing Ruby to maybe a functional programming language, learning the latter might be a bit more difficult for newcomers. Writing a good functional programs means to learn and think differently, and to do it well would require a lot of time and effort. It would be difficult to learn without a teacher and It’s probably more likely that someone new to functional programming will give up a bit sooner than someone starting a language like Ruby. There just isn’t as much support for functional programming.

Now, I’m not trying to convey functional programming is bad, but it’s probably not recommended for those looking to get into programming. These languages all differ from each other but some are suited to certain people for various reasons.

Aspiring Software Engineer | Student @ Flatiron School