Offline is a Feature, Not a Product

Oct 8, 2018

This argument misses the fundamental point of offline. Offline is a feature for development tools, added in pursuit of the real prize: faster development cycles. Everything else is a means to that end - caching, sync, and running the stack locally.

And it turns out the best way to speed up developer cycles is to do the exact opposite.

We should be exploring what collaborative workflows we can enable in an online, cloud-native world.

Git was fundamentally transformed when developers could share and collaborate on repositories through GitHub. Linux containers were brought into mainstream when they could be packaged in Docker containers shared through a Docker Registry. Cloud has changed the way that organizations run their infrastructure, and the next frontier is changing how programmers develop.

IDEs used to be heavyweight platform-specific tools that couple the development runtime to the execution runtime. Now they are cross-platform, lightweight, and increasing more operations are being pushed to the cloud: builds, code search, language servers and autocomplete, CI and static analysis.

Even deploying your code used to require developers to run an entire stack locally. What if all the developers in a team shared a Kubernetes cluster? Docker abstracts the platform, and Kubernetes abstracts the environment. Go faster when each developer doesn't need to administer a cluster themselves, and install core dependencies like Istio and Knative.

And most airplanes offer WiFi now anyways.