Ruby is a dynamic, reflective, interpretable, high-level language for fast and easy object-oriented programming. Ruby on Rails is a full-fledged, multi-level framework for creating database driven web applications, which is based on Model-View-Controller architecture.
We should probably start with mentioning that Ruby is not for beginners. Most developers start using Ruby after a few years of programming experience in any other language. Usually a Ruby on Rails beginner is an experienced web developer with significant knowledge of developing projects in other languages who understands the principles of programming and web development in general.
Major advantages of Ruby/Ruby on Rails
The speed of development is considered to be the main advantage of Ruby and Ruby on Rails. RoR has been proven to increase the speed of development by 30-40% in comparison to any other programming language or framework.
This increase is caused by a wide range of readymade RoR instruments, a huge set of ready solutions in the community and the simplicity of the development process in Ruby. Moreover, the standards of file placement and code writing in a project and the general rules of programming in Ruby on Rails structure any project substantially making it very readable.
Useful development instruments
Testing: Unlike other frameworks, RoR includes excellent tools of automated testing.
Caching: RoR contains excellent data caching tools. In 95 % cases you will need nothing but the readymade caching solutions in RoR.
Localization: Basic Ruby on Rails package includes localization tools. The support for different languages can be provided from the very beginning of project development as well as later on. RoR is capable of giving separate patterns for different languages, it contains config files with translations of terms and many other standard instruments for project localization.
Routing: In Ruby on Rails you get an opportunity to customize your routing and titles of the main sections. Ruby on Rails projects always have beautiful, simple and understandable URLs.
Validation: The instruments for incoming data validation are realized of the highest level in Ruby on Rails.
Database migration: In RoR you get tools for working with databases – migrations. The database structure is kept in the app’s code and is configured from the project. Your structure will always stay in the repository, any change in structure will be documented and linked with a certain commit to the repository.
Safety: A developer will have to try really hard to make a safety mistake when using RoR.
Deployment: There are many nice tools in the Ruby on Rails environment, including those used in the deployment process.
There are no Ruby on Rails developers: There are, but they are less numerous than PHP developers. However, RoR developers are a lot more qualified, since many of them start using Ruby after a few years of PHP experience.
Ruby on Rails developers are expensive: High level developers are expensive, no matter which language or platform they use.
Rails can’t scale: This is the biggest misconception of those who haven’t tried writing a serious project in Ruby. Ruby on Rails scales beautifully. Take a look at GitHub, Groupon, Basecamp etc.
Ruby is slower than PHP: At the moment Ruby’s productivity is not worse PHP’s. But since the time of page generation is mainly the time spent on database queries, the speed of a language itself is usually not that important. At the same time you get an opportunity to use the main RoR advantage – high speed of project development and low cost of project maintenance.