[Catalyst] Joel on frameworks

Zbigniew Lukasiak zzbbyy at gmail.com
Fri Feb 17 09:57:08 CET 2006


Hi,

There is a long Joel rant about the Rails framework at:
http://discuss.joelonsoftware.com/default.asp?joel.3.309321.3

It is interesting in it's entirety, but below I copied a passage that
I find the most general and thus relevant for the development of any
software framework.

-- Zbyszek

------------------------------
RAILS PROGRAMMERS ARE ON CRACK. THAT'S A COMPLIMENT.

Here's what is so brilliant about Rails, and it goes WAY beyond Rails
being "opinionated": The payoff for your programming work comes fast.

You, programmer, create your database tables based on your data model.
This is a very very common first step for Web developers. But, before
rails, most Web developers had no immediate payoff from setting up the
db. There was more work to do, at the very least writing some model
subclasses against an ORM and some basic templates against the models
and then a simple controller. That could take hours.

Rails says, "Forget that, I ain't waiting." You make the database
schema -- BOOM -- you can play with it. You can immediately take a
"look" at it through scaffolds and generated models. You can look at
something in the Web browser.

This gives programmers a hard on.

Maybe not literally, but it gives them pleasure right from the brain stem.

After all, why do you program? What makes it so fun and rewarding?
Unlike almost any other profession, you can get concrete and immediate
feedback _as_you_build_. The real architect will wait YEARS to see the
results of his craft, but the code "architect" can have something to
play with in weeks, days -- or minutes.

A real author will wait days or weeks or longer to publish his words
and then hear back whether they did anything for the readers. The
software "author" can find out in an instant if his writing worked.
Does it compile? Does it past tests? Does it run? Does it WORK?

This, I believe, is the real reason programmers can stand to work 16
hour days during crunch periods. The work tickles something deep in
the primordial mind. There is a basic, essential pleasure that comes
from doing work, testing it, getting feedback, and doing more work
based on that feedback.

Edit. Compile. Test. Edit. Compile. Test.

When you compress that cycle to hours rather than days weeks or years,
it can feel even more euphoric. Hours become minutes, minutes become
seconds.

Setup database. Scaffold. Test.

Setup relationships. Test.

Generate templates. Test.

Tweak templates. Test.

Alter controller. Test.

Add authentication via plugin. Test.

Setup user roles. Test.

Other languages or frameworks, especially pre-rails, require the
programmer to do three or four or all of those steps *before they can
test once*. How tiring. Might as well go into architecture! The real
kind.


More information about the Catalyst mailing list