We keep making software complex enough to fit and use the underlying hardware ⚡
The Apollo Guidance Computer, which took us to the moon, ran on 4KB RAM and 32KB hard disk and today even 32GB RAM seems insufficient for our mobile phones. Even a single tab on our favorite browser takes up much more memory than this.
This is a classic case and a variant of the famous Parkinson’s Law but in the context of engineering - our software keeps getting more complex as the underlying hardware it is run on.
We keep crafting the best UX with WebSockets, realtime interactions, and fancy animations just because our hardware can support this; and the hardware companies keep making hardware more performant because this is the new normal.
This is also true for the highly performant services we build respond within a single-digit millisecond while doing 100s of things in the backend, something that was unimaginable during the early days of computers.
We now have the luxury of large RAM and disks, we demand a rich debugging experience with the ability to search across millions of debug logs loaded on the client slide for a seamless real-time slice and dice.
With copilots becoming the new norm the next set of hardware will be powerful enough to not bat an eye when we run LLMs locally or make too many network calls to get responses to our prompts.
Again, nothing wrong here. It is just about Parkinson’s Law where we continue to make the software complex to fit and use the available hardware.
⚡ I keep writing and sharing such nuggets, so if you are keen on learning them, follow along.
duggup.com/arpit