Technology and Clusterfucknology

Hello Everyone! We're going to talk briefly about Wirth's law and related issues we face as citizens of the TriMetropolis of Cruftopolis, the Crufty City, and El Crufto, under the flag of the Clusterfuck Nation. So if you haven't heard of Wirth's law, please do check up on that link. That's right, software "gets worse" with time faster than Moore's law. But why? I mean, we know that software also gets better, right? Hardware and software advances have been roughly equal in their prowess at pushing forward the limits of pure computation for example in solving prime factorization or discrete logarithm problems. Why? Because people keep figuring out improvements. So we know people are capable of improving these things. However, efficient use of memory and computational resources is often not such a requirement. Apparently there is a difference between cutting edge mathematical research and home computing. The specifics of mathematical clusterfucknology will have to wait for another episode.

Instead, rather than just tell you plainly what we observe about how advances in technology are accompanied by corresponding advances in clusterfucknology and discuss examples that show it doesn't have to be that way but probably will be, I'm going to give you a window into the mind of someone who might really be worried about this kind of thing. The paranoid technologist.

Henry Ford's vision?

One common paranoia we face in software development, and engineering in general, was chronicled by developers in ancient Babylon who at the time were struggling with the different file specifications defined by Windows1.8kBC and Windows1.7kBC-Home-Edition. The software stack or tower they had built was so high that it upset Richard Stallman and/or a redditor (the scriptures aren't clear), and anyway with a sweep of his hand (and a few git pushes) suddenly all of the stack layers started throwing protocol agreement errors. And the מִגְדַּל בָּבֶל fell to the ground with a great rushing sound and all the people ran away shouting "哎呀” or maybe it was "𒅥𒅥𒑜𒑜".

In any case, this popular tale captures a common trope: fear of technological stack collapse due to massive unbalanced increase of clusterfucknology.

The question can be rephrased thusly:

Can you really be a full stack developer?

If the answer tends with time towards the "no" side, due to so many complexities and vast technical experience necessary to handle the various portions of the tower: then nobody can understand the whole thing.

This shouldn't come as too much of a surprise if we are also aware that nobody ever understands any whole thing (as the sphere or knowledge grows, the surface area of the unknown increases with it - even in the realm of the abstract). It also shouldn't come as much of a surprise if we are familiar with eusocial animal behavior, where it's never so important that individuals grasp the larger picture. However in this case it could come as a deadly surprise, as we want to at least have enough understanding to continue standing straight.

The fear is that one day somebody will break one little thing, and because all the software is so interconnected it will knock out lots of other layers. Standing then becomes falling down When the people discussing the problems in the layers can't speak each others language you've come to a calamitous collapse or an Einsturzende Neubauten. Apparently such a communication error may have been what brought down building 7 but that's another story. Instead lets stick to the topic.

When I was but a wee dwarf, I was sent from my place of employment in New England to a lab in Switzerland. After getting set up on a couple machines there I commenced to sending messages to my colleagues in Switzerland via some New England servers. How did the message "time for lunch!" arrive at my colleagues machine next door? Under the Atlantic with fiber cables or back with satellite or both, I didn't know. I just knew I was flipping bits halfway around the world for no other good reason then that it worked and I was too lazy to propose another solution. And therein lies the crux of the biscuit. Moore's law has allowed us to be amazingly sloppy in our coding practices (and other practices too). You don't even want to know how sloppy, in fact we could safely say that nobody knows how sloppy because the slop stack is too deep. Or is it?

"Just because you're paranoid doesn't mean the entire technological stack isn't about to come tumbling down like the walls of Jericho."

IEEE 802.3 protocol specifers' vision of Ethernet

OK so do you want the good news or the bad news first? Well in this case it's the same news: the stack can get deeper. It's not about to fall which means we're not about to fix it.

Just another CPU Bus Error

In the case of bitcoin, we're not sure that Satoshi's vision (or Milton Friedman's vision or Wei Dai's vision) really was for a million public coins floating in relative value on a thousand exchange platforms, piles of obsolete mining equipment dumped for satoshis on the bitcoin, nor ridiculous drama of theft and countertheft between media circuses. Massive files of private keys and algorithmically generated shitcoins might not have been their vision. Vision or not, it is our playground. Traffic and all it's tentacles are the price we pay for adoption. Enjoy it.

Leave a Reply

Your email address will not be published. Required fields are marked *