"Simple design that even my grandma can understand"

Hamilton Verissimo captures the essence of what Ruby on Rails is about:

On the other hand I’ve coded the Castle on Rails, which is based on Action Pack. I have no merits here, the credits should go for the original author of Ruby on Rails, which implements an incredible simple design that even my grandma can understand how it works and how to create new controllers and views.

Good design doesn’t need to be hard to use. Best practices should be implemented, then hidden away. Programmers shouldn’t need to remind themselves how clever they are by applying the same complicated pattern over and over again. Extract, abstract, move on!

Escaping Java but not its thinking

Kevin Dangoor is getting out of J2EE development after four years of legacy mud and fear-driven technology choices. He has picked to start his new businesses on a dynamic language with Python. Unfortunately, he’s still stuck in Java-skewed thinking on the difficulties of learning a new dynamic language or framework:

Ruby looks nice and Rails is attracting a lot of attention for good reason. Seaside on Squeak should be attracting attention, because it looks like a very productive way to put together apps. There are two problems with both of these: 1) I don’t know them, and 2) they are less mature and have smaller communities than Python or Java.

I can certainly overcome (1), but that would slow me down initially. The clock is ticking, because I need to generate money to pay my mortgage and all that… The second point also means slower velocity: there are fewer places to turn for help. There are fewer prepackaged modules, and those modules may be less-tested.

I guess its natural to think that you must stay in the competency trap when exiting one of the deepest and most alive in the tech world today. But it needs not be this way. Very much unlike Java, it doesn’t take months and months to gather hard-won experiences with application servers or climb mountain-high framework stacks when starting out with Rails (or Seaside+Persistance for that matter). You can try it out in a day or two and have a pretty darn good idea of what’s going on. So the cost of escaping the competency trap is at an all time low.

So let’s address the charge “less mature and have smaller communities”. I’ve found that while a language community at large is a nice backup, the real importance for productivity is having a strong community around the frameworks that you pick. When people have problems with Ruby on Rails, it’s very rarely the general ruby-talk mailing list that hears their pleas. It’s the Rails-specific outlets.

Speaking of those, the Rails mailing list is buzzing with activity averaging 26 mails per day in December. The Rails IRC channel is ever so alive filled with between 100 and 120 developers every single day. This is a uniquely vibrant force that’s able to provide end-to-end help and advice. Unlike the scattered search for assistance that’s necessary when trying to combine template, web-flow, and persistance frameworks from separate communities.

This is not a charge against Python for not having a complete on Rails solution, but rather just a dissimal of the claim that the Ruby sub-community of interest should be less mature or vibrant than a comparable stack in Python. It’s simply not the case.

So. Blue Sky Development woes to persue “technology choices [that] can be made on technical (and business) merit without politics getting in the way”. I’d say you owe that statement at the very least a day or two outside your most immediate comfort zone. I’m pretty sure you’ll find that the competency trap is not inescapable and that the fears of a missing community are expelled instantly.

Rake 0.4.14 includes fix for Ruby 1.8.2

Jim Weirich has just released Rake 0.4.14 that includes the fix by Dave Halliday to cure test suite runnings with Ruby 1.8.2. You’ll want to grab this right away in preparation for your forthcoming upgrade to the latest Ruby release. And what better way to do that than with gem install rake. Thanks to Dave for the fix and Jim for the expedient release!

Rails logo remixed by Olivier Hericord

Despite my initial resistance, Olivier Hericord pressed on and prevailed — against my own odds — to produce a remixed version of the new logo that was greeted by the majority of the community as an improvement. And I concur. The remix signals less rigidness and more fun than the original — two important properties to Rails development.

Original    vs    Remix

This process also proved that patches are not just for software. Once you share the source, improvements are bound to occur. That’s another reason that I’m welcoming the remix. The community protested, the community acted, the community celebrated change, and now, hopefully, the community moved on.

(Just in case you’re not quite ready for the last step: Source for the remix in AI format)

Celebrating 219 applied patches since 0.7

Rails has absorbed ~219 patches since the ticketing went Trac around the release of Rails 0.7. That’s almost three patches applied per day. Quite the barn raising. Seems like we’re keeping the pace too with more than 20 patches awaiting to be applied from over the last week. And I even did apply a few. And some of these “patches” are huge things like a DB2 and a finished SQL Server adapter.

The open source is working.

Marten opens Epilog for Trac'ing

Alongside EliteJournal, Epilog is the other major weblog application development going on with Rails. Marten is set to release a new version running off the 0.9.x series of Rails in “…a week, two at most”, but you can already Trac along as Marten just set up shop at dev-epilog.standardbehaviour.com.

For a small taste of what’s to come, Mark IJbema is blogging using the in-development version of Epilog. Note the small promising details like human times in the form of “just after midnight”. Promising stuff!

Drew McLellan predicts "More Rails" in 2005

Among predictions of having a beard will be the hot thing in 2005, Mr. All in the Head highlights Rails as having an especially bright coming year:

David Heinemeier Hansson’s Rails framework for web application development in Ruby is set to hit the magic v1.0 in early 2005. Rails is really picking up momentum, and for good reason. It’s the web app dev framework for the MVC generation, or something. If you haven’t checked it out yet – especially if you do a lot of big development in dynamic languages such as PHP – do so.

Running rake tests with Ruby 1.8.2

If you’re among the early adopters of Ruby 1.8.2, you will have noticed that rake chokes when attempting to run all the tests in a suite. Thankfully, Dave Halliday was quick to device a fix, which you can apply right away while we await a new release of Rake from Jim Weirich.

Splitting off the research patches

I’ve introduced the new [RESEARCH] prefix to ticket summaries in addition to the existing [PATCH]. By applying the [RESEARCH] prefix, you’re sharing a patch with the world that either needs additional testing, suggestions, or development before being ready for trunk inclusion. We have a new report as well to show the research patches of which there are currently five.

Available for hire?

I’m regularly getting requests from people who wants to start up Rails development, but are looking for a way to kick-start the affair by retaining one or more experts. Some make good candidates for referring to the firms listing themselves on the Commercial Support page while others are looking to hire developers into their team on either a contract or full-time basis.

It’s for the latter scenario that I’ve started the Available for Hire page on the wiki. If you’re a single developer looking for work with Ruby, please do add yourself to that page if you feel your skill set is at a level where you could consider yourself “capable” with Rails.

Defining “capable” is always hard, but you should probably at least have made significant contributions to the framework and/or have one or more Rails projects under your belt. Such a project can very well be a demo application, though. It needs not be commercial work.