Software systems have a hard time reaching 100% uptime. Apart from the various bugs in the code which contribute to its capricious nature, the pieces the software itself depends on may crash, break or burn as well. They might behave in a completely unexpected unrecoverable way. Stuff happens. It seems to be the nature of the beast.
A few years back when I was working on a large, +1 year late project with a number of other consultants Ravi, a wise, older programmer, compared software construction to building construction and said that the reason the latter was so much more predictable was that it had been around for 10s of thousands of years while software construction was still in the infant stages. His eyes lit up as he spoke of a future where the same degree of dependability could be found in both fields, and we all wondered what developments would have to occur first. Frameworks, components, not reinventing the wheel every time, process, methods, the list of potential silver bullets went on and on. Its been 5 years since that conversation and while new technologies abound software’s essential difficulties remain. 99.999% uptime is more than most systems hope for, and getting there is an extreme challenge.
But if you look closely at the building/software construction comparison there is a singular advantage builders of human dwellings have over builders of logical dwellings: the stability of their materials.
Wood has 100% uptime - not 99.5. This is no chance that a steel beam could get stuck in an infinite loop. Nails aren’t going to throw stale database connection errors. Cement will not stop working if the cable in the server cage becomes unplugged. Latex paint works with all versions of sheetrock.
The basic building block of physical structures is matter. The basic building block of software is logic. Matter comes with a built in runtime guaranteed by the God. People are often amazed that software works at all. To even begin to reach a level of parity with building construction we would do well to first solve the metaphysical problem of permanence. Too often Berkeley’s hunch is correct in software. But perhaps Werner Vogels and the folks over at Amazon are starting to change that.
The idea of Dynamo has gotten me breathless with excitement. Its birth will be matched only by sliced bread in importance. What they are planning to deliver is nothing less that the metaphysical underpinnings for permanent logical structures, a kind of operating system that could function as the laws of physics and reality function for wood and steel, a new universe where unbounded by time, space, crashes or data loss developers could unleash applications not as creatures into wild mother nature but as intelligent atoms into reality 2.0. Perhaps the singularity is near after all.