And the worst part: nothing better exist; single’ish bad language is better than dozens of new shortlived ones that have quirks in various other places.
But somebody needs to be idealist and keep trying.
And the worst part: nothing better exist; single’ish bad language is better than dozens of new shortlived ones that have quirks in various other places.
But somebody needs to be idealist and keep trying.
- CTEs are very close if not the same across Oracle, PostgreSQL, DB2, Hive, Snowflake, and MS SQL Server - I believe even Sybase too but it's been a while. - Joins work all largely the same even though a couple of those support additional join types, especially when you want to join on functions that return data sets. - Window functions are supported by every major DB with similar or the same syntax too. Any differences take 5sec to lookup in documentation.
My only complaint is loading data is highly vendor specific.
The difference in enjoyability is stark: I truly hate SQL now.
More robust criticism is provided here (https://carlineng.com/?postid=sql-critique#blog). The quote I usually drag out is from Chris Date, who helped pioneer relational DBs:
"At the same time, I have to say too that we didn’t realize how truly awful SQL was or would turn out to be (note that it’s much worse now than it was then, though it was pretty bad right from the outset)."
https://www.red-gate.com/simple-talk/opinion/opinion-pieces/...
For example, why not allow the following expression as a legal statement:
tablename;
FYI, in Postgres you can write TABLE tablename;I'd be more sympathetic to concerns about switching engines if I had, at any point in a career now heading for its 25th year, ever seen that occur.
Given the frequency with which ORMs are used in greenfield to defend against this notional problem, and the many problems that using an ORM always inflicts, this may well be the costliest form of premature optimization I've ever seen. It certainly can't be outside the top three.