4 ms·
SQL is a wildly successful invention from nearly 50 years ago that remains extremely relevant today - whatever sort of coder you are, you're probably going to u
by codeulike 4y ago
SQL is a wildly successful invention from nearly 50 years ago that remains extremely relevant today - whatever sort of coder you are, you're probably going to use it at some point. And if you get beyond the surface level SQL stuff, you'll probably still find it pretty impressive in its expressiveness, despite its age. Is there anything else programming-wise from the 70s thats still as relevant today?
The OP paper is interesting but the complaint that SQL is not 'pure' enough reminds me of Project Xanadu's vision of 'pure' hypertext. https://en.wikipedia.org/wiki/Project_Xanadu https://en.wikipedia.org/wiki/Project_Xanadu
HTML won out over something like Xanadu and SQL won out over the 'pure relational algebra' language we never got because making practical compromises is very important.
My take away: Designing something with the right mix of principled design and practical shortcuts around those principles is more important than just rigidly sticking to principles.
- jakebasile 4y ago> Is there anything else programming-wise from the 70s thats still as relevant today? Lisp is still relevant (for some definitions of relevant [I work in Clojure so it's very relevant for me]) and it's from 1960.
- divan 4y agoI switched to EdgeDB couple of years ago, and after writing EdgeQL I never ever want to go back to writing SQL queries again. SQL now feels very unexpressive and clumsy, but I didn't have that feeling before I had a chance to compare it on practice. Also, "HTML won" not because it made practical compromises, but because it was literally the only first-class option available in the browser, and as web platform has exploded everyone wanted to move to the web, so they had no other choice but to build their tools and products with what they got.
- mrits 4y agoWhat specifically do you like about EdgeQL? From my experience it seems to be only popular with people that don't ever care about the actual query plans and calculus underneath.
- divan 4y agoThe number one thing I like is that the EdgeQL as a language allows to convey clearly what exactly you want from the database. That's kinda a definition of "expressiveness" for me. > that don't ever care about the actual query plans and calculus underneath Of course, if you're being paid for this specifically or the nature of your problem domain requires optimization of query plans, you should care. But in vast majority of projects I've participated the database query plans and performance is not a bottleneck at all even remotely. So between "unexpressive and low-level" and "expressive and high-level" it's reasonable to choose tha latter. Also, I have a belief that EdgeDB engine produces much more efficient SQL code than I would write myself, but I can't confirm nor deny that.
- Arbortheus 4y agoWhy on earth should any software developer care about the calculus underneath their database? That is surely only the domain of database developers, researchers, and hobbyists?
- rhacker 4y agoI guess almost every engineer I've known must be a database developer or a researcher or a hobbyist I guess.
- bigbillheck 4y agoI think it's important for people who take their profession seriously to know a little bit about how things work at different levels than just the one they are used to.
- nradov 4y agoBecause in the real world abstractions are leaky, and small changes in how the database is used can cause 10× performance changes.
- BoiledCabbage 4y agoI really wish people would learn to accept that whatever won wasn't best. It was what won. Things win for plenty of reasons other than being best. It's so hard for so many engineers to understand. And as a result they do all of these post-hoc justifications of lesser solutions because they've convinced themselves they must be the best "because they won".
- codeulike 4y agoTrue, but SQL has been there for 50 years, that must mean something
- divan 4y agos/something/network effects/
- TremendousJudge 4y ago"good enough" isn't equal to "best"
- galaxyLogic 4y agoEdgeDB seems very promising. What I wonder is does it run on top of Postgres only? Since the main innovation is a better query-language (than SQL) wouldn't it be great if it could be used on top of any database-engine?
- divan 4y agoRight, my thoughts as well. I'd love to have file-only database like SQLite but with EdgeQL instead. But at the moment EdgeDB is built on top of Postgres. Not sure if there were any discussions about abstracting it away.
- deleted 4y ago[deleted]