ArticleS. UncleBob.
RailS [add child]

Agile Web Development in Rails

It was time for me to learn Rails. So I went to the pragmatic programmers website ( and I purchased the beta version of Agile Web Develoment in Rails. I started to read.

The book starts (like any bood book should) at the beginning. It leads you through the installation and setup of Ruby and Rails, and supplies you with a simple set of tests you can run to be sure you've done it right. I had a little bit of trouble setting up MySql but all else was trivial. (The problem had to do with the socket file which was in /opt/local/var/run/mysql5/mysqld.sock instead of where the book thought it should be).

Once the setup is complete, the book turns into a high speed downhill race. It moves as very high speed while leading you to create a shopping cart web application laced with Ajax, security, admin, reporting, unit testing, and integration testing. It's quite a thrill! And to do it justice I think I'm going to have to take the ride a few more times. It throws a lot of detail at you in a very short time. Frankly, it's hard to keep all the threads together.

Having finished the first part of the book I realized that I needed to brush up on my Ruby. So I broke out the pickaxe book (Programming Ruby) and did a full-on, very instense, review of the language. I also downloaded rspec ( and began to work through some Kata to get some practice with the language.

So I'm in the midst of a very fun ride; and I'm looking forward to completing the book and writing a Rails application.

From what I have seen so far, Rails is a hyper-productive agile environment that EVERYONE should be taking very seriously. It seems to me that a Rails team could leave a Java or .NET team in the dust by a factor of five or so. I know the rebuttal to that will be the dreaded "E" word. My response to that is: "It's OK with me if you want to go slow, just get out of the way while the rest of us get stuff done."

!commentForm -r
 Mon, 18 Sep 2006 09:10:00, Luis, Rails & PPP
Bob, I was reading your PPP book and during the Payroll example you say that DB decisions (tables, fields, etc) should be postponed as much as possible. In fact, a DB is just a mechanism to make your data persistent, and I agree.
On the other hand I see that Rails makes you start thinking in the database scheme so earlier in the process, and the whole design is tied to the DB. What do you think about this? thank you.
 Tue, 29 Aug 2006 03:48:25, John Goodsen, it's about time! ;-)
Welcome to the world of Rails, Bob. How soon before Fitnesse is a Rails application now? ;-)
 Mon, 21 Aug 2006 11:44:36, Troy Taft, JavaScript[?] and the Dynamic Edge
That 5X speed increase is so familiar with the switch from static to dyamic. I am finding, however, that in .NET all I had to do is switch to JScript .NET. I also get the advantage of similarity between Web client and Server side languages. I'm quite impressed with the concept of one language for both server and client sides of the Ajax problem... and, it would seem, JavaScript[?] would end up being that langauge in the end... but who knows?
 Mon, 14 Aug 2006 15:44:12, Uncle Bob, A tale of two books.
Dear Reader:

The older book is "Agile Software Development, Principles, Patterns, and Practices" (PPP), and includes examples in Java and C++. The newer book is "Agile Principles, Patterns, and Practices in C#" (PPP#) and all examples are in C#. What's more PPP# includes a lot of material from yet another book named "UML for Java Programmers" ported to C#.
 Mon, 14 Aug 2006 03:02:21, reader,
Dear Uncle bob
Would you like to tell me the difference between your upcoming book "Agile Principles, Patterns, and Practices in C#" and your award-winning book "Agile Software Development: Principles, Patterns, and Practices". I am wondering whether I should order the new one.