Vladimir has posted 16 posts at DZone. View Full User Profile

Desktop vs. Web - Confrontation or Convergence?

07.16.2009
| 9150 views |
  • submit to reddit

We have all heard the theory that Web services will gradually force out client applications. All you will need for your work would be a computer with an access to the Internet and a small application to work with web resources. You won't even need a full-fledged operating system like we have today. All personal data (files, photos, documents, etc.) will be stored on remote servers. All necessary software will be available in form of various web services.

This theory has many supporters and opponents. The supporters state that at some point web services will completely supplant client applications. And their opponents will contradict that web services will never be able to fully replace many client applications, such as Adobe Photoshop or games, and that some users will never agree to store their important and confidential information on remote servers that could also be accessed by others.

This article isn't aimed at detailed description of both standpoints. The purpose of this writing is to try to look into the future and understand how the migration to web applications could occur. If such migration will take place at all, it won't happen suddenly, there should be some transition period.

 It is a fact that the Internet penetrated deeply into our life and became an integral part of it. We've already got accustomed to use social networks (Facebook , LinkedIn ), to post our thoughts in blogs, publish pictures on Flickr , watch video on YouTube , travel around the world with Google Earth  and many more. But in order to do it you would need to have some small application - browser .

Until quite recently, the market of web browsers was very "quiet". But there was a lot going on on this market lately: Apple released Safari  for Windows, Microsoft finally paid attention to their browser and this resulted in Internet Explorer 8, Google released Google Chrome for Windows, Mac OS X and Linux. Opera browser and Mozilla Firefox browser also keep up with the rest and have new updates and versions regularly. So what's the buzz? Why did everybody pay such close attention to the browser market?

Heads of these companies are famed for their ability to foresee the future and foretell trends of events. May it be that they are really sure that web solutions will sooner or later completely replace all client applications, and the browser will become forefather for the most relevant application on the computer? In this case no wonder that they offer their solutions for working in the Internet. They understand that if you don't enter this market with your own solution right now, you may come in nowhere in the future.

What will be happening with client applications? Will they really be just transformed into web services? My assumption is that the client applications will be turning into web services gradually. There will be a period, when client applications will represent some hybrids. On the one hand it will be an ordinary client application, on the other hand this application will have browser functionality and it will allow working in the Internet right from the application interface. At the moment you can already see that many applications become similar to such hybrids. For example let's take iTunes , quite a popular application.

iTunes

This application has an embedded browser component to access iTunes Store (it is actually a web service) right from the application interface which is a very convenient solution. This approach allows updating iTunes Store web service without affecting client application. Therefore this application combines advantages of a web application as well as benefits of a client application.

A very interesting functionality was added to Google Chrome browser - you can now save a page link as a desktop shortcut. Clicking on this shortcut causes launching of the browser and automatic loading of the appropriate web page. Though it is hard to tell that it is a browser:

Google Chrome

The concurrent solution was implemented by Mozilla Labs  and released as Prism .

It is obvious that the number of components allowing to embed browser funtionality into a client application has grown recently. For example such libraries as JDIC , WebRenderer , JExplorer  and JxBrowser  allow Java developers to integrate and use all the funtionality of Internet Explorer, Mozilla Firefox and Safari (WebKit) browser right in a Java application.

Therefore it turns out that many applications become hybrids already now and these hybrids are only a milestone in the evolution of client applications into web services. This is just an assumption, and it would be interesting to know YOUR thoughts and ideas on this matter. Maybe embedding of a browser component into a Java application is not just some milestone but a necessity?

AttachmentSize
itunes-screenshot.jpg73.88 KB
chrome.png42.53 KB
Published at DZone with permission of its author, Vladimir Ikryanov.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Martin Wildam replied on Thu, 2009/07/16 - 5:18am

My opinion is that software developers will get back more to thick clients - there are plenty of use cases where a thick client is simply better - at least from the performance view.

My experience shows that the hype to Web applications is driven by the ugly installation and update technologies of Windows. If Linux would be the OS on most clients, installation and update would not be an issue - at least not SUCH an issue.

Our own experience shows that on system upgrades or new rollouts about 50 % of the work is solving rollout/installation issues on the client. I assume this is because of Windows and Windows applications written in C++ or the like.

I would expect that a thick client written in Java would hav/produce far less issues.

I do use several java applications on my clients (Windows as well as Linux) and I NEVER had an issue that the newly installed Java app breaks another app or is missing some important dependency or an important file could not be updated because of locks and so on - issues that are common when installing Windows applications on the client. And vendors fear the client problems - if their app is breaking something else they get cut off their head. So in reality nobody wants to touch a Windows client and so a web application seems to solve that issue and avoid any client rollout. This is IMHO a major reason why sooo many apps get webapps today.

On the other hand, if you look at Skype (or Gizmo or Yuuguu and how they are all called) or LimeWire or .... - there are plenty of applications that are using the internet highly intensive but are thick clients themselves. And it really makes sense to just throw the data over the net and not parts of the application itself.

I do not want to say that I am generally against web apps - far missed - but the decision for doing a webapp should not just be because of avoiding the installation on the client or of being platform independent. Both can be achieved even following different paths - e.g. using Java :-).

Philippe Lhoste replied on Thu, 2009/07/16 - 6:38am

The scenario at the start of the article looks like a nightmare to me...

That's funny, I remember when personal computers started to be wide spread, they were hailed as at least a break from the terminal+server scenario, as being fast and independent (and affordable, compared to a server!).
Now, some people try to go back to this (smart) terminal+server scheme. Particularly those trying to sell the services...

I find Web services cool, useful, practical.
But I remember the summer when I had a portable computer and no Internet connection around: no Wi-Fi unless I move to the city, even less fixed connection.
Perhaps in some future we will be living in high-speed omnipresent free Internet connections, but until then I am happy to have applications and data on my hard disk. That's also why I find DVCS so seductive...

Likewise, I would hate to depend exclusively on a company to access to my data or even just run some application, word processor, IDE or graphics editor. What if the company just choose to do some maintenance and find itself it takes more than expected? (does it sounds familiar?) What if you cannot afford, this month, to pay the subscription? What if the company, even if large and around for quite some time, just go bankrupt (did you said Enron?).
The scenario is nice when you see Web services as always available from everywhere. But reality often knocks on the door...

It is OK to use Facebook, Flickr, YouTube, because either you don't own the content, or somehow the content still lives on your hard disk (if you are careful...). And most of this data isn't critical anyway.
But counting on a foreign company to store your codebase, your documentation, your accountancy? Not me, for sure!

Alex Lorenzi replied on Thu, 2009/07/16 - 7:20am

@Philippe Presumably you store your money in a bank - a big, potentially foreign company, looking after one of your most critical assets. Most of your points centre around the concern that the service provider you use fails some how, and how this lost of control will affect you.

Issues with privacy, security and reliability are really just a matter of what's accepted generally. I know older people who refuse to have their images put up on any website, let alone one a widely used a Facebook/Flicer etc because they see it as intursion of their privacy, but to any 16 year old it's almost the primary means of communication.

If the technology works and has a proven track record, and if there is a visible benefit to using the technology then people will eventually move. Cloud computing and the like offer large benefits to small/mid size companies in reducing start up cost, as well as the benefits to the developers such as those described by mwildam.

Your right in pointing out the when the PC first became widely accessible it was seen as good move away from the terminal/server paradigm. But things like this tend to move in cycles.

 Both solutions have pro's and con's and as the excitement about new possibilities/benefits of one paradigm dies down, all that's left are the problems, so a switch back to the old ways seems better as it would address these problems and the old problems that prompted the initial switch are forgotten or solved (internet speeds are vastly faster than previously, but as you point out not available everywhere). It seems likely to me that in the another 20ish years we'll be looking at moving back to thick client as these will solve some problems with the cloud computing model.

aaaaa aaaaaaaa replied on Fri, 2009/07/17 - 3:03am

For me you can't ignore webapps success and in the future we will see many hybrid applications.

Cloves Almeida replied on Fri, 2009/07/17 - 5:06pm

When you need strong user interaction, like some portions of ERP, CAD software, photo/movie manipulation, having a traditional GUI is mandatory.

Other stuff, like e-mail, IM, etc. is just preference. I feel more productive using Thunderbird instead of GMail.

But like someone said, deployment is critical. Say the iTunes Store example given. If, instead of a embedded WebKit, they decided to implement as a GUI build using a dynamic language where the software fetched the new version transparently from Apple's server and presented to user without restarts, dangling "update managers" and such. Would that be any different from loading and rendering a webpage?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.