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 brain"
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, Peter -- 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 to [email protected]. For more options, visit https://groups.google.com/d/optout.
