At Primate, Ruby on Rails is a fundamental part of our day to day operations and has been from the start (we work with WordPress and other programming languages like PHP too). The question of why has been on my mind for a while now. And although asked on many occasions, it’s still one I can’t answer concisely.
What sits at the core of the framework that makes it appealing after so many years? What makes it the best tool in an environment full of alternatives?
The most straightforward answer is that we use Ruby on Rails because it was my personal choice when we started the company almost ten years ago. As much as that is true, it deserves a deeper explanation to show it wasn’t a capricious decision.
Before diving into those details, it makes sense to explore my own personal history with RoR first.
Rewind 15 years
It’s been almost 15 years since my first contact with Ruby on Rails, back in an entirely different tech scene. In 2005, the world had just recovered from the dot-com bubble and people were starting to regain some confidence in the web as a medium.
Websites were becoming more user-friendly through the broader adoption of AJAX. The internet was evolving into its 2.0 stage, with an emphasis on being engaging and useful in a pragmatic sense.
At this point, web development seemed difficult to me. I was trying to learn programming through Perl scripts and CGI, experimentation with PHP and dabbling with Java. But nothing was clicking.
It felt like trying to see the big picture without being able to connect the dots in front of my eyes. Then I learnt about Ruby through one of my freelance gigs and everything started to fall into place.
Primate was born
When we formed Primate, I had a few years of experience writing Ruby on Rails code. I was familiar with the framework and I liked its philosophy and community.
It intuitively felt right and the work spoke for itself. Faced with practical tasks I could come up with working solutions using the RoR framework much quicker than others. Time after time, it allowed me to solve problems faster and better. I could approach complicated issues and come up with impressive solutions. (Although expectations were much lower than they are today!)
When I couldn’t work with Rails, I would come up with solutions inspired by the Rails philosophy or ecosystem. Most importantly, it encouraged me to improve as a programmer – to explore, experiment, play and have fun.
These motivations and emotions align with the core concepts behind the Ruby on Rails framework and its underlying language. And they link to the five essential reasons why we have used Ruby on Rails as our platform of choice for web development work for almost ten years at Primate.
1️. Ruby at the core
It may seem like an exotic choice at first, but Ruby is great as a software development language. It’s simple to write while being incredibly rich and complex.
It’s an excellent General-Purpose Language (GPL), but 15 years ago it was one of only a few languages which had the basic concepts of networking built into its core. This is one of the main reasons it's hard to imagine RoR written in any other language.
It’s straightforward to pick up and feels comfortable to write. With very little assistance, a beginner can jump into the framework and be productive in next to no time.
2️. Truly open source
Licensing and transparency has always been a significant factor for choosing Ruby on Rails as our primary development language. Both Ruby and RoR are distributed under MIT license, and most Ruby Gems are too.
From the spectrum of free-software licenses, MIT gives the most flexibility to the user and is sometimes described as anti-license. This may not seem so radical now, but 15 years ago free, open-source software was far less commonplace.
Legal licensing jargon aside, the other aspect of RoR being ‘truly open source’ is the people who work with the technology. The Ruby community is founded on openness and inclusivity. Patience and respect trickle down from those who build the language and framework, and this has a profound influence on the people working with it.
I believe the Ruby community has transformational power over individuals – something you can experience for yourself by attending a Ruby conference.
Perhaps the majority of software communities are the same now. Still, we took a strong stance in the past on values of inclusivity and openness, and set ethical standards for many others to come.
3️. Setting new standards
It's not only community values that Rails raised the bar on for web development, but almost every aspect of the industry.
Ruby on Rails went through massive growth in late 2000, and the adoption rate was incredible at the time. Everyone either wanted to do Rails or do what Rails did in some other language.
The MVC paradigm clicked and we saw a massive explosion of similar web frameworks in various languages. The one thing they all had in common was the aspiration to be like Rails, while very rarely proposing something new.
Another area where Rails was pioneering was security. The effort invested in developer education and the development of safe defaults was incredible and refreshing at the time. Rails is still rated as one of the most reliable web solutions on offer today, with security as a top consideration in its development cycle.
4. Shaped by software development best practices
Software development is a relatively new discipline. Best practices started to develop in the late 80s and early 90s of the twentieth century, at a time when RoR was the only web framework that took them seriously.
Following its creation, Ruby attracted a lot of attention from experienced programmers who helped to evolve it and shape its future. They were drawn by its simple yet powerful nature as well as disappointment with other platforms that didn't strike the right balance between stability and flexibility.
Far from the rigorous nature of Java, Ruby allowed programmers to test their ideas and concepts. This, in turn, led to the rapid development of workflows and toolsets, encouraging the evolution and adoption of software development best practices.
Rails as a web framework adheres to the same principles. Not only does it use a language with these ideas at heart, it pushed them into the emerging web development industry when the landscape for web technologies wasn't as bright as it is now.
David Heinemeier Hansson, the creator of Ruby on Rails, points to works of Martin Fowler, Kent Beck, Eric Evans and others as main inspirations for the design of the framework.
The reflective nature of the software development process for Ruby on Rails created a web framework based on tried and tested design patterns and innovative methods that bring stability, predictability and purpose to the web development process.
5. Democratising development
The original idea behind Rails was to take all the knowledge acquired through building first enterprise online applications and make it accessible to individuals.
This enabled the massive growth of modern web businesses from Twitter to Kickstarter and Github to Shopify among multitudes of others. And it remains one of the most popular frameworks used by Silicon Valley startups, bringing fast delivery of MVPs and allowing global growth for a relatively low cost.
Rails achieves this by making more tasks easier to do through levels of abstraction. Certain tasks that required a whole team twenty years ago can be achieved now by a single developer supported by a modern development framework, and Rails has always been at the forefront of this movement.
DHH calls this process conceptual compression and stresses it makes specialised, sophisticated knowledge accessible to regular people. When combined with the inclusive attitude of the Rails community and relative ease of learning, it opens up the possibilities to write sophisticated web software to individuals or small teams.
By simplifying the most mundane tasks, it empowers people to progress quicker and focus on important things – those which differentiate their product or make it better. This is a common theme in the community that drives these ideas forward and has built continuously modernised product ecosystems that have stood the test of time for 20 years.
Why Rails, then?
In conclusion (and in my opinion), Ruby on Rails remains the number one framework for web development today. Thanks to many years of core product development, all the classic web application problems have been ironed out and best approaches are well evolved.
Attention is directed at improving existing software rather than constantly reinventing the wheel. However, when a new trend in web development appears, there’s a rapid response from the community to come up with solutions to keep up with the web game.
The overarching philosophy of developer experience, happiness and conceptual compression (allowing developers to achieve more with less effort) is what makes the framework and the community so fascinating and refreshing. There's always a sense of building something for the greater good and to benefit others while pushing the industry forward.
As long as Rails manages to keep up with the ever-evolving web landscape, there's undoubtedly value in using it for web development. It's an incredible piece of software, supported by an even more astonishing community of people who benevolently push it forward while maintaining the highest standards of software development practice.
To read more about Ruby on Rails and its principles, check out their Doctrine. To understand more about the past and future of the framework, there are two excellent keynotes from Ruby on Rails Conferences in 2018 and 2019.