I recently read an article over at Knowledge @ Wharton on “Software’s Future” where they said that there is a drive toward hybrid desktop/webtop software, that there are limits to both approaches, and that the future for software may be a blend of the best features of both, that really got my attention.
The focus of the article was on the fact that Adobe Systems, Microsoft, and Google recently made new product announcements around advancements that they believe will be the future of software. Adobe with its buyout of Virtual Ubiquity that created a web-based word processor on Adobe’s new software development platform, the AIR, that can run on-line or off-line; Microsoft with its Office Live Workspace that extends Office and allows users to store and edit documents on the web and share them with others; and Google with its “Gears” that allows developers to create web applications that can also work offline. Based on these offerings, the experts at Wharton are predicting that the hybrid software model is going to emerge and take hold and be long-lived.
Furthermore, they are predicting that this new hybrid software model will develop in two phases. In the first phase, web-based applications that offer the same features as current desktop applications will become common. In the second phase, web applications and desktop software will co-mingle and the functionality advantage of desktop software will erode.
Well, this would be a great prediction – if it wasn’t for the fact that phase 2 exists today and has existed for a long, long time. It’s called Fat Client, or Thick Client, and some on-demand software as-a service providers, like Iasta, have been delivering software in this model for years! Now, you might say that it’s not the same because browsers are ubiquitous and fat clients tie you to a single platform, but that’s just not true.
First of all, there’s nothing stopping you from writing your fat client application in Java, which is as multi-platform as you can get. Secondly, should you decide you’re going to use Flash or Flex, you’re not even going to be compatible with every major web browser, yet alone every platform. The most popular browser is still IE and, guess what, that’s Windows only. Microsoft abandoned IE support on Mac years ago. Opera, still not that popular, even though it had most of the innovative features that you find in today’s browsers first, is only PC, Mac, and mobile. Only FireFox comes close to covering today’s common platforms, namely PC, Mac, and Linux, but don’t expect every plug-in or extension you commonly find on the PC to be available cross-platform. Basically, the web-browser is not universal, as not all browsers even support CSS fully and identically, and has no advantage over a well-designed Fat Client in Java.
Thirdly, and most importantly, whereas web-browsers and plug-ins are encapsulated from the underlying operating system and don’t give you a lot of control over local processing and no capability to save or cache data locally, Fat Clients give you the best of both worlds. You can work locally, or over the web. And since there are a number of open source browser projects out there, including the Mozilla technology base that FireFox is built on, there’s no reason a Fat Client can’t include a browser if that’s what you feel you need for that web experience.
Let’s face it, the web isn’t what you see through your browser, the web is a set of services that can be defined and encapsulated in protocols such as HTTP, FTP, SMTP, etc. that constitute the application layer of the internet and that run on TCP/IP. The browser is one way you can view data that is available over the web, but it’s not the only way.
So next time someone suggests “Fat Client”, don’t dismiss it as current generation technology or something that isn’t “web” enough. Done right, “Fat Client” is the hybrid future of software technology. It’ll let you work locally on a document or your own spend data set and then let you collaborate over the web and share your document or data in real time when you’re ready. It’ll let you use your local laptop resources when you’re on the plane and without internet connectivity and a remote server when you’re online. And you don’t have to worry about downtime due to internet failure. Let’s face it – even if you’re SaaS provider does have 99.999% up-time, that’s useless if your local city construction crew accidentally slices through your T3 internet connection and takes your internet connectivity down for a couple of days. So forget about the Thin phase – it’s time to get Fat!