No matter how good our software or hardware is, we are limited by the laws of physics, namely, the speed of light. The speed of light, c for the physics nerds, is 299,792,458 meters per second. From New York City to Los Angeles is 3,944km. Traveling at the speed of light, it would take you 0.0132 seconds. New York City to Sydney, Australia (15,979 km) at the speed of light would take over a half second (0.0533)!

Clearly the internet isn't that slow for New Yorkers opening up Jira from Atlassian (well, maybe Jira is that slow but for other reasons). We all want our internet applications to be fast, but cheap. Cloud software is great because we don't have to install it (fast), but can get expensive sending so much data over the internet (slow and expensive). Even with a Moore's Law slowdown, our devices continue to get faster and faster. iPhones have

The solution is edge computing. Edge computing brings computation and storage closer to the data. It's usually faster and cheaper than making a round trip. But where is the edge? There are three paradigms that are competing to make your experience as fast and cheap as possible.

Device maximalism. Faster, more powerful devices (I'm writing this on my M1 Max – it's fast!). On-device federated machine learning. No network latency. Peer-to-peer syncing through CRDTs with backups to the cloud. WebAssembly in the browser.

vs. Cloud maximalism. Streaming heavyweight applications from the cloud. Cloud gaming (Google Stadia, Xbox Cloud Gaming). Streaming remote desktops (Windows 365). Cloud developer environments (Coder, Gitpod, GitHub Codespaces, AWS Cloud9). Streaming cloud web browsers (MightyApp).

vs. running compute everywhere in between – globally replicated storage and compute close to your users. Cloudflare, Fastly, Vercel, Fly. Intercepting requests as soon as they hop on to the internet and running services there

Not everything is zero-sum, all of these will exist in some form or another alongside traditional cloud. But there are some clear overlapping use cases.

Browsers: Stream to an old laptop or buy a new MacBook Pro?

Gaming: Stream to any device or buy a gaming PC? Cloud gaming has a unique advantage in that large assets don't need to be downloaded by end users. No more hour-long game updates or lack of device storage space. Instantly play on the go, on any device.

Machine Learning: Privacy and data ownership are becoming more important to users. Federated learning is a technique that allows the training data (photos, queries, etc.) to be processes locally on the device, with only the end product "weights" transported to to a centralized model. For some cases, this lets companies build powerful machine learning models while not being able to reproduce the original training images or data.

As devices build in specialized machine learning chips (Google Pixel / iPhone), some of this will move to the device. For inference (prediction), it's plausible that some of this will happen both on-device, but also at the network edge (Cloudflare workers, or p2p autonomous driving data exchanges).