The Rails 3 tutorial plan

Mar 18, 2010 • posted by Michael Hartl

UPDATE: The Ruby on Rails 3 Tutorial book is now available!

Some readers are understandably eager to sink their teeth into a Rails 3 version of the Ruby on Rails Tutorial book, and have been agitating publicly for a release. I wanted to address those concerns, and let you know what the plan is.

In this age of perpetual beta—I mean, Gmail was in beta for five years, for Pete's sake—it's understandable that expectations for the Rails 3 beta release are high. And indeed, there are lots of goodies in Rails 3, but it's a real beta release, not a Gmail-style "beta" release. The Rails Core team, and Yehuda Katz in particular, have emphasized that the principal audience for this beta release is plugin and gem developers, not Rails application developers. Due to the new public API, many parts of the Rails ecosystem need to be updated for the new version, so Rails Core wanted to get Rails 3 in front of plugin developers as early as possible. Once the situation stabilizes, they will move on to release candidates aimed at application developers.

There are other considerations as well. For one, Rails 2 and Rails 3 are incompatible; they can't currently be run on the same system. (I learned this the hard way.) Even worse, the Rails 3 beta fails to uninstall cleanly, which leads to all manner of confusion if you want to revert back to support Rails 2 legacy projects. (Also learned the hard way.) The only way I know of to run both Rails 2 and Rails 3 on the same machine is to use Ruby Version Manager, which is awesome but represents an awful lot of overhead for an introductory tutorial, and is also somewhat error-prone. In addition, RSpec 2 (the version of RSpec compatible with Rails 3) is also in beta, and is under heavy development. (Autotest support, for example, was updated yesterday.) Since Rails Tutorial uses RSpec, this affects our plans as well.

In short, it is too early to release a Rails 3 version of the tutorial. The result would be an exercise in frustration, especially for readers new to Rails. (Given the many hours I've already burned on Rails 3, I'm sure even experienced Rails programmers would feel the pain.) On the other hand, Rails 3 is exciting, and I want a new version of Rails Tutorial as much as anyone. We just need to make sure that it actually, you know, works

In this spirit, I am hereby forming a Rails 3 Tutorial Brigade in charge of insuring that the updated tutorial Just Works™ with Rails 3. Readers interested in being part of the select early readership for the Rails 3 tutorial should sign up with their name and email address here. I will contact you with further instructions when the time is ripe. :-)