On Thu, 3 Jan 2008 06:24:46 -0800 (PST), tho_mica_l wrote:

> Many of these tools are made so that you don't have to care about the
> underlying concepts but so that the whole problem can be moved to
> different level where it's easier to handle.

Sure, and when they succeed, it's beautiful.  I haven't had to think about
the number of cycles a CPU instruction will take in two decades.

One of my biggest gripes about Rails, and I see this a lot, is that it
*doesn't* completely encapsulate the lower layer; that's not its goal.  It
makes the easy things easy.  

The minute you do something hard, novel, or even just concurrent, you're on
your own, and you're peeking into the machinery.  And that's when people
get over their heads.

Luckily, most Rails sites stay small enough that things like race
conditions don't matter.  (There's a top local Rails consultancy that
shocked me by telling me their busiest sites get a few thousand requests a
day.)  

But if you do grow, Rails can't tell you when you crossed the line.  It's
not a Rails problem; it's an layer-violation problem, and I suspect it's
impossible to create an encapsulation that's both complete and simple.
Rails picks simple.

-- 
Jay Levitt                |
Boston, MA                | My character doesn't like it when they
Faster: jay at jay dot fm | cry or shout or hit.
http://www.jay.fm         | - Kristoffer