I used to enjoy predicting how computing technology would evolve; it was like a game for me, and I was not too bad at it. But for a few years I have felt like I could not predict anything anymore. Things went too fast, and that bothered me.
During these years I have observed things that, taken separately, did not seem to make much sense. Some that already existed and grew in importance, and some that were new. Mobile & Local computing. The Internet of Things. ARM’s revenge on x86. The Cloud. Multicore, GPGPU. The HTML5 applications craze. Unhosted. Siri. Minix3 getting funding. Wolfram|Alpha, NKS. JSON, Git, CouchDB, Redis, Riak, DynamoDB, Doozer. JIT compilers, functional languages, event-driven programming. SPDY, 0MQ, MessagePack-RPC. Mechanical Turk and humans computer pieces. LTE, 4G networks, Free disrupting the French cell phone industry.
And then, a few months ago, I took a step back and I found a pattern. If I am right, all this is going somewhere, and that somewhere is ubiquitous computing. But not in a limited sense: “computation everywhere”, taken to the extreme. My presentation slide-show moving from my pocket to the overhead projector of the conference room, forking to the tablets of the attendees. Computation jumping from my desktop computer at work to my cell phone, sitting there peacefully to save battery while I walk to my self-driving car, only to rush to the powerful computer in the dashboard. Software running in the Cloud, on the 1028 cores of my DSL box and my toaster at home, in my headphones and in my AR lens, all simultaneously. One application in several (lots of) places. Ubiquitous.
Now maybe you are thinking “he’s nuts”, and I am thinking “maybe they’re right”. Because for this to work we will have to solve what I consider the hardest problem in Computer Science: large-scale algorithm collaboration. I honestly do not know how long it will take us or even whether it is within the reach of our limited brains. But if I am right, we are going there, and this is an exciting destination. This is a journey that requires planning, and going now would be foolish, but when we will be ready to set sail towards these unknown lands, count me on board of the first ship.