A while back someone on lobste.rs asked:
Why is SQL so successful despite its shortcomings?
To which I answered the following.
Human and machine efficiency:
- Human efficiency: If I learn e.g. MongoDB, FaunaDB, or Datomic’s proprietary languages, and they go out of business, I have literally wasted my time. If I learn SQL, I have an industry-standard skill I can re-use, probably for decades. Multiply that across thousands of people working with “data stuff” across the entire world.
- Machine efficiency: We have decades of research papers and industrial experience in optimizing SQL query performance. Some one-off DB with its own query language may or may not be able to take advantage of all that has been learned over the past 40+ years about SQL query optimization. The fact that someone has invented their own query language does not mean they don’t have this knowledge, but it’s a signal that they may not. (Which feeds back into point 1: I need to think your DB is worth spending my time learning, so you need to signal to me in various ways that you know what you are doing. SQL is one of those signals, since it is data’s lingua franca).