To understand what Ruby on rails is, we first have to understand what Ruby is. Ruby is an object-oriented programming language that from its beginning was designed to simplify the work in creating software applications without losing the power of the more complex development languages. Therefore, in Ruby, you should be able to create complex applications using command words in much less time than it would take you to create that same application in a more complex language like Java.
Ruby on rails then is a web application framework based off of the Ruby language. Rails generally uses a large library of pre-written libraries to perform basic functions needed in web applications. Ruby on Rails was initially launched about 2 to 3 years ago as a web application framework. It has since then gained a lot of popularity among developers because of its ease and simplicity. Most developers who have adopted Ruby on Rails say they would never go back to another development platform because it is so much easier and requires less code to do something with Ruby on Rails that in any other previous language. Although this technology has not gained an almost immediate and immense following such as PHP, it does boast benefits that serious developers might be interested in looking into.
So if you are a PERL, .NET, PHP, or JSP programmer, you might be thinking this: “Why should I bother to switch to or ever learn Ruby on Rails” or “What are the advantages of Ruby on Rails”. These are valid questions to which there are generally two answers to. The first is that with Ruby on Rails, you can build applications much faster than in other languages and because the applications use less code, they are easier to maintain. The internal library that Ruby on Rails has is quite impressive and eliminates the need to write many functions that you would have to write in other languages. The second benefit is that all of the functionality of RoR (Ruby on Rails) is contained in the framework itself, thus eliminating the need for configuration files which are prevalent in other languages, especially PHP and PERL.
So if Ruby is so much better than other web development languages, why has it not spread like wildfire the way PHP has? The answer lies in many reasons of which we’ll look into some here. First and foremost, Ruby is still not widely supported among web hosts. While the framework might be free, plug-ins to many web hosting administration panels such as directAdmin are not. This discourages many of us from even touching rails in favor of the free PHP platform. Most developers also agree that RoR is generally more resource intensive on the server than PHP. This is a discouragement to some open-source developers who are trying to maximize efficiency. Another huge problem with RoR is the lack of good documentation akin to the kind that is provided for PHP over at PHP.net. This lack of good online documentation makes it hard for developers who are just getting started to find what the library functions actually do and increases development time. Still another reason is many development platforms already have their own frameworks that provide similar benefits as the Ruby on Rails platform. One example is the Cake framework in PHP with its own built-in libraries and functions. Last of all, but not least of all, Ruby on Rails is not as newbie friendly as PHP. This is true of all forcibly object-oriented languages. Everything is contained within an object in RoR, which forces the programmer to have some understanding of how OO works before they can actually start programming anything. This is a big barrier to people who are just starting out in programming. PHP caught on fire because anyone could learn it, mainly because it did not force OO on people who didn’t want to use OO. While OO may force cleaner code, it is also a wall that many newbie programmers do not wish to scale.
If Ruby on Rails ever wants to catch up in popularity and become main stream, it needs three main things. The developers needs to push web hosting companies to support it for free, new and better documentation needs to be written for its libraries, and it needs to have an easier learning curve at the beginning for newbie programmers so more people will be willing to learn it.