Hacker News new | ask | show | jobs
by ta2234234242 816 days ago
In the 1980's we had C/C++/Ada/Pascal/Fortran/Assembly/Lisp. Since the 1980's the languages have exploded.

But we still only have one language for querying a database. And a kinda not very good one at that. Why is that?

https://www.holistics.io/blog/quel-vs-sql/

One could argue that ORM's are the alternative language people are looking for.

2 comments

Except ORMs are just worse? Unless you mean they are the symptom of longing for other languages where there are none.

I would also love to see a new language for writing declarative queries. I also feel people don't like sql not for the language itself, but the lack of tooling.

Are they worse? The popularity of them has exploded like programming languages from the 80's to now.

One might say that if SQL was so great there would be no ORMs -- because there would be no need.

The ORMs, if anything, are a symptom of the larger problem that is SQL.

> One might say that if SQL was so great there would be no ORMs

It's not like the ORMs exist without SQL. Their primary purpose is to provide a consistent interface between different flavors of SQL so the application developer doesn't need to care what database they're using.

For example, delimiting object names in Mysql uses ` and in Postgres uses ". The ORM will ostensibly have different adapters which take care of these differences without changing the application code.

Not even that works painlessly. You commonly run into incompatibilities so an ORM won't necessarily make your code database agnostic.
It lessens the pain, still. It's rare that you'd use common ORM methods and run into something that's supported for one RDBMS and not another. Doing stuff that's less common and, of course, writing raw SQL will still be pain points but they'll be fewer than if one was doing everything in raw SQL.
> It's not like the ORMs exist without SQL.

That's because TINA: There is No Alternative.

We have also cloned Unix entirely since 1980, and extended and improved it. Yet, we are booting the systems using shell scripts where an unquoted variable stops the show. Why is that?

Why is there still a C:\ drive in personal computers, and an invisible device called PRN in every directory?