FAQ Ruby: a quick guide about one of the main programming languages in the world

Ruby is a programming language that focuses on developers and productivity. In this article we answer the main questions about Ruby when it becomes a technology option in the development of a new digital product.

Peterson F. dos Santos

Peterson F. dos Santos

July 29, 2021 | leitura de 7 minutos

dev

So let's talk about Ruby, a language well known mainly because of Ruby on Rails and whose main objective is to enhance the developer's productivity.

Ruby is one of the most dynamic, reflective, object-oriented, general-purpose programming languages. This is why I believe you will be more productive while using it - and you probably will agree with me after reading the following paragraphs.

1. What is Ruby?

Ruby is an interpreted, multiparadigm programming language, that has an automatic management memory (somewhat criticized, but let leave this subject for another article) and that was developed in 1995, in Japan, by Yukihiro Matsumoto, better known as "Matz".

Matz wanted to create a balanced and powerful language. For that, he merged the best practices of his favorite programming languages ​​at the time, such as: Perl, Smalltalk, Eiffel, Ada and Lisp. Its focus is to keep the natural language for developers. He uses the following expression:

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

Ruby is currently one of the main programming languages ​​in the world and is certainly very popular among developers.

2. What are Ruby's main benefits?

Wow, it would be very easy for me to list a number of Ruby's benefits because, particularly, it is one of my favorite languages. I will only bring two that, in my opinion, are the main ones when deciding which technology to choose from to your project.

Productivity

Here we look at productivity from the prism of learning speed, applying best practices, and creating a testable and maintainable code.

Taking these pillars into account I believe Ruby has a special highlight, let's see a class written in Ruby:

1.  class  Orange

2.  def initialize

3.  @juice_available = 100

4.  end

6.  def squeeze

7.  @juice_available -= 50

8.  end

9.  end

10. orange = Orange.new

11. orange.squeeze

12. # => 50

If you have a modicum of programming languages you probably understood what this piece of code is doing without anyone explaining it to you. I think this speaks for itself. The beauty of Ruby is that the code talks to you.

You might be thinking: "but this code is very simple". And it is! Take a look at this example of a class in Ruby for converting numbers to phone.

And of course I couldn't forget to mention, but here's a video from the creator of Ruby on Rails developing a complete blog in 15 minutes, in 2005. Imagine how much it has evolved since then!

Tools

The Ruby toolbox is very well built and mature. The community as a whole is pretty complete, and if you're a developer who's still learning, I'm sure you won't be short of material. Additionally, the coolest thing is the amount of tools available to you:

  • Ruby on Rails - web development framework;
  • Rubygems - library repository;
  • Spree - complete open source e-commerce solution;
  • Rspec - BDD for Ruby; 
  • Devise - complete authentication solution.

Want to see a complete list of available tools? Check this out!

3. Where does Ruby stand out?

Ruby makes it easy whenever we need to develop a new web application or an API. When we need to develop applications quickly, the chances of choosing Ruby as an option are very high. But why? Because there are great frameworks, tools and libraries at our disposal and also a setup of a complete CI/CD environment and a production environment that we can quickly do.

We were recently challenged to build a large company's digital product MVP into production within 25 days. We had a lot of problems, but we managed to meet the deadline because we chose the right technology, in this case, Ruby. :)

4. Is it easy to scale applications using Ruby? 

I don't think it's easy to scale any application - and it's too simplistic to think that way, because each challenge has its own peculiarities and quirks.

Yet this is a recurring question that we have to answer. You've probably heard that Ruby is slow and even cites Twitter as a "failure" for the language it uses. But the truth is that very few applications will reach the number of requests that Twitter needs to respond to per second. Besides that, there are other very successful cases.

This is why I don't believe in those silver bullet tools, that is, a tool that solves all problems. Even though I like Ruby a lot, it wouldn't be different.

If you're a developer or work in software development, you've probably heard of Github. Yes, it is the same one you are thinking about. Github is an application developed in Ruby using a Ruby on Rails framework.

Going forward, draw your own conclusions about Ruby's scalability. :)

5. Who's using Ruby?

I know of several Ruby use cases, but I'll name a few that are well known throughout:

  • Shopify - Largest e-commerce platform in the world with over 1 million stores;
  • Airbnb - Largest experience and hosting marketplace on the planet;
  • Basecamp - Project management platform developed by the creator of Ruby on Rails;
  • Zendesk - one of the world's largest support and customer success platforms;

In addition to those that I can say are more prominent, we develop here within the ateliware:

  • Pipefy - Automation and workflow management tool, already used in over 150 countries;
  • minestore - E-commerce platform with more than 100,000 stores created in Brazil alone.

6. How popular is it among developers?

As it is a super consolidated language and focuses on developer productivity, it is difficult to find anyone who has already had some contact with Ruby and has not liked it. The simplicity and the number of tools available for sure become a highlight and a positive point of the language. I believe it won't be a problem for your company to hire developers in the market.

Every year Stackoverflow conducts a survey of community developers (of which there are many) to find out "sense" and opinion. In this ranking, Ruby still remains the darling of developers. I'll link the article here so you can follow the details.

7. When is Ruby not the best option?

I share an almost obvious relationship about some cases that I believe Ruby is not the ideal tool:

  • Heavy computational processing - It's not something Ruby's core team is too concerned about. Besides, there are already great tools that use Python, Matlab or R;
  • Mobile apps - There are some initiatives for using Ruby as an app development tool called Rubymotion. I particularly believe there are more mature tools out there.

8. Conclusion

The content was longer than I'd expected, but I've tried to answer fundamental questions to help you decide what technologies will be best for your next digital project or product.

I always like to leave a reading recommendation so that you can deepen your knowledge and draw your own conclusions:

Do you still have questions? Get in touch with us through our Twitter or Linkedin. See you there!

Peterson F. dos Santos
Peterson F. dos Santos

Founder at ateliware | Artesão de software, interessado em programação, open source, produtos digitais e internet.

LinkedInGithubTwitter