Learning a new language and a new framework can sometimes be overwhelming simply because of not knowing where to start, and due to the large number of new terms and concepts. I hope to help ease the learning curve by presenting here a brief overview of the most common terms and concepts you will see as you begin your Rails learning adventure. I will then follow with another post called, How To Learn Rails, which will present the reader with some step-by-step suggestions for getting started.
Update: I do hope to get around to writing some helpful tutorials on Ruby on Rails, but currently I’m working on a web site specifically for the Rails community that I think will be even more beneficial than anything I could write here. So until that is done and released, I probably won’t get around to writing the tutorials.
This is not a complete list of every term and concept, but I believe it is the right size list with the most important initial definitions.
Overview of Ruby on Rails
Ruby on Rails consists of two components. The core component is Ruby which is an object-oriented interpreted scripting language. It was created by Yukihiro Matsumoto and released in 1995. Rails is a web development framework built with the Ruby language. The framework was created by David Heinemeier Hansson, while working for 37signals on their product Basecamp, and released in July 2004.
In order to become a proficient Rails developer, you will need to learn both the Ruby language and the Rails framework, but it is such a well integrated framework that initially, you will be unaware of where one ends and the other begins.
Rails Terminology
By becoming familiar with the list below before proceeding on with further study, you’ll be more comfortable as these terms present themselves to you.
Model/View/Controller pattern
Usually referred to as MVC, this is a pattern that goes back beyond web applications, but today is most commonly used in reference to a web application. The idea behind this pattern is to have a separation in the application between three distinct functionalities: the Model, the View, and the Controller. The Model represents information that you are using in your application. In an Object Oriented language this is commonly represented by classes. The View is the user interface that is used to interact with that data. This could be an interface written in HTML, Flash, or any other technology used for the interface. The Controller responds to user interactions and in turn, performs various operations on the Model, including causing it to persist (such as in a database), be redisplayed in a different format, or any of a number of other functionalities.
All modern web development frameworks are based on MVC and Rails is no exception.
full-stack framework
A framework means the foundational functionality or the “frame” for a web development platform. This frame is usually built on top of an existing language, such as Java, PHP, C#, and in our case Ruby. This frame provides the developer with the basic functionality needed to produce a web application. Rails is a framework for Ruby, thus the name Ruby on Rails.
The full-stack term is used by the Rails promoters and community to describe their belief that the Rails framework is complete and provides the normal functionality you will need while developing the majority of web applications. Many frameworks will not provide all the functionality needed, but only the core functionality. In many frameworks, you may spend a large amount of time getting, learning, and configuring third party libraries and solutions to fulfill very important elements of common web applications. But Rails’ goal is to provide functionality for the developer to eliminate the redundant development of the same web framework tasks over and over. This includes creating the user interface, dealing with business logic, persisting data into the database, and everything in between. All of it, already working together, without the need for the developer to figure out how to configure these elements.
Read the rest of this entry >>