We’ve been reading and hearing a lot of criticism of Ruby and Ruby on Rails since we began working with them back in 2010. In this post, we will try and debunk four widespread myths about Ruby.
A bit of context
Ruby is an interpreted language designed with a focus on simplicity and productivity. That means that before anything, the language was designed to be programmer-friendly rather than computer-optimized.
With that in mind, here’s the list of features Matz (Ruby’s creator) envisioned for Ruby:
- Pure object-oriented language: everything is an object.
- Flexible language: allows developers to freely alter its parts.
- Expressive language: Ruby’s blocks are a source of great flexibility. Developers can attach a block to any method, allowing methods to act differently depending on that block.
- Mixins: a powerful mechanism to mix modules into Ruby classes.
- Visual appearance.
- Portability.
- Operating System independent threading.
- C and Rust extensions.
Ruby was focused on the developer experience from the very beginning.
Ruby is slow and resource-intensive
When this myth originated is unknown, but it’s easily debunkable. Compared to what is slow and resource intensive? If you compare Ruby with any other compiled language (such as C or Rust), it will be inevitably slow and resource-intensive, but the reason is we’re comparing a compiled language against an interpreted language. Compared to other interpreted languages with similar features, such as Python, PHP, or Perl, we can see Ruby’s performance and resource usage is similar to them:
Still, it’s important to note that these are just a starting point. At the end of the day, your application is the ultimate benchmark and measurement is not prophesy.
Ruby on Rails is slow for the web
This sub-myth is very popular. It states Ruby on Rails is a slow framework in comparison with other frameworks such as Django, Express, and Laravel. The reality is that this is an unfair comparison as all these frameworks are different. While one can compare Ruby on Rails and Django as they’re very similar, Express is a microframework that, once set up to work as a full stack framework just as Rails, performs similarly.
Also, if we are talking about web applications, optimizing resources is just a tiny part of all the work done by computers to render the page onto your users’ screens. It doesn’t matter how fast your backend language is if sending and receiving data from the server takes 2 seconds, and processing all the HTML, CSS, and JS on your users’ phones takes four more seconds. You won’t get any faster than 6 seconds which is already a lot of time (numbers are just illustrative).
It’s not Ruby, and it isn’t Rails.
Ruby is unpopular
Ruby isn’t, by any means, unpopular. At the time of writing this post, Ruby is in the top 20 TIOBE index and top 10 programming languages in GitHub.
Moreover, Ruby on Rails developers were in high demand last year.
Ruby lacks documentation
This myth is impossible to understand. Ruby has one of the most well-documented codebases. Plus, most of the RubyGems have excellent documentation.
In any case, it’s about knowing where to look for documentation. And if documentation is lacking for any ruby gem, Ruby code is normally easy to follow and understand.
Ruby is dead
LOL. Ruby is far from dead. It might have been more popular in the past than now for several reasons but it’s certainly going to be more popular in the future.
We’re always happy to discuss/talk about Ruby and Ruby on Rails. Contact us if you want to hear more!