Last week I talked about how the PCs existing role is being threatened by the evolving push towards services based applications. There is a widespread fear that web2.0 and SaaS will finally kill the thick Moore's law driven PC and we all will be either working of dumb terminals or the cell phone size devices that will run all our applications. Certainly skeptics and realists are arriving and last weeks blog by John Milan talked about how Google's desktop based application strategy is evolving. I believe that PC type high end compute devices will still be around but certainly with a new defined role of providing stateless and cheap raw computes.
Going forward PC will take on more the role of local storage/caching/execution device. It is already happening, PC in home is already the synching & charging station, music mixer & browsing device, Sam Ruby from IBM has a great presentation on the topic. While in enterprise PCs are quickly becoming thin state compute player with role based applications/kiosks becoming commonplace.
The tipping of broadband adoption beyond 50%, the availability of cheap hardware and open source stacks have finally brought in the ability to break out from the limitations of client server model. Applications are not going to be written in the old ways and that means applications can finally be experienced differently. Application streaming vendors and role based deployment stacks are bridging the gap for existing client server applications in the enterprise space while in the consumer space everybody seems to be rallying behind web2.0
PC going from Multi Applications to Multi Player It was while working on the PDS project at IBM T.J Watson lab that we coined the term “Application Player” for the first time. Applications that can be experienced as a stream similar to watching a MPEG file or internet radio stream. The real implication was that now one could treat compiled applications and play it like any media using a S/W player. This meant that the composition and packaging of application is totally independent of the way applications are run. After all we always knew that runtime characteristics of an application is totally different from the design time and compose time characteristics, just didn't know how to manage it differently. By being able to separate these attributes it is now possible to pull in some of the composition and assembly aspect of application into the cloud, while also make the edge a better runtime stateless player. I think Microsoft is also thinking in the same line and the increased focus on declarative languages like XUL, XAML, FLEX makes it easier to reach there.
This is the biggest opportunity for PC. PCs can now become the perfect form of interaction engine. Finally the glue that stuck OS and applications to PCs are loosening and PCs could be redefined into a platform for interaction. Things like device driver models that have become a nightmare inside the Operating system could be pulled back to the hardware and used to putting up a softer face. It is time for us to look beyond the keyboard and mouse interfaces and provide an interaction based programming interface and tools that can be applied to things such as multi-touch, voice, conversational systems, 360° camera. PC's or PC type devices will start becoming the enabler of the local infoclound. And with the onset of virtualization technology in chips and open source VMMs now we have the basic building blocks to build this.
I am excited by the opportunity and believe this is just the beginning. The whole service orientation of applications and ability to experience the Application Anywhere Anytime is finally going to bring the information to fingertips and is heralding in new era for computer science.
PC is marching towards becoming the perfect “Interaction Engine” and who knows how many unintended uses will emerge. Here is one that is using exisiting PC hardware to predict Tsunami's using vibrations on your hard disk