Rails is a development tool which gives web developers a framework, providing structure for all the code they write. The Rails framework helps developers to build websites and applications, because it abstracts and simplifies common repetitive tasks. Rails is written in Ruby, the programming language which is also used alongside Rails.
Ruby is to Rails as PHP is to Symfony and Zend, or as Python is to Django. The appeal of Ruby to developers lies in the elegance and directness of the language. A key principle of Ruby on Rails development (henceforth ‘Rails’) is ‘Convention over Configuration’ (CoC). This means that the programmer only has to write new code for the areas in which their application deviates from the standard.
Another characteristic of Rails is the emphasis on RESTful application design. REST (Representational State Transfer) is a style of software architecture based around the client-server relationship. It encourages a logical structure within applications, which means they can easily be opened up as an API (Application Programming Interface). Agile web development is also advocated within the Rails community. This is a particular method of structuring the development process and ensuring that effective communication occurs between the developers and the client.