My article on Computing Without Processors is on the ACM Queue page now: 

The article explains why it is important for us to learn to program not just regular microprocessors but also many other kinds of computing elements. As we struggle to meet the latency and energy consumption constraints we will inevitably be forced to use heterogeneous architectures which comprise the evolution of today's GPUs (for data-parallelism) and FPGA (for 2D and 3D spatial computing).