Client or the Cloud?

Paisano writes a punchy post about the death of desktop apps that I commented on and I wanted to share a bit more insight into where we’re taking the concept of Mesh in order to solve some of the problems that he identified.

Whilst the browser is great for some types of apps like collaboration, sharing, broadcasting it’s far from perfect.  The number one problem is speed.  A browser is slow.  Why do you think Google have been trying so hard to speed up their JavaScript engine? No matter how much tweaking they do they’ll always be slower though.  Client apps, i.e. ones that can harness the power of the device they are running on are much quicker, have richer experiences and can do things the browser simply can’t, utilize multi-core for example.

Look at Twitter, quite frankly their website is poor.  It’s constantly broken, slow, yesterday I tried to register an account – I got the fail whale.  Not good.  How then, are they so successful?  Why do people continue to use Twitter?  It’s about the APIs and the way you can develop applications on their service.  TweetDeck has been very successful because it provides a better experience for the service than anyone else – far better than Twitter.com even.  Could you build a website in AJAX that was as slick as TweetDeck? No, because the app has the browser in the way of that computing muscle.

When the walled gardens fall as services become more open and data portability becomes the norm, the one true differentiator will be user experience.  If I can get a better user experience on a client application then I will use it, period. 

image

Now, onto the second gripe.  With desktop apps (Silverlight 3, Air, WPF, Native etc) you have to install and configure them individually on different machines.  He’s right this is a pain and another example is when you blow away your machine and reinstall the OS.  After this you have to install all your apps and configure your settings to get back to the way you had it before.  This is time consuming.  I want to be doing other stuff instead!

This is where Live Mesh and Live Services (the underlying services for developers) comes to the rescue.  The premise behind Mesh is that people have data, applications, devices all over the place.  As the device explosion continues, keeping applications and data that people care about close to them is going to become increasingly difficult to do. 

Mesh makes that happen by providing applications that run online or offline, sync both user data and app settings between devices and the cloud, and leverage the local device’s horsepower to provide a rich user experience.