Wednesday, March 09, 2011

It is not cloud or client

With so much discussion recently about moving your computing solution to the cloud as opposed to building a rich client application I thought I would make some observations.

Step back 30 years (1981) to the days when the mainframe was being positioned as a computing solution for business via thin client terminals. At the same time a new type of computer was starting to become popular, the personal computer. The personal computer was a low powered device by comparison to the mainframe, but it was all yours,.There was no sharing of resources or concerns of your personal and private data getting into the wrong person's hands. Microsoft made it their mission to put a computer on every desktop, it was a noble cause, a democratization of computing power. As personal computing power increased and with it the software for personal computers, the dream has become a reality. Now the modern day personal computer is often more powerful than many of the mainframe devices. The personal computer has also become so cheap as to be considered a disposable item by large companies. Place a large number of personal computers together and you can create an immensely powerful shared computing resource. In many ways, this stacking together of large numbers of computers provides more redundancy than a single large powerful computer. When a part of it fails it is really disposable and can be left as a dead component in the array of computers. The operating systems that these personal computers run is not considerably different from the operating system that runs the modern day laptop or the desktop computer.This has lead to a shift in the dynamics of the industry. The manufacturers of the personal computer operating system (let's face it, I am talking about Microsoft here in the main), is now the same company that is producing the operating system for the shared resource computing accessed through the modern day terminal (the browser). This now means the same company that has lead the charge to bring computers to the desk and into your hands is motivated to create large online shared resource centers, centers that run their operating system.

The interesting thing is that over the last 20 years Microsoft's Windows operating system has matured into a far superior server technology than client technology. Consider the Vista issues that clients reported and compare that to the lack of issues reported for Windows Server 2008. Windows Server 2008 is a really solid operating system and yet at its core is the same operating system as Windows Vista. It should not be surprising then that a company like Microsoft would play to its strengths and be motivated to sell more of its server operating systems. Windows 7 has done a lot to regain credibility for Microsoft as an operating system on the personal computer yet it is clear that market share is being lost to other products.

Many of these other products are no longer the traditional 'personal computer' and Steve Jobs in his announcement of the iPad2 referred to these computers as 'post PC' devices. Clearly your phone, slate computer or TV are not quite the same as your personal computer, yet these devices all harness the same (if not more) computing power as the personal computer of 5 years ago.

These post pc devices are often designed for richer media consumption such as movies, video chat, music and games. In order to optimize the experience for the consumer the software running on the devices is getting increasingly complex.

This clear movement to richer and richer experiences on client devices leads to a higher and higher consumption of bandwidth. At the same time greater levels of abstraction are being created by developers to simplify their lives. For example consider the heavy use of XML as a data transfer medium, XML is human readable and easy to debug, yet it increases the bits required to send the information compared to other methods software developers used when the available bandwidth was far more constrained. Couple this increased use of bandwidth with, what seems like, an insatiable appetite for richer experiences and we have a scenario where more power is being required on both the server and the client.

The cloud or shared computing resource is here. It has been here for a long time and will be here for a long time yet. Creating a new name for this massive shared computing resource may help with marketing it as the new thing, but ultimately it is nothing more than a huge online computing platform that is shared and scalable. I am sure I remember a salesman from IBM telling me this about the IBM offering in 1986!

The smartphone, tablet, tv and laptop will always provide a better experience when the application is written to target that device specifically. The web provides a lowest common denominator for interfaces that might be interesting for businesses that want to maximize their reach at the cost of user experience. The most enjoyable experiences will always come from applications designed to take advantage of the platform upon which they are running.

I think the argument of cloud vs client is not a real decision that needs to be made. To create an optimal user experience requires a rich client application. To make the experience seamless across the different devices in our pockets and on our desks requires shared storage that is reliable, scalable and can be accessed from (almost) anywhere. It is not about cloud or client, it is about cloud AND client.

No comments: