At the moment, the cloud is all the rage in the software world. As Larry Ellison so deftly argues, software can be very hype-driven at times, drowning the real issue in a very loud chorus of “don’t miss the bandwagon” noise. In the case of cloud computing, however, the noise is warranted, because it does represent a quantum leap. The reason is that with cloud computing, one of the wet dreams of every programmer becomes reality: the ability to treat computational resources as a part of the software kit.
No matter how fast and cheap computers become, how good database management systems get at replication and how large the hard disk address space becomes, there are two serious problems with these technologies which give you more computational resources: that you have to integrate them to your system in the first place, and that given enough time, each and every one of them will fail. When they fail, it will take a few hours’ work, and your web stuff will be inaccessible for a while. If you have already established clearly defined procedures for dealing with hardware failures and outages, this time will be less, but you will have to face it at some point. Cloud services present you the chance to deal with these problems in software; that is, it brings them on your home turf, so that you can do all kinds of clever things like build redundant systems, write scripts which deploy your system from null without any programmer intervention, or scale your whole app based on load. Of course, these services have to run somewhere, be it Google’s brand new server farm built where there used to be energy-gobbling aluminium smelters or Amazon’s servers which were initially built to deal with their ever-growing online shop. We are going back to a future in which there are just a limited number of computers in the world, but these are behemoths with incredible amounts of computing power and just as high energy bills. Not that this future is right ahead without any hindrances; there is still a lot of issues which have to be dealt with. One of these is what the right level of abstraction is; Amazon offers separate storage and computing services, where the computing service is based on virtual machines, whereas Google offered a Python runtime, minus certain libraries deemed not safe, plus a key-value store for persistent data. Google’s approach was too restrictive for many people, and even the virtual machines offered by Amazon have their shortcomings, due mainly to the fact that certain conditions which the operating system kernel guarantees when running on hardware do not hold when there is another layer of software below the kernel.
High-availability and powerful computers with redundant infrastructure call to mind the dystopian us-vs-machines future of certain science fiction films, but despite the popularity of these fictions, no one makes any serious connections between cloud computing and dystopian AI, due to two reasons. First of all, artificial intelligence has been hailed a few times too many as the next big thing, failing a short time later to make good on the promises. Second, the software which runs on these big computers is either fragmented, serving various disparate tasks, or geared towards some peaceful and relatively narrow purpose, like indexing the data on the net in searchable form.
Despite the lack of any claim of intelligence, the complete cloud infrastructure referred in the singular as “the cloud” is still pregnant ground for fantasies of extreme computing power becoming “sentient”, whatever that means, or crossing some kind of boundary beyond which it doesn’t need us anymore. This is is a rather prominent vision in a part of the artificial intelligence community, among those one should call “the computational fetishists”, because they claim that the increase of raw computational power will somehow magically lead to “real artificial intelligence”, handwaving away tons of very difficult questions. One direct result of this singularity event will be, so its proponents, that we will be able to upload our brains onto silicon, thereby transcending death. They even provide dates for when this singularity event will happen, and what do you know, their guesses tend to fall within the last few years of their life expectancies, as Patti Maes observed among her AI-researcher colleagues who believed in the singularity. The cloud, so to say, is there right on time to save them from death.
The cloud abstraction can be worthless for thinking about artificial intelligence and the human mind (at least when singularity is the topic), but as a software abstraction, I’m certain that cloud services, or “computational resources as a service” in general, will thrive. Software being what it is, it will strive towards perfecting this abstraction. The existing problems, such as the ones Ted Dziuba points out, will be dealt with in time, because the cloud and virtual machine abstractions sell. There will always be leaking points in this abstraction, and every now and then, major outages due to unexpected circumstances will remind us that there are real physical computers running somewhere out there, but since this abstraction and the services based on it respond to the above explained perennial expectations, there will be people working on it to keep it going, filling the gaps to make it complete. Just like operating systems, compilers, programming languages, which are themselves all abstractions established in the past.