In this month’s issue of IEEE Computer, the article, “Replacing Proprietary Software on the Desktop”, by Don Hardaway, discusses the various options facing enterprises that want to evolve away from expensive vendor products and perhaps look to open source solutions. He suggests that most enterprises will probably stay with the common denominator that is the PC and will be more likely to consider alternatives for their applications.
This sounds reasonable. In fact, a group of students in my capstone class a year or so ago performed an analysis for a large organization which investigated the feasibility of migrating the entire corporation, PC’s and servers alike, to Linux – specifically the enterprise version of RedHat – and open source productivity tools. The study determined, for that particular organization though it would probably be true for similar organizations, it wasn’t feasible (financial or otherwise) at that time. (Before the Linux zealots start foaming at the mouth, this isn’t suggesting Linux can’t work for certain organizations. It was a statement about the needs of this organization, and organizations like it. Plus, since I can’t really get in to the details, it’s a bit anecdotal. I realize some time has passed as well so the conclusion today might be different.)
Religious wars aside, the article’s point was that there are options available and tried to categorize the options. In addition, it talked about the fact that web-based applications, as with traditional desktop ones, have both proprietary or open source flavors. The attractiveness of web-based applications goes back to the “dumb terminal” concept: We can maintain a single instance of the application and its needs in one place. Users point to the application location and run it, i.e., thin clients rather than thick. Administration becomes significantly easier as upgrades do not require an upgrade on every machine, just the server.
Web applications, to me, seem to be the part of interest and the article paid little homage to the real impact of web applications. The impact of switching to web applications on the user is significantly different than that of switching to an open source desktop equivalent. It’s an enormous change in paradigm.
I am not trying to suggest that web applications are significantly inferior to their desktop brethren. I am suggesting here that they are weaker in a couple respects but, as I hope becomes clear, any weakness isn’t necessarily about the applications so much as it is about the current way we view and use the web.
The fundamental assumption about web applications is that the user has web access. This considerably cripples employees that need to travel or work in areas where internet access is unavailable or limited (we might still lump this under “travel”). For example, I go to conferences where I may not be able to access the internet save for a few minutes a day to check email on a public computer. If I were gone for a week, I would not be able to work on papers, presentations, etc. This would be crippling. While I use gmail regularly, I still rely heavily on Outlook since I have off-line access to email, appointments, etc. (By the way, Outlook 2007 made some really nice changes that really improve its utility – check it out if you haven’t.)
The above example is internet based but the same effect can occur on an intranet. I have worked in organizations where thin-clients were the norm. You logged in to a remote machine, fired up the application and pointed it to your display (if you haven’t used Unix, you are really missing something.) There were many times where the intranet went down and the entire facility was crippled. Essentially the organization paid their hundreds of developers to complain around the water cooler.
Web access is important but another equally problematic area is the poor integration between the web and the desktop. With respect to applications, the only option is the web-browser. The browser provides rather limited interaction with the desktop. And for good reasons, security being the top priority. But there are other issues too.
One issue is that the web application and the browser fight for control. For example, hot key sequences are rather problematic. Both browsers and applications have them defined but it becomes crap shoot as to which has precedence. This will be improved as third-party libraries like protoype, scriptilicious and dojo evolve. Another issue is the ability to drag-and-drop between the web application and the desktop. This makes sense from a security point of view but it is extremely inconvenient.
The last issue I’ll mention is the “application in an application” concept. You just can’t obtain the same experience on as on a desktop since you can’t simulate the entire desktop in the browser. It also takes up a good deal of real estate as well as, and this is my main gripe about Windows, everything has to be in a single window (again, if you haven’t experienced Unix, you’re missing something).
Internet access aside, what will really enable web applications to take off is a better integration between the desktop and the browser. This will have to be done carefully but it has to happen – and probably will. There are a couple efforts heading in that direction: Adobe Apollo and the Eclipse Rich Client Platform. (The Eclipse community seems to have an opinion on Apollo as well.) There are probably others. In fact, to an extent the Yahoo! Widget engine (which was once, and in my opinion better as, Konfabulator) does this though widgets weren’t really designed to be full-scale applications.
These efforts really, though, are layers built on the standard browser concept. They will work to certain degrees but they really are only patching the problem. We need to see a significant redesign of the way the desktops interact with the web – a much tighter coupling. Currently using web applications is just something the machine can do rather than being part of its definition. This problem is the same for Windows, Mac OSX and Linux alike (perhaps to greater or lesser degrees).
It will take time and thought.
And while we’re at it, let’s change the internet experience as a whole. I’ve always been enormously frustrated by the web browser: It’s as a two-dimensional window into an infinite-dimensional universe. I’ve tried various avant-garde browsers with minimal success. They never really seem to get out of a concept phase. That has to be changed as well… Anyone have a vision?