I may not be the best person to comment on Rails, having come foul of David once or twice before. Re-reading those it's interesting (at least for me) - many things have changed.

Anyway - was reading Choose a single layer of cleverness and thinking "Yes but...". Jason and Selkirk made points to that effect here.

The problem I have is my gut tells me something else here. Despite all the thought that's gone into better ways of designing software in recent years, why is it projects built on, say, Oracle with PL/SQL stored procedures and violations of most of modern software "good sense" are often part of the applications that actually "work" in reality, and keep on working?

Perhaps that relates to the distinction Martin Fowler makes (and David linked to) between application and integration databases - think any application database will disintegrate into an integration database the moment it starts to mature.

Martin Fowler also said don't distribute - somehow I'm not convinced by the idea of Rail's domain model as an integration point. Somehow need input from John Lim here.

[Side Note / Confession: so far have done nothing more than read Rails tutorials and look at API docs]