Earlier this morning I watched a Steve Jobs talk from 1980 where he discusses Apple and the relationship between hardware and software. An interesting piece comes at the 12:30 mark where he addresses the question “Right now software is powerful enough, what impact will improvements in hardware have on software?” His answer is great: “[We will] start chewing up power specifically to help that one on one interaction go smoothly and specifically not to help the calculation… start applying that power to remove that barrier”
Sure the response is very Jobsian but the underlying point is significant. It’s only a tiny bit about what the software actually does; the majority is realizing that people will actually be using the software to solve problems and building tools for that experience. I remember starting with DOS on the family computer and being blown away when I first used Norton Commander. Similarly to when I saw Windows for the first time and saw my first smartphone.
Most hardware improvements over the past 30 years led to improvements in usability, not functionality. Processors in 2014 are 100,000 times more powerful than those in the early 1980s and a majority of the improvement went into user experience - better UIs packed into smaller devices. Without usability improvements computers wouldn’t be nearly as ubiquitous as they are now and would primarily stay a hobby for engineers. Each usability improvement brings aboard a whole new set of people. You can make the case that the same thing occurs with programming languages - very few people were writing assembly code at its peak compared to C code, and fewer people were writing C code at its peak than JavaScript.
Usability improvements are still happening but they’re taking the form of cloud and background services - akin to the way Google Now provides contextual information and the way Siri handles voice recognition. As sophisticated as they are, they will only get better as hardware improves.