10 Reasons Ruby Clicks for Me🖱️

If you asked anyone in my network, they’d find it no surprise when I claim that ruby is my favorite programming language. But this got me thinking 🤔 … why am I so fond of it and what is it about the language that keeps me coming back despite a multitude of other options and tools out there?

1. Time đź•™

I first learned about ruby in 2013 when I landed an internship a small software company. I was a student at Santa Clara University with no professional coding experience. I had only been writing, compiling, and running small programs in C/C++. That is until my fellow student and coworker introduced me to Ruby and Rails. On day 1 he told me:

Forget everything you know about what you’ve been doing in school. Because you’re going to love ruby.

Since that day I’ve put more time into reading/writing ruby than any other programming language. It’s the language that kicked off my professional career and continues today to be the language that I use every day. And that brings me to the first reason ruby clicks for me. It’s time.

I’ve lived in ruby for years. Reading it, writing it, and thinking in it.

2. Expertise 🎯

It’s commonly said that it takes 10,000 hours to master a skill. Normally, I’d hesitate to call myself an expert in anything because the more I learn, the higher the ceiling seems to rise. However, one thing I’m confident in is that I have eclipsed the 10,000 hour milestone for reading/writing ruby.

After all of that time I’ve developed a deep understanding of the language. I can write programs in ruby without referencing documentation, jump into others’ source code quickly, and appreciate the practices and tastes that define the community.

Deep understanding of a craft is satisfying.

3. Productivity 🏢

I can get things done fast in ruby (especially when paired with rails). Ruby is optimized for ergonomics, readability, and practicality. It’s great for prototyping and delivering features to customers fast! This combined with my years of ruby experience makes it my personal go-to choice for computing tasks.

The goal of Ruby is to make it easy to do the right thing and hard to do the wrong thing.

4. Tooling đź”§

Ruby’s ecosystem is mature and packaged with great tools. The default package manager, bundler, is predictable and easy to use. The repl, irb, is great for debugging and tinkering. The standard library has great out of the box support for common data structures (arrays, hashes, structs, etc.), data formats (CSV, JSON, etc.), and high level data types (Date, Time, URI, etc.). Beyond the standard library, there’s a huge selection of gems written by the community. There’s of course rails, but other examples are rspec, sidekiq, nokogiri, and faraday.

If it exists, there’s probably a gem for it.

5. Objects 📦

A potentially less popular opinion, but I love objects and object oriented programming. In a time where functional programming is in vogue, ruby leans into objects. And objects really click with my brain and thought process. Of course they don’t fit every use case, but I’ve done my best work within the object oriented paradigm.

In ruby, everything talks, and everything listens.

6. Feedback âž°

Ruby’s feedback loops are quick. So quick in fact, that I can be impatient when working in other languages. I’ve often joked with coworkers that my number one skill is the ruby repl. There’s so much joy in quickly testing a snippet for correctness, or popping open a console and running a procedure. The bar for tinkering in ruby is so low! Ruby’s runtime performance and lack of static typing are certainly the trade-offs, but the language is usually not a bottleneck on projects I’m working on.

Ruby lets you try ideas first, think later.

7. Identity 🫆

Ruby is a dynamically typed, object-oriented language. It allows defining methods, modifying classes, and looking up constants at runtime, enabling metaprogramming and monkey patching. And it fully leans into these ideas and constructs. This is something I appreciate about ruby and other languages that similarly know their identity. Instead of attempting to solve all problems or appeal to every programmer, ruby offers a flavor of dynamically typed goodness that tastes so sweet to the right user.

Every feature in Ruby has a reason.

8. Readability 📚

Ruby was designed to be read and be readable. It’s a great choice for building domain specific languages. I will admit when I was a newcomer to ruby this was off-putting. While vanilla ruby appealed to me, the macros in rails and the syntax of rspec did not. I’d ask myself why learning these tools didn’t feel like plain ruby. But after I came to better understand the language, I realized that these tools were written in plain ruby! The features of the language allows users to write interfaces that read almost like English.

Ruby is simple in appearance, but is very complex inside, just like our human body.

9. Community 👥

Related to ruby’s identity is its community. I attended my first ruby conference in 2018 in Los Angeles. The community is vibrant, friendly, and passionate. The creator of ruby, Yukihiro “Matz” Matsumoto, is famously chill. His leadership has set the tone for the community, language design, and ethos of ruby.

Matz is nice and so we are nice.

10. Fun 🎉

The last reason ruby clicks for me is the simplest. It’s fun! I’m at my happiest when writing it. It makes sense to me. I understand it. It’s familiar. And most importantly, it makes me happy.

Ruby is optimized for programmer happiness.