Ease of development, speed of execution, pick two

Justin Gehtland has been working on an application using the Java/Spring/Hibernate/JSTL stack for about 5 months. He started redoing it in Rails as an experiment and found something surprising:

I’ve been able to re-implement 80% of the functionality in just under four nights of work. Some of that most assuredly has to do with the fact that I understand the domain pretty thoroughly by this point. But a lot of it has to do with the sheer productivity of the framework.

He attributes this to convention over configuration, and how the “…configure, compile, deploy, reset cycle for running tests is time consuming on my original stack, and non-existent with Rails”. But all that is just the familiar tune on “ease of development”. Here’s the real kicker:

Rails is actually faster.

At runtime, the Rails implementation is at least as fast as the original stack in almost every case, and for a not-insignificant portion of actions, actually performs better. I haven’t run benchmarks yet, but I will as this effort progresses, but I was shocked (shocked, I say) to discover this.

Justin is the co-author of Better, Faster, Lighter Java and Spring: A Developer’s Notebook.

Welcome on over, Justin! I can’t wait to read more about your adventures with Rails. And best of luck convincing your customer to dump the 5-month effort in favor of your 4-night rewrite. I’ll be cheering for you.

Should I learn Perl with Maypole, or Ruby on Rails?

Ben Hammersley was debating with himself in public whether to dive into Ruby on Rails or stay with his trusty Perls and pick up on Maypole:

Should I learn Perl with Maypole, or Ruby on Rails? Perl I know, Ruby I don’t; Maypole seems a bit under the radar, Rails is hot hot hot; Perl has shedloads of modules to give other really useful features, Ruby has less.

I offered my always impartial and objective advice that perhaps Ruby on Rails would open his mind more. Learning a new language and all. Hammersley responded:

I’m inclined to go with his sage advice and learn a new language as well. And a new version came out this morning, too. That’s it. I’m sold.

Welcome on board, Ben!

Rails 0.10.1: FCGI stability, WS generator, tons of fixes

This is the point release to tie up the various loose ends introduced with Rails 0.10.0. Action Web Service has seen the most interesting improvements feature-wise with a new generator and tie-ins with the testing setup. There’s better support for XML-RPC: Instead of performing type checking on the parameters the remote client sends, AWS does casting to try and make it compatible with the signature instead, but if it fails, passes the parameter through anyway. And cleaner support for “prefix.methodName” XML-RPC methods with a new dispatching mode named :layered (this is an incompatible change for XML-RPC services that use namespaced XML method names: metaWeblog/blogger implementations will require changes).

As Basecamp moved to lighttpd/FCGI this past week, we also got a bunch of good fixes in that increases the stability of FCGI in a production environment quite a lot. No more FCGI dying and in case uncaught exceptions are raised, you’ll know about it in log/fastcgi.crash.log.

In total, we managed to squeeze in no less than 52 additions, changes, fixes, and tweaks. See all the changes in the changelogs for Rails, Active Record, Action Pack, Active Support, and Action Web Service.

No application changes should be required. Update using gem update rails

Rails is the #1 gem with 20K+ downloads

Rails has now assumed the #1 gem spot with 20,801 downloads at the time of writing. Just in front of Rake, which have long had a solid lead as a required dependency to Rails. Out of the 11 gems listed on the top downloads table on the cover of RubyForge, Rails is now responsible for the six of them.

Funny side note: The two programmers at 37signals (yours truly and Jamis Buck) stewards 8 out of 11 gems listed on the hit list.

Rails praise from around the web

The latest article by Curt Hibbs and the excellent Four Days with Rails are working wonders to attracting new people to Rails. Here are some of the snippets from people who’ve been blogging their discovery of Rails the past few days.

Nicholas Jon lists Ruby on Rails as Things to Learn:

Everyone seems to be all-a-twitter with this framework. I started messing around with this last weekend and am hooked. At this point it’s a little like listening to an Italian opera — I can tell everyone’s saying beautiful things, I just haven’t a clue what any of it means.

…in the comments, Todd follows up with:

The more I use Rails the more I like it. Partly because it’s improving all the time and partly because I find out new ways to make development less painful with it. I was burning out pretty bad using PHP.

Shane picks up on the over-serving riff and writes:

Rails fills a gap that has existed in web frameworks for a long time. You have J2EE which is geared towards the most complex projects, and then you have server side scripting which can be used for simpler projects. Rails fits right in the middle, which I believe satisfies the requirements of a majority of the projects out there.

Zef Hemel is digging into the scaffolding fun and ease of installation:

I love Ruby on Rails. It’s very easy to use and seems very productive. I’ve often complained about the amount of work that you have to put into applications that basically don’t do much more than adding, editting, linking and removing entities. RoR makes this very easy… What I also liked is how easy it was to get started. On Windows all I needed was to download the Ruby installer and MySQL and I was ready to go. It was very easy to install RoR by using gems and as RoR came with the Webrick webserver, there was no confusing Apache configuration or anything.

Rails Noise: Blogging the learning process

Tim Germer is learning Rails and liking it so much that he decided to start a blog about the experience. And such was Rails Noise born. As background for his interest in Rails, Tim writes:

I’m no programming whiz-bang; I can muck around, and mucking I have been doing. Recently Ruby on Rails caught my attention. My attention has something to admit, it’s biased towards those that innovate and stand out from the crowd. I know, I know, what an affliction I have!

Rails makes the cover of Slashdot again

There’s nothing like an O’Reilly article to get you on the cover of Slashdot. Curt Hibbs is once again the man for writing a great article that boosts awareness about Rails in the process. Once again, welcome Slashdotters!

If you’re a happy Rails user, you might want to consider hanging out in the comments and helping others find the resources they need. Perhaps even throw a testimonial in there, if you’re really Rails happy ;)

Rolling with Ruby on Rails, Part 2

Curt Hibbs has invaded O’Reilly’s ONLamp.com once more to follow up on his hugely popular (and Slashdot linked) article Rolling with Ruby on Rails. In this second part, he expands on the recipe application by adding additional manipulation tools and categories. The end of the article also contains a summary of the many Rails success stories and a peek at the many features Curt doesn’t have time to go into.

While Curt took a lot of flak for claiming Rails to be a silver bullet, it doesn’t seem to slow him down. In the conclusion, he writes:

Rails is not your run-of-the-mill, proof-of-concept web framework. It is the next level in web programming, and the developers who use it will make web applications faster than those who don’t; single developers can be as productive as whole teams. Best of all, it’s available right now, under an MIT license.

I believe that there hasn’t been an improvement in productivity like this in recent programming history.

Agile Web Development with Rails in July

It has been made official. The title of the first Rails book is going to be Agile Web Development with Rails and its currently being written by Dave Thomas. A small group of reviewers, including yours truly, have been reviewing the first chapters as they come of Dave’s printing fingers already. And it’s looking mighty good!

A few choice bits from the introduction to the book:

You’ll see how easy it is to install Rails using your web server of choice (such as Apache or lighttpd) or using its own included web server. You’ll be writing applications that work with your favorite database (MySQL, Oracle, Postgres, and more) in no time at all.

You’ll create a complete online store application in the extended tutorial section, so you’ll see how a full Rails application is developed—-iteratively and rapidly.

Rails is the framework of choice for the new generation of Web 2.0 developers.

Scratch: The minimalist's weblog

Scratch is a very interesting weblog package by Scott Barron (and with help from Sam Stephenson) that shuns any HTML interface:

Scratch is the minimalist’s web log. Scratch gives you nothing more than the meta-weblog API for posting. Reading is done via Atom or RSS. That’s it. There’s no HTML to hack up. You don’t have to use the same, tired old web log template that everyone else is using. Break out of that blue, rounded rectangle! Be original! Thumb your nose at those primitive apes still using the web! Use Scratch! Scratch can also serve as a framework for developing your own weblog package, if that’s the way you roll.

Scratch is available as a gem (just gem install scratch) and the source from SVN (it uses the new Action Web Service framework).