SQL je dostatečně expresivním jazykem, většina ORM toho nedosahuje.
Neni, je to jazyk nizke urovne abstrakce...
SQL je poměrně primitivním dotazovacím jazykem, Kit měl asi na mysli PL/SQL. To je taky primitivní jazyk, stačí si uvědomit, že nemá jakékoliv složitější datové struktury (např. něco jako struct/record, seznamy!), pouze primitivní typy, takže např. volání procedur či funkcí s nějakým obsahem v parametrech je zoufalé, jakákoliv práce se seznamy znamená opakované čtení dat z tabulek. Ladění otřesné. Vlastně ani žádnou podobnost s vyššími jazyky nevidím.
Naproti tomu vždy jde vytvořit nějaké ORM, které jedním příkazem s pár parametry provést (různě) složitou operaci s mnoha dotazy SQL a jejich sestavením na pozadí. Ale to ORM musí nejdřív někdo vyvinout.
Problém všech abstrakcí je, že zjednodušují vývoj, ale zhoršují výkon oproti práci s normalizovanými datovými strukturami. Ideální ORM by umělo dokonale převádět požadavky do SQL, rozhodovat se, kdy užívat transakce a kdy ne, jak uzamykat záznamy, ... Vysvětlit ORM (namapovat) strukturu, aby to vůbec umělo, by bylo stejně složité, jako využívat přímo SQL.
ORM a NoSQL volí určitý kompromis, někdy přidávají možnost horizontálního škálování výkonu.
To, co vyvolává hádky mezi zastánci těchto dvou přístupů je právě to, že ten kompromis je od určitého okamžiku už nepřekročitelný, a schopnosti RDBMS databáze se suplují na úrovni aplikace (či jazyka). Z pohledu vývoje je to možná pohodlnější (možná jen zdánlivě, vedou se o tom spory).
Funguje to dobře, když vývoj i zadavatel aplikace jsou srozuměni s tím, co to obnáší a bude obnášet do budoucna. Srážka nastává, když pak přijdou požadavky, nápady, nebo kritika řešení, které by se daly řešit mnohem efektivněji pomocí RDBMS.
Pak si taky všímám, že někteří schopnosti databáze posuzují z pohledu, jak pohodlně jim naservíruje výsledky až k cílovému zpracování. Jiní zase vnímají, že uvnitř těch mechanismů musí být spousta práce (= ztraceného výkonu), která se vynakládá vzdáleně od optima.
Podle mě je ten myšlenkový souboj nerozsouditelný, podobně jako se nedá najít jednoznačná odpověď, jestli koupit levnou Dacii nebo drahé Audi, když jsou obě auta stejně velká a ve městě jezdí stejně rychle (50-80 km/h) a argumentovat tím, "co kdyby přišla potřeba jezdit napříč Evropou". Jeden koupí preventivně Audi, druhý si koupí letenku a oba jsou spokojení se svým řešením.