Why do we have gazillion application programming languages, but only one practical relational query language choice: SQL? There are plenty of gripes about SqlFlaws
, so it's not like SQL is the pinnacle of query languages.
Why haven't the same pressures that produced gazillion app languages also produced more choice in query languages? I find it an odd puzzle in terms of "technical sociology". I realize databases are more complicated than app languages, but so much so that the ratio of in-use app languages to query languages is something like 1000 to 1? That's hard to swallow.
(Variants of TutorialDee
are about the only alternative that seems to have any current momentum. I'm pushing for SmeQl
, but am too lazy to implement it so far. I'd like to see TutorialDee
variants target type-heavy approaches, and SmeQl
target dynamic and type-light approaches, just like we have Java, Ada, and Eiffel on one hand for type-heavy or "compile-heavy" uses; and Python, Perl, and SmallTalk
on the other for type-light, dynamic, or type-flexible uses.)
I'll float a list of the possible reasons:
- SQL has been "good enough"
- Most developers don't know enough about relational and database theories to propose something else
- Difficult to implement because very few "tool kits" analogous to Lex and Yacc exist for building database engines and parsing queries.
- Very few evangelizers.
- Hardware and performance issues still dominate databases such that language features take a back seat.