You’ve heard of Moore’s Law, which states that the density of transistors in each IC chip doubles approximately every two years. But have you heard of Wirth’s Law? Formulated by Swiss programmer and inventor of Pascal Niklaus Wirth, it states that software performance is slowing at the same rate hardware performance is increasing. This rule has been proven over the years and has implications for the future as Hardware becomes easier to fab yourself and as the IoT Revolution continues.
Thinking.....thinking....thinking....
In his paper “A Plea for Lean Software”, Wirth notes that programmers natural inclination is to build larger and more complex software with more features than perhaps is necessary, aided and abetted by constantly improving hardware performances. Wirth’s Law acts as a neat counterpoint to Moore’s Law, and explains, albeit it simply, why perceived performance of your computer today is nearly the same as it was 20 years ago. Here is Wirth's example,
About 25 years ago (1970), an interactive text editor could be designed with as little as 8,000 bytes of storage. (Modern program editors request 100 times that much!) An operating system had to manage with 8,000 bytes, and a compiler had to fit into 32 Kbytes, whereas modern descendants require megabytes. Has all this inflated software become any faster? On the contrary, were it not for a thousand times faster hardware, modern software would be utterly unusable.
Nearly all programmers build software for general computing hardware – laptops, servers, etc. These are machines that can do a variety of tasks, designed to take nearly any program and to run it. However, the growth of the Internet of Things (IoT) is changing the entire relationship between hardware and software.
IoT devices, be it your FitBit or otherwise, has far more limited hardware resources than your average laptop. And considering how difficult it is today to prototype or produce one’s own hardware, it’s not surprising that the vast majority of software engineers are not familiar with creating lean software as Niklaus Wirth pleaded them to do. Next year’s Mac is going to be faster, so why bother?
The Innards of your standard FitBit
But for every IoT device, there is value in being a lean software developer. And with a Botfactory Squink, it’s going to become easier and easier for startups and big firms to prototype hardware for IoTs. Keeping power consumption low, features zippy and memory footprint to a minimum is a primarily the job of the minimalist software engineer. Granted, components like IC and memory chips are going to become better, although the present value of using the highest performing chips for something like monitoring your heartbeat seems a bit like overkill.
Getting software engineers more familiar with tailoring hardware to meet their demands is one of the key challenges for the IoT revolution. One of our goals is to create a space where software and hardware engineers can share their experiences, codes and circuits so that they can learn from each other and get the most out of their Squink. Wirth believed that Good Engineering was 'characterized by a gradual, stepwise refinement of products', a philosophy that is best introduced by having the right tools for iteration and bridging the gap of understanding between Software and Hardware.