DEV Community

vbilopav
vbilopav

Posted on

Modern Software Architecture is a Joke

QL is the most misunderstood language in computer history. By far.

It’s the HIGHER-level language, meaning the higher-level generation than today’s common languages. As such, it aims to provide an abstraction for your hardware, memory, disks, operating system, and everything. Including algorithms to a certain point. Have you heard about execution plans? Well, that’s just the engine selecting the most appropriate algorithm for your declared intention with data, so you don’t have to write it yourself.

And, it is also a domain-specific language where that specific domain is just, literally, data itself.

On the other hand, the domain of your non-domain-specific everyday common languages such as JavaScript, Java, or CSharp is, of course, the operating system, disks, memory, devices, and hardware, and you typically use it to write algorithms and use devices.

That is why SQL is a higher language with a higher level of abstraction. When I create some data with SQL, I have no idea where it is physically; that is not even the point, and I don’t care. All I need is to declare my intent and engine is suppose to find the most appropriate algorithm for me.

So, if you remove all these things for the equation: disks, memory, files, locks, threads, processes, etc, you have none of that; none of that exists anymore. Besides data, what else is left?

That’s right, your business logic.

Not once in my 25 years of writing SQL have I been concerned with storage concerns. Not once. I have written SQL every day, all day, for decades now. That is because, as I said, devices are abstracted and hidden, which isnot your concern.

Now, read how the grandfather of the entire modern software architecture calls databases just an IO device. Quote:

The database is merely an IO device.

Blessed is the team whose architects have so isolated them from slow and resource hungry IO devices …

A Little Architecture

Top comments (0)