Debunking myths about Ruby
We've been reading and hearing a lot of criticism to Ruby and Ruby on Rails since we begun 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 mixin modules into Ruby classes.
- Visual appeareance.
- 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 against 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 in essence. 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 it 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 into 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' phone 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 highly demanded last year.
Ruby lacks documentation
This myth is impossible to understand. Ruby has one of the most well documented codebase. 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 rubygem, 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!