The locus of computation is no longer relegated to the quaint notion of a CPU running on a computer. Our modern business mandates require us to embrace a menagerie of computational elements involving CPUs, systems on chips (SOCs), GPUs, FPGAs, ASICs and more. Avoiding a feature-tested explosion of complexity in our applications is crucial to successful delivery strategies that embrace all of these elements and locations. There are waves of change crashing into our industry involving explosions of data, an end to the non-linear trends of Moore’s Law-based speed ups, and a realization that computation costs time, money, power, and more.
At the intersection of architecture, hardware evolution, and more stable software is a fascinating set of technologies that will help lay the foundation for 21st Century software systems.