Over the last two months I have been looking into a new way of doing web-development, and found an ingenious timesaver in the relatively new and popular framework Ruby on Rails.
Ruby on Rails is a web-framework built on the very flexible language Ruby. It is based on a few very useful mantras such DRY – don’t repeat yourself –, and convention over configuration. If you have made any applications for the web you probably know that much of what you do goes into a pattern. With Rails you can rely on automatic creation of many of these tasks and just focus on the important stuff.
If you have designed a computer system earlier you have probably tried to stay true to the division between the Model, the View and the Controller. By distributing the responsibility throughout the code you can make something which is understandable for others, or future you, and prevent many of the pains a disorganised computer system may bring. Rails make this easy by having a strict folder structure. Once you create a new project you will always find the functions in their designated folders.
Installing Ruby on Rails is quite easy, and with the Ruby package-system Gem you can easily harness from the many hours people have spent adding functionality and interfaces to many of the interesting technologies and platforms which have emerged on the Internet. Geocoding, Twitter, Facebook, YQL and more is easy to use with Rails. By having software controlled by a package-system upgrades are made very easy and if you’re afraid of getting deprecated sometime in the future you may also freeze what versions you want to ship with your application.
You find great instructions on how to install both Ruby and Rails by using Google. As much of the functionality is initialised through a command line I would recommend you to use the Terminal on a Mac, or a taste of the various UNIX or Linux flavours available. If you are a Windows user, you can get access to an emulated Linux system through Cygwin.
If you really want to see what powers the “new” Internet provide today – in form of getting things done very quick and agile – make a couple of scaffolding-projects (a command to Rails which creates a controller with RESTful methods to a Model), put them under git version control, and push the code onto GitHub and Heroku. You can make something very cool very fast, and very cheap or even for free.
I don’t know whether this post is a ‘seller’, but if you think it could be interesting to try out something cool go onto the Ruby on Rails webpage and do a quick tutorial. If you think it is interesting a lot of resources are available online, and if you prefer screencasts there are some at iTunes and Lynda.com have also made two tutorials you can follow.
PS: This is just a very short ‘Have you heard about?’-post. I will try to write some hints and tricks later.