This is a fascinating discussion. A lot of my work has involved tuning 
software written by other people. One of my rules of thumb has been, 
regardless of the client's speculation as to the cause of slowdowns, to 
always look closely at the use of frameworks, ORMs, caches, anything with 
"fast", "speedy", "hot", "lightweight", "efficient" in it's name, anything 
that's used everywhere.  I think that the biggest problem with ORMs is a 
non-technical one- that along with most software frameworks, they encourage 
a group mind-think of "we don't have to worry about stuff because X takes 
care of everything for us." With an ORM this is "we don't have to think 
about database operations", with a JVM it becomes "we don't have to worry 
about the generated code."  A second, related problem is that smart 
developers like to use their brains. It doesn't take much to jump from 
"enjoying using one's brain" to "preferring a solution that exercises one's 

Rails is something that I have loved like a funny dysfunctional but 
charismatic friend. It can be a stunningly productive environment to write 
simple CRUD web-apps, and has an energetic community that are quick to 
build solutions and integrations to anything. But the community also has a 
fascination with "magic" and an aversion to using any prior art created by 
the SQL community such as database constraints imposed in the database. But 
the very real strengths of Rails doesn't make it necessary. On at least 
eight Rails projects I heard developers ask the question "what would have 
happened if we built this as a static website?" These were questions asked 
in the pub and quickly pooh-poohed. Then one day I was asked to build a 
dynamic website for a family member. I thought hard about whether it was 
possible to make the site itself be static and use Rails only for the 
administration of the site. It was a huge success - the generated static 
site was, of course, lightning fast and always available. I suspect that 
many projects that use ORM could be implemented without ORMs and be 
quicker, cleaner, and more reliable.
just my two cents,


You received this message because you are subscribed to the Google Groups 
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
For more options, visit

Reply via email to