In 2028, instead of thinking about computers with a small number of processors sharing an infinite memory, we now think of systems with an infinite number of processors each with its own memory.
It's now almost 20 years since the emergence of components designed to enable system design using concurrent communicating processes--an idea that actually originated 50 years ago with the publication of C. A. R. Hoare's article "Communicating Sequential Processes" (Communications of the ACM 21 [8]) and the formation of Inmos with its transputer concept.
These system components enabled a revolution in electronic design alongside a revolution in programming. For the first time, the artificial distinction between hardware and software design was eliminated. Today we teach both engineers and computer scientists to design systems in terms of communicating concurrent processes and that we synthesize hardware from the same languages we use for programming.
Two decades ago, it was already becoming clear that using more, smaller, slower processors made system design easier and improved power-efficiency.
And by making processing event-driven--inherent in message-passing concurrency--further gains in energy were achieved by switching off components when they had nothing to do.
Highly responsive systems became easy to build and scale by dedicating processors to specific tasks; high data throughputs were supported by processor pipelines and scaled by using many concurrent channels; high processing throughput was achieved by composing systems with many processors.
Over the last 20 years, this technology has produced miracles and shows every sign of continuing to do so. Multicore chips have enabled the number of processors in a system to be scaled up and costs to fall in line with the long-term trend that has seen a factor-of-two improvement in the performance-per-cost ratio every one to two years.