Hacker News new | past | comments | ask | show | jobs | submit login

Databases have no "host" they have "clients" which are heterogenous. So directing this critique at SQL is completely unfounded.

.NET added LINQ and now basic queries are integrated. It was not up to SQL, it was up to .NET

And calling it "very low-level" makes me question if you understand what SQL does and is. It's probably the only mainstream 4th generation language I can think of.

https://en.wikipedia.org/wiki/Fourth-generation_programming_...




Host language, as in the language of your app that embeds some sql code, not host related to the db. The host language may or may not be the client language.

It's low level because it lacks abstraction and anything outside the data query declarative paradigm is subpar. It has no notion of anything outside of itself, so it's a very restrictive inflexible dsl living in it's own bubble. And even worst, it lacks elegant abstractions for problems we've have had for decades, such as pagination, hierarchy, etc

Also, using linq as an example rather shows your lack of understanding of the field of abstractions for sql. The state of the art ORM is currently SQLA, the leading innovation to replace sql as a dsl is edgeql, both are addressing sql pain points while aiming at allowing you to do all of what sql could do.


I think you use "low level" in a different sense than is common. Low level (and high level) typically refer to abstraction level. SQL certainly have a very high abstraction level. But given it is a domain specific language it doesn't have much support for functionality outside of its intended domain (except through non-standard extensions). But a kitchen-sink language is not automatically higher level than a highly focused DSL - typically it is the other way around.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: