Tim O'Reilly has said "Ruby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days."
Please explain why these powerful web applications are now able to be developed faster with ruby on rails.
You might enjoy reading Martin Fowler's writings on Ruby and Ruby on Rails. For example, Evaluating Ruby and Ruby at ThoughtWorks. ThoughtWorks is perhaps the largest agile shop making heavy use of Ruby and Martin is their Chief Scientist.
Compared with (for example) Java, ruby is a relatively "low ceremony" language - getting ideas from the bran of a developer to valid Ruby code involves less boilerplate and repetition. Ruby is also dynamically typed, which also helps reduce the amount of type declarations and the size of variable declarations.
Even if you disregard everything else, just this reduction in code size and typing boredom can help make a language more suitable for agile development.
One very basic difference is that Java, for instance, has C++ roots... roots that were aimed at execution performance, not productivity. Also, Ruby is aimed squarely at the developer: less verbose, more expressive, understandable, and best of all - fun!
Frank Carver used a great quote describing Ruby (low ceremony). Ruby feels a lot less like "coding", and more like "trying out ideas".
As far as the Rails framework itself, it's a lot of the things you DON'T do:
configure the webapp
parse xml to objects/ objects to xml/json/html
write a ton of validations
type and tune a bunch of SQL (DDL or queries)
hand-write ajax or prototype
bind form elements, parse URL parameters
spend time searching for existing solutions only to have to search out their dependancies (this jar needs these three jars which need...)
pluralize, singularize, capitalize, camelize, humanize, turn into a sentance, format date and time
configure dev vs test vs prod environments
Plus, you get a lot of advantages that come with using Rails (or gems along with rails):
restful services/web-app urls
easy gem integration
great testing support (unit, functional, integration, performance)
rails application bootstraps (boostrap a: social media site, blog, etc)
a vibrant community
ever expanding platforms (JRuby/Java, IronRuby/.net, etc)
deployment with capistrano
Try a chapter or three of Agile development with Rails, and you'll have firsthand experience at Agile with Rails. I don't think you'll be disappointed.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop