jjg is a user on social.coop. You can follow them or interact with them if you have an account anywhere in the fediverse.

Most unpopular true opinion:

SQL is COBOL for relational databases.
COBOL is just SQL for ISAM.

MULTIPLY QUANTITY BY PRICE GIVING EXTENSION

SELECT QUANTITY, PRICE FROM INVOICE_LINES

The worse realisation:

THERE IS NO HASKELL OR PYTHON OR JAVA OR EVEN C FOR RELATIONAL DATABASES

Of all the possible interfaces for all our data, we went with the COBOL-like one. Fake English sentences. As strings. That you have to generate and parse at runtime.

And stuck with it for 40 years, because if there's one thing we programmers are great at, it's reinventing and reengineering everything that's even faintly inefficient, amirite

idk, maybe it has something to do with division of labour in large enterprises?

The mere programmers don't get to decide who manages the database. They just have to connect to it.

Which is fine but...

Like why did we end up with two parallel concepts for storing data, filesystems and databases?

I'm guessing because databases mapped to existing 'tapes' and 'decks of cards', while filesystems began as 'labels attach to tapes and decks of cards'.

jjg @jjg

@natecull if you’re not familiar with how the AS/400 addresses this you should check it out, it might blow your mind a little.

@jjg Is the answer something to do with DB2?

en.wikipedia.org/wiki/IBM_Db2

The wikipedia article is less than enlightening. :(

I believe AS/400 had (has) a really nice object-oriented memory model... was there also a really cool OO API for relational data queries on DB2?

@natecull yeah it’s another long story but the basic idea is that from the application perspective, the “file system” was a database.

Applications stored data in tables with schemas which could be understood and queried by other applications or the operating system itself. It’s sort of hard to get your head around at first but when it clicks it’s a very powerful idea.

BeOS did something similar with bfs but it didn’t quite use the same philosophy.

@natecull @jjg RPG/400 had some interesting ideas.

@h @natecull I found out last night that some of the things I like about the 400 actually originated in System/38 (which is nice because I often get shit from people when I bring up the 400 :) :

bitsavers.org/pdf/ibm/system38

@jjg @natecull I could be wrong, but I thought that stuff had origins in s36.
It was before my time, but I had to interact/port stuff during the y2k debacle.