Programming languages are tools that help companies grow and fulfill their goals. Like any instruments, these need to be adapted to the scope of the work, and there is no universal “best” language for any job, all have advantages and disadvantages, although most come with an army of developer fans.

Why consider Ruby on Rails?

Ruby on Rails (RoR), or simply Rails, is a web apps framework based on the Ruby language that has affectionately been compared to a smart car, meaning it is practical, gets the job done in a small-scale environment, but it is not very fast or suitable for heavy duty.

However, if you are looking for a tool that can get you up to speed with building and testing a prototype for your website or web app in no time, hence valuing productivity and the ability to make changes on the fly, this might be an option worth considering.

Currently there are over 800K websites built using this technology, which could sound impressive, but it is only a fraction (0.3% of websites) when compared to WordPress’15.8M websites. However, when considering examples, which include AirBnB, CouchSurfing, Fiverr, Kickstarter and Github, the usability of the framework shines through.

Below, the experts from Iflexion find out the best features of the Rails framework and identify some of the most important shortcomings, to create a complete picture.


Arguments in support

Easy-to-use
According to its creator, Ruby on Rails was designed to make the programmer happy. This is achievedwith the elegant way of coding, which is close to natural language and requires fewer syntax rules that PHP, for example. One of the driving principles of coding in Ruby is DRY (don’t repeat yourself), which means that code can be easily recycled, repurposed, keeping the workflow at a high speed. This feature is important for the business owner commissioning the work, as it can translate in time and cost savings – an important aspect, especially for start-ups.


Excellent for prototyping
Rails offers an out-of-the-box environment that has basic modules and a myriad of options to help build a business app from scratch. The process involves playing with gems as LEGO pieces in the sandbox created by Rails. Since Ruby developers are used to designing their own testing code, it follows that there is no need for another team to perform this step. The whole process follows the Agile paradigm, creating a prototype, testing, adjusting, getting feedback and repeating until it meets the business needs. This shortens considerably the time to market and keeps costs down, allowing the idea to be either validated or redesigned.

agile-software-development


Convention-driven
The second guiding principle of Rails is Convention over configuration, which means that generally the structure of the web apps will be the same, which is another way to get a team of developers up to speed without the necessity of extensive documentation or explanations from previous teams that worked on the same project. This helps the company to find the best provider without worrying about transfer. Notably, Rails in particular, and Ruby in general, allow a high degree of customization, renaming, and user-defined entities, yet programmers choose to stick to the existing conventions for usability and convenience.


Extensive add-on functionalities in gems
“Gems” is a more poetic name for Ruby libraries, a way of adding a wide range of functionalities to Rails. A gem is part of the Ruby ecosystem and solves a well-defined problem, helping developersavoid re-inventing the wheel for anything ranging from search to pagination, or even SEO. These are similar to WordPress plug-ins and before solving any new problem through code, a developer should check if there is not already a gem doing that. This approach saves time and gives the developer the opportunity to create multiple app versions, instead of just solving a problem like authentication.

gem-releases-going-down


Tightly knit community of developers
One of the most valuable assets of choosing Rails is the vibrant community of developers who take great pride in their tools of choice. These people have a specific mindset, the more senior are used to helping novices and the juniors are not shy to learn on their own. Being an open source project, the internal ranking of professionals is given by the solutions offered for free on forums or dedicated platforms. Major cities even have known spots where Ruby developers meet and exchange ideas;those looking to hire the best can just drop in by for coffee.


Drawbacks

Resource intensive
The biggest flaw on Rail’s history is the Twitter story, an app initially build on RoR, currently on Scala, which is Java-based. The change was dictated by the fact that Twitter grew so much it needed a different approach that Rails was not ready to handle. The Rails framework is known to be more voracious on resources, compared, for example, with PHP and some servers refuse to support it. This problem can be fixed by choosing an Amazon, EngineYard or other provider. The takeaway here is to use Ruby on Rails for the incipient stages until you reach stability and change once you get to massive scale, if needed.


Little documentation
As this is an open source project, there is no way of imposing a standard when it comes to documentation, and sometimes programmers need to design tests or dive into code to understand the logic behind certain functions, in order to modify them according to needs. The upside of this is that it makes developers pay attention and even come up with creative solutions while learning.


Time-consuming setup for cloud
Cloud solutions are much more recent than Rails, therefore a bit of adjusting of the framework to the dynamic setting is necessary.J.Higginbotham, a senior RoR developer,explains why this process can be time-consuming if you aim to get all the steps right, also considering the security issues involved. The solution he suggested in 2015 was to off-load the work to a third party until an internal solution is found.


Difficult to find qualified developers
A regional difficulty is to find qualified RoRdevelopers. While in the Valley employers compete by payment, in some areas where there is a solid corporate culture focusing on Java and PHP, these professionals are scarce because there was no demand for such a skill. The best way to identify high quality devs is to follow the steps described in “A Hacker’s Guide to Hiring a Ruby on Rails Developer” by G. Caroll, a RoR engineer.


Conclusion

Ruby on Rails is an excellent framework for designing web apps fast and putting them to the test, polishing, if necessary. Gems offer almost any functionality you can think of and help developers create a working model in notime. Rails emerges as the best option for startups and established businesses. While the first are testing the market and have not yet embraced a well-defined process for their operations,the latter want to try a new approach or launch a new service, without integrating it completely in the existing IT ecosystem. If at some point the web app outgrows the capacity of the framework, it only means it was successful and it is time to choose a new tool for a larger job.