Ruby on Rails is one of the unrated programming languages, gaining popularity over languages like Python, PHP, GoLang and NodeJS. Let’s look at some of the reasons why Ruby is a good choice for a modern web application.
Pros of Ruby on Rails
1. Tooling: Ruby offers excellent tooling that helps you to provide more features in short span of time. A standard structure for web apps is assured with all the common patterns for application development.
2. Code Quality: It is claimed that the third party Ruby code is substantially higher than their NodeJS or PHP counterparts.
3. Libraries: This third party module finds as a gem for anything you are planning to develop. They are open source and searchable through www.rubygems.org.
4. Test Automation: Big Ruby community facilitates for testing and test automation. This helps you a lot in delivering top-notch software.
5. Wide community: Reports claim that every major city in the world has a Ruby community that conducts regular meetings. It is also the most popular language on social coding site Github.
6. Choice of Silicon Valley: History shows that technology that is popular in the Silicon Valley will be gradually adopted across the world. And, big startup successes at Silicon Valley use Ruby on Rails.
7. Productivity: This compact yet fluent language, when combined with third party libraries, allows you to develop features in a remarkable speed.
8. Responsible developers: Ruby on Rails developers are much careful about following the rules of responsible development. You will find your project completed in better shape if you start small, tackle vertical slices, write simple code and share ownership.
9. Next generation language: Ruby on Rails is the language of choice for many popular online code schools, which indicates that a large number of talented programmers will be joining the Ruby community in the upcoming years.
Cons of Ruby on Rails
Like any other things, Ruby does have its cons and these could be the reasons why most people don’t prefer Ruby on Rails.
1. Runtime Speed: Ruby is reported for being slow and it is true when compared to the speed of GoLang or NodeJS. The performance of the language is actually unlikely a bottleneck for a business. If you bother a lot about the runtime speed, then think about incredible successful app like Twitter.
2. Documentation: Sometimes it is hard to find good documentation, especially for libraries that heavily use mixins. You will be asked to use the test suite as documentation. However, this is not a bad thing as the suite could be the latest representation of the system.
3. Boot Speed: This is one of the major issues we hear from developers working with Rails. Well, if you have many gem dependencies and files, you will take a good amount of time to start, which might block developer performance. Latest Rails versions have combated the issue with the introduction of Spring.
4. Multithreading: Rail goes on multithreading while other IO libraries support Global Interpreter Lock. Hence, if you are not careful, requests will line up behind the active request and can bring up performance issues. Practically, this is not a big problem if you use libraries that support GLI.
5. ActiveRecord: Ruby on Rails heavily uses ActiveRecord and many Ruby gems exhibit hard dependency for it. Though it is an excellent design pattern, it makes your domain tightly paired to your persistence mechanism. This is not ideal and can cause bad architectural decisions.
To conclude, we can say that finding an experienced PHP developer is hard, particularly in a growing and active high-tech market. We can argue that finding experienced PHP developers are more difficult than finding good Ruby developers because being an experienced PHP developer needs more experience and more discipline when compared to Ruby, due to the fragmented documentation and inconsistent API features of PHP. So, instead of avoiding a good thing because it is difficult, you should train Ruby developers yourself! If you agree it is the best technology to use, invest your time and effort in it.