You're Leaving Compute on the Table
Six computers sit on a desk, all powered on but idle. Their only task is to wait for a machine in Virginia to finish processing work that is already available locally. This setup is common for many users, as they employ devices capable of handling their needs. The hardware used draws minimal power, akin to an incandescent lightbulb, while the Apollo Guidance Computer of the Apollo program ran at nearly 85,000 instructions per second with just 4 KB of RAM.
Modern machines are far more powerful, with current hardware capable of handling 15 trillion calculations per second. Yet, the powerful hardware remains underutilized, as most daily tasks only scratch the surface of its potential. The waste lies in the redundant processing performed in Virginia, rather than leveraging the powerful computers at hand.
Networked devices offer a shared addressable presence, but computation should only transfer when absolutely necessary. Client-side software might require more comprehensive testing and robust deployment, but its benefits include lower development and maintenance costs, and continued functionality when the internet is unavailable.
While some tasks necessitate server-side processing, the majority of software should run locally, utilizing the existing computing power. WebAssembly unifies the runtime environment, simplifying updates and ensuring compatibility across devices. The decision to deploy software should consider the nature of the work, with some operations best handled locally and others requiring server-side processing.
The key is to differentiate between state that requires coordination and other tasks that can run on the client. By sorting work accordingly, developers can optimize their products and avoid unnecessary cloud dependencies.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.