Awesome SQL blog
explainextended.com
explainextended.com
It's unfortunate that a lot of new programmers are relying on their framework's ORM to abstract the SQL away from them, weakening their understanding of it.
Actually, most askers (both on Stack Overflow and on the site) are either the ORM developers or the people who need to deal with huge volumes of data (financial reports etc).
As with every other abstracting tool, it's perfectly OK to rely on an ORM — as long as you know which load can it handle and under which carpet the service hatch is.
And, what's wrong with SQL? It's simple, powerful, widely known and deployed, and cool(declarative programming, dude!).
I've read a some introductory examples about distinct ORM's and just don't get it. Where's the gain? Apart from database independence(which I don't think it's even desirable in most cases, may be Tom Kyte's books have brainwashed me irremediably), can't see one. How an ORM makes you more productive?
Perhaps "Haskell is trying to abstract away assembly" is a better comparison.
Like here, http://explainextended.com/2009/09/, he covers adjacency list vs. nested sets on MySQL, Postgres, Oracle and SQL Server. Different platforms, different optimal solutions. The man knows his database internals.
I also know that there is very little value in me writing a new set of CRUD queries for a low-load site when someone else has written a well-debugged interface for me.
I essentially share the same SQL, OO, ORM hammer, as you, so I would likely use the same solution.
It may be that all 3 complex technologies, the database, the object model, and the ORM are unwarranted by the low load/crud problem.
ORM is a flawed attempt to remedy this. It is flawed because client/server sql databases create a distributed system, and distribution is hard to abstract away.
Other solutions solution are to ditch the SQL model (something like bigtable, db4o or Gemstone?), or to ditch the object model (something like PHP or Access?).
Finally, entity‐relationſhip is not terribly practical as a model, but as diagrammiŋ.
I often wish platforms would expose their internal calculus in a separate syntax, so we wouldn't have to work through the SQL translation layer. Algebraic operators would be nice too.
In oðer words, internal implementation as ſets do not make SQL ſet‐baſed.
And the reason why it's stuck is the same story that you can tell over and over about standards.