Rails is More than a Framework

Rails is More than a Framework

It’s easy to fall into the trap of loving your technology of choice. We’ve all done it as developers. Rails developers love their framework and the ruby language, and that can be a good or a bad thing depending on how you look at it. I believe some languages and frameworks deserve the love and affection they get more than others.

Rails makes you better

Anyone who has tried getting into Ruby on Rails will know that it has a steeper learning curve than picking up node.js or PHP. That is because Rails is both a framework and a combination of personalities with a set of very strong opinions on how things should be done. As a result people usually flock to something they think they can use get things done quick and easy, as in they don’t have to learn the framework or the design patterns or engineering principles imposed by the Rails community. They can just use the tools and libraries and do whatever they want. However things that get done quick and easy are generally just not good enough. Experienced Ruby developers I’ve worked with over the years have this attitude of “it needs to be done right!” or “it needs to be beautiful or its not worth doing”.

Most people will argue that there isn’t enough time for doing things right. The way I see it if you can’t allocate enough time to do it right, its not worth doing in the first place. Most of the time my team and I have had to ‘hack’ something together or do something quick and easy it has backfired on our faces, and ends up taking twice as long and costing twice as much as doing it right the first time round. Doing things right the first time round is the only way to do it.

Sense of Design

Working with Rails as a developer will make you appreciate design and engineering of solutions. The ‘Rails Way’ usually abstracts code in manners I have seldom seen in any other ecosystems / frameworks. I’ve worked with experienced developers who’ve built complex pieces of technology but have missed out on ‘design’ of code, as a result they struggle at creating code that is easy to follow, minimal, easy to test, and generally their code lacks cohesion and consistency. In fact what has started happening is I now see more and more frameworks / ecosystem borrow from Rails for this very reason.

Innovation in Rails

There is also the matter of technologies that is implemented in Rails before any other frameworks or platform. For example the ActiveRecord gem that is included in Rails is the best implementation of the Active Record pattern. In fact many other implementations of the Active Record pattern actually borrow from the ActiveRecord gem.

Enforcing convention over configuration allows developers to focus on the business intelligence. As a Rails developer most of the decisions about which libraries to use and how to implement certain technology patterns are already decided for you, so what you are left with is your actual implementation of the solution to the problem you are trying to solve. You literally get down to business faster than any other platforms.

Then there are technologies like Variants which is a much better way of building responsive sites. You don’t have to fight with your css and make compromises to get one style to work with different screens, you can get the server to recognise which device is calling the page and serve assets specific to the device.

Rails contributors are not afraid to break the rules when needed. They’re not afraid to say “I know a better way to solve this problem, so I am going to do it my way”.

This mindset forces Rails developers to think outside the box, when it comes to solving problems. It forces them to not be afraid to break the mould and go beyond the requirements. It’s the combination of having good sense of design from working with a great framework and learning from the people who established these patterns and the audacity of wanting to do things better that makes Rails developer better. That’s not to say that developers of other languages and frameworks can’t be as great or greater, but I personally see it more in Rails developers or developers who have used Rails extensively at some point. When a Ruby / Rails developer adopts new frameworks or other languages they are usually thinking in the same kind of way, design patterns, testing, clean code, good defaults. The same kind of things that they learned working with Rails carries over very quickly to their code in other platforms or when developing their own libraries.

Rails isn’t just a framework its a combination of great technology and great philosophy inspired by amazing technological leaders, that understand the importance of quality and community. Rails contributors generally want to do more than just ‘get the job done’ they want to ‘get the job done right’. This is what makes Rails developers stand out from the crowd.