3 ms·
I would go one step further and claim that SQL-databases are overkill for most purposes. Relational logic is very useful, as is transacted storage and indexing;
by andreasgonewild 9y ago
I would go one step further and claim that SQL-databases are overkill for most purposes. Relational logic is very useful, as is transacted storage and indexing; but the SQL-standard is clearly overkill in many cases.
An ORM is a simplification; it offers a single, convenient, but ultimately limiting perspective with most complexity swept under the rug. Anyone who's actually tried migrating between different databases or spent a week or so chasing down nasty coherency/performance-problems in their chosen framework knows what I'm talking about.
A more constructive approach that's rarely taken is providing storage/indexing as first class abstractions within the language to build your storage logic on top of.
Embedding raw SQL in a piece of software makes it much harder to reason about and maintain. Since storage/indexing are often fundamental, they deserve a more sophisticated interface than simply passing written notes back and forth on cocktail napkins.
Lately, I've been implementing my own, special purpose storage/indexing (https://github.com/andreas-gone-wild/snackis/tree/master/src/snackis/db https://github.com/andreas-gone-wild/snackis/tree/master/src...) to cut down on the complexity and get a tighter fit with the application.