In this article, I will explain why our backend stack is mainly Ruby on Rails and why we think this framework is perfect for your projects. If you are a leader/founder, read this to support your choices in terms of technology adoption. If you are an aspiring developer, read this to understand why learning Ruby can boost your career and if you are a seasoned developer read this to comprehend why this framework is still very much relevant.
By Dario Calamandrei
Head of Marketing and Sales
7 April 2022
About Ruby on Rails
Ruby on Rails (RoR or simply Rails) is a server-side web application framework written in Ruby. Rails is an MVC framework, providing default structures for a database, a web service, and web pages. First introduced in 2005, the same year Extendi was founded, since then the framework has heavily influenced web development. Among some of the startups that adopted Rails, you can find Shopify, Twitter, Airbnb, GitHub, Fiverr, Soundcloud, Twitch to name a few.
Advantages of using Ruby on Rails
It’s fast - RoR saves you a ton of development time (up to 30-40%) since there are numerous gems (gems are packaged reusable collections of code), you can easily use a pre-built functionality and not waste time building it from scratch. See for instance the that allows you to add to your website sign in, sign up, reset password in with a single line of code.
It’s easily maintainable - RoR uses the MVC architecture which is easily maintainable and simple to test due to its decoupled nature. Matter of fact, any change in a specific part of the application won't ever influence the whole architecture. This allows adaptability and scalability of the application and teams.
Has an awesome community - RoR developers, or so-called Rubyist, belong to one of the best and most collaborative communities in the world, and thanks to this approach most of the gems you can find out there are heavily tested and secure. This is why Ruby makes programmers so happy and productive.
Has principles that make your life easier - RoR has 2 core principles: Do not Repeat Yourself (DRY) which means you should never repeat code, and Convention over Configuration (COC) which means you don’t have to declare small things. These principles allow the creation of simple, easily manageable, and higher quality code, thus applications that are easy to upgrade.
Why isn’t everyone using Rails?
I mean if Ruby has all these good things why isn’t everyone using it? Why would developers choose different backend frameworks? First of all, RoR has been around for a while and people (especially in software) are inclined to move on to the next “hot thing” rather fast. On top of that Rails has often been considered slow since Ruby is an interpreted language and interpreted languages tend to be slower than compiled ones. Another downside of Ruby are Memory Leaks as they can reduce the performance by reducing the amount of available memory in the machines.
When these statements are brought up many cite the case of Twitter (which was created in Ruby but switched to Scala to overcome scale barriers). But when we look at the real motive, we understand that Twitter did the switch because requests for "live" data in Ruby (or any interpreted language) are harder scale, as they are comparatively far more expensive both in terms of CPU & memory utilization than their compiled language counterparts. So this leads us to the next paragraph: do these problems always apply? Are those real problems?
Rails problems are problems you wish you had
If it’s true that scalability will be something you have to deal with at some point, it’s also true that scalability issues can be easily overcome by throwing more machines at the problem, which is surely cheaper and faster than hiring developers to use a faster but harder to maintain language.
Going back to the Twitter example, think about Twitter and ask yourself if your product/service is going to need to scale to that level. Then build it in Rails anyway, because it makes sense: enjoy the open-source tools that Rails gives you, enjoy the low cost of using the language, enjoy the freedom of just getting something out there and see if it's marketable, all of this while working in a language that often times can be elegant, simple and beautiful. Once the app gets to Twitter-level volumes you'll be in the happy position of considering performance optimization.
Why developers, leaders, and founders love Rails
If what I’ve already mentioned wasn’t enough let me emphasize a couple of things a little more.
There is no better programming language for speeding up the process of development and helping you hit the market early. Thanks to its simplicity and availability of gems, Ruby is the go-to option for most of startups since 1) they are usually on a budget and 2) they need MVPs as fast as possible.
Ruby’s beautiful and elegant syntax makes the implementation of complex business logic simpler. Its use of English-like syntax and common language feels so native and logical that some parts of the code read like English declarations. This ultimately enables Ruby developers to do more with less code (a line of code in Ruby may be worth six lines of Java code sometimes). All this makes Ruby a programming language that is a pleasure to work with.
Large-scale projects can benefit from Ruby on Rails using it as a prototyping tool or as an efficient way to deliver proof-of-concept solutions. Because it is relatively easy and cheap to build and extend applications with Ruby, it is also a great option for building an enterprise’s internal/back-end tools.
I hope that with those insights I’ve helped you understand why we love and use Ruby on Rails and why, whether you are a developer, a leader or a founder, you should take a look at Rails and consider it for your next project.
Head of Marketing and Sales
After a few years spent in consulting, Dario joined Extendi with the goal of boosting its market development. He is passionate about economics, sports, and music. He is an avid listener of Alain de Botton's and Rory Sutherland's talks.
What’s the key practice when it comes to delivering robust, secure, and easy-to-scale applications? Find out how your organization can benefit immensely from this approach in this article about Jamstack. At Extendi we have been using this architecture for delivering top-notch websites.
I and my team are currently working on a brand new frontend for a client. We finally have the chance to start using a Micro-frontend approach. In this article, I will discuss the advantages of this approach and in another article, I will go over some of the reasons why and how we chose the Module Federation for achieving this goal.
Get periodic updates, the best insights and some precious tips.