I wonder if cloud computing is turning software development into a worethless, even dangerous, parasite for our economy and our world.
It's common knowledge among economists that most of the financial sector just moves money around, taking a cut, without adding value. Various brokers and traders and "financial planners" are just salesmen who are there to move product and take a cut.
The point of the financial sector is to produce a single service: to encourage investment (not speculation) in known-growth endeavors. That's it. They're to take "extra" money you or I might have, pool it and, applying knowledge they have the time and energy to dedicate to doing the research, allocate it efficiently to those sectors of the economy that need to and can grow. Presuming the sector grows, your percentage of the pool plus the growth is returned to you, minus the brokerage fee.
Everything else the industry does is... absurd, really. It's just moving money around from one account to another in a speculative game of musical chairs where the last institution out loses all its money, which is distributed to the winners. Little knowledge is applied, and no growth or efficiency are generated in the sectors of the economy that actually create goods and services.
And yet, that "everything else" accounts for two-thirds of the financial sector right now!
I was reading a "cloud computing" document and one of the bullet points read • Integrate, don't Invent. The basic idea was that your company, whatever it is, is some start-up with a crazy idea. Uber for Vibrators, or Amazon for Cattle, or IMDB for Bottle Caps. You need a lot of software: web stuff, back-end, security, uptime, database, monitoring. And sure, you don't want to have to write your own database engine or your own webserver.
But these days you don't even have to care about what database or webserver. You don't have to care about efficiency or performance. You just throw money at it. Instead of understanding your system you just outsource it, you pay someone outside your company to do it.
I used to think that software development was a discipline of engineering: that is, a mechanistic, outcome-driven discipline that led to a usable result. I've become convinced that it's also a discipline of anthropology: we write software for human beings, and it's our responsibility as developers to help other developers understand what we're doing, and to help our end users acheive the results they seek.
But cloud computing has become something else entirely: Applied daemonology. We no longer care how good a database is: if it takes SQL and spits out the rows, we wrap it in a Docker container, shove both the container and some dollars at Kubernetes, and hey... it seems to work. It passes the unit tests. It's therefore good enough. You send it input, you get the output. If not, you tinker with a few config files and maybe it works this time. Or maybe you've just got too many customers, so instead of tuning your queries and your environment, you throw more dollars at it. Repeat the incantation until the spell is working as expected.
In the cloud universe, a developer's mind ceases to be a deeply informed connection machine trying hard to efficiently use the resources at hand. Instead, it becomes a broadly and thinly informed reference manual gluing together business logic and sidecars and facades without really understanding what goes on inside them. "Malloc? LOL! Fuck it, just give Jeff more money!" seems to be the order of the day.
I suspect we're going to regret it.