Software, as Marc Andreessen says, is eating the world. Everything we do is mediated through someone’s code -- running on a smart thermostat, a smartphone, the old familiar PC, or as a microservice in an ever-expanding cloud.
We’re finally delivering on the decades-old promise of a ubiquitous computing world. But more than that, from the developer's standpoint, the tools available to us are better and more sophisticated than ever. We’re also seeing monolithic applications break apart into services and platforms, ready to become part of your applications.
At the heart of the current wave of change are new design patterns suited to a highly distributed, asynchronous computing world. Yes, we’re still building n-tier MVC and MVVM apps -- and we’ll carry on building them for a long time to come. But new microservice-focused design patterns give us a new set of tools to help us build highly scalable, concurrent applications that can handle the eventual consistency that comes from working with asynchronous services.