Implementing new ideas into reality is always hard. But as it is with the creation of every product, not only software projects, correctly selected tools can make this road much smoother. Let&rs...
Why should I learn Ruby on Rails?
Learning a programming language is usually an investment for many years ahead, especially if that’s your first one. It’s not hard to imagine how starting from a specific technology can shape not only the next projects you’ll be working with, but also your way of thinking about software development.
How to start with Ruby on Rails
A long time ago, I was also faced with the choice of a technology I’ll be working with in the foreseeable future. It was around the time when real smartphones were starting to become a thing. I loved the idea of having a small computer with Linux kernel as a device that in the future could help with a lot of tasks that we needed desktop computers for.
The answer was quite simple then - I needed to learn Java to build applications for Android. I had some previous experience with programming, so getting used to heavy IDE wasn’t a big problem. Creating simple applications for mobile devices also was quite straightforward after I learned a bit more about Android SDK. One thing was bothering me though — the building process wasn’t as fun as I thought it would be.
Only after that I’ve started to search for alternatives. I knew right away that iOS with Objective C wasn’t really the answer I was looking for and honestly, I almost gave up with my research. This must look like this, so let’s just continue and maybe in time I’ll get used to it — I told myself and just went back to coding and compiling.
Few days later, by some strange chance of luck, I visited my friend who was a web developer at the time. Immediately, I noticed how clean his workspace looked — Sublime Text editor, neatly styled Terminal on the second screen and web browser. And that was it — no bloated IDEs or emulators. All he needed to deliver his work was a fancy code editor.
Knowing the alternative, it was clear that this was the setup I wanted to spend my days with. Later I learned that he was building a Ruby on Rails application, and what was most important, he enjoyed the simplicity of the language, the community and process.
What is Ruby on Rails used for?
Ruby on Rails is great for prototyping, which means you can build a small application very quickly. The framework already contains common elements that you would otherwise need to write yourself, if it wasn’t for the great Rails community. Obviously, this not only means it will be easy to start developing, but later down the line a lot of time is saved by not repeating yourself. If someone already solved the problem, there’s a big chance you will not have to do it again.
It’s not surprising that a lot of startups are built using Ruby on Rails, and some of them are quite big: Airbnb, Groupon, Hulu, Sendgrid, Soundcloud, Zendesk, Shopify or even the liked by everyone Github. At this point, it is worth mentioning that while for smaller apps Rails is no brainer, scaling the codebase to the point of the companies mentioned before requires serious experience and design skills.
One of the most common critiques, when it comes to Ruby on Rails is exactly that — it’s easy to quickly come up with an application, but later it’s hard to scale, and on top of that, it’s slow. Fortunately, some of those problems were solved by the development of cloud platforms in recent years, where tools like Kubernetes helped for example Airbnb to deliver a streamlined experience, even at huge scale.
The thing is, though, a lot of companies don’t really care. When you’re a startup that is building an MVP, trying to validate a business idea, creating something fast and iterating over it is usually a better bet than starting from a huge very scalable structure (which is possible in Ruby on Rails too).
Why should I learn Ruby on Rails?
In today's world, where a new JS framework is created almost every day, why would Ruby on Rails still be relevant enough to learn it? Let’s look at some facts:
Ruby is still evolving very fast. After so many years, the base for the Rails framework is constantly being updated and in 2020 we’re expecting the release of Ruby 3. This means constant support from the community, security updates, but probably what’s most important — performance improvements.
Millions of projects are based on Ruby on Rails. A lot of them are constantly being developed or require maintenance. As some projects are getting more mature, they actually require more focus on scaling and infrastructure design. The need for developers who can handle that will obviously not go away anytime soon.
The community is great and helpful. No matter if you’re just starting with learning Ruby on Rails or trying to solve some complex issue, the chances are you will end up searching for help. With great people sharing solutions all the time for many years, it’s quite hard to stay stuck on some problem for a long time.
It teaches you good practices. When starting with Ruby on Rails, even though the framework hides a lot of stuff from you, it is also forcing some patterns of development. A neatly organized structure is very helpful with understanding the MVC pattern, which will for sure come in handy, even if you later decide to switch technologies.
Ruby on Rails is mature enough for steady growth, but at this point it doesn’t require as a fast development of new libraries and updates as newer frameworks — because they are already done and well established. However, it has to increasingly share some of the development space with more specialized solutions, especially in the area of Machine Learning and parallel processing.
Even with the increasing number of alternatives, the core Ruby on Rails advantages remain as true as they were a few years ago. If you are looking for language and framework with great community support, a proven track of record in millions of projects, with a great structure and one oriented on maximizing the happiness from programming, I would recommend Ruby on Rails without hesitation.