Applications First

Eric Raymond said recently in the New York Times that we are "six to nine months" away from seeing Linux seriously threaten Windows on the desktop. Plenty of people think that will never happen, but you should never say never. It was, after all, this same Eric Raymond who told a cheering crowd at the first Perl Conference in 1997 that NT 5 would never ship. It did, and Windows 2000 became the most stable and best offering Redmond ever produced. Anything can happen.


Eric Raymond said recently in the New York Times that we are “six to nine months” away from seeing Linux seriously threaten Windows on the desktop. Plenty of people think that will never happen, but you should never say never. It was, after all, this same Eric Raymond who told a cheering crowd at the first Perl Conference in 1997 that NT 5 would never ship. It did, and Windows 2000 became the most stable and best offering Redmond ever produced. Anything can happen.

I’m not one of the naysayers arguing that Linux will never make it on the desktop. I do, however, seriously question the current strategy for getting there. It reminds me of IBM’s “better Windows than Windows” campaign on behalf of OS/ 2, which went something like this:

1. Users will prefer the crash-proof Warp OS. (Not!)

2. Users will prefer the advanced WorkPlace Shell GUI. (Not!)

The plain truth is that users care about applications and will run them on the shoddiest of substrates, as Microsoft well knows. OS/2 was, after all, once a joint IBM/Microsoft effort — until a bright programmer in Redmond figured out how to make DOS/Windows run in protected mode. Microsoft immediately dumped OS/2 and abandoned all the developers that it had been urging to write for OS/2′s Presentation Manager GUI. This was a stunning betrayal.

But Microsoft instinctively realized that users don’t much care about the OS, or the GUI — only the applications. As lame as Windows was for the next decade, there was no more effective way to put apps onto the desktop and capture users who otherwise would have gone to the Macintosh. Now that it owns those users, Microsoft is gradually moving them — along with their apps — to the solid substrate that they always needed but never would have demanded.

I recite all this history because many people in the Linux and open source community seem not to remember it and, therefore, seem doomed to repeat it. There is an opening for Linux and it is big enough to drive a truck through. But the opportunity lies not — at least not initially — in enticing (or cajoling) millions of people to boot up Linux on their desktops and notebooks just so that they can run applications that are nearly as good as, or equivalent to, or even marginally better than what they already have. The opportunity is in reinventing desktop applications and improving by orders of magnitude what has become a sadly stagnant category of software.

Seasons and Cycles

By the time the Web happened, application software was already well into its baroque phase. It was impossible to care about the next version of MS Office, which only wrapped more incidental features around the core functionality that people actually used.

The Web showed us just why applications had grown so stale; they were not connected to anything. The browser, though radically inferior as a platform for GUI apps, made the GUI seem irrelevant. With a handful of widgets, HTML, script, and a pipe to the Net, the browser fueled an explosion of applications that connected people to information and to one another. The browser wasn’t a fixed-function software monolith. It morphed magically into a thousand guises, adapting on the fly to serve thousands of different needs.

However, by the end of the last decade it was time for the pendulum to swing back towards richer modes of user interaction than the browser could support. Java, though wildly successful as a platform for network services, had failed miserably as a GUI replacement.

The answer, maybe, wasn’t a whole new GUI, but rather a way to use the existing ones more effectively than the browser could. Netscape and Microsoft tried their respective variants of dynamic HTML. The results, so far, have not amounted to much more than a dozen incompatible ways to add menus to Web pages.

Mozilla, meanwhile, cooked up its own stew made of XUL, script, DOM, and XPCOM. ActiveState’s Komodo proves that this can be made to work. But Mozilla has yet to attract an appreciable fraction of the dwindling share of Netscape 4 users.

And then there’s Microsoft, which has been itching to bring back real GUI applications ever since the browser first challenged Win32′s dominance. When the browser war was raging, Redmond couldn’t make any headway with ActiveX controls that only worked in MS Internet Explorer. That particular war is now over. Netscape, according to some measurements, has fallen below ten percent of market share. For many Web developers, supporting Netscape has become a thankless chore, and they are increasingly deciding to just say no.

We’re about to come full circle. The Win32 GUI that’s native to virtually all end-user PCs is about to reassert itself, this time as the face of networked rather than standalone applications. And what’s more, those Win32 apps won’t just be written in C++ using that ubiquitous framework, the Microsoft Foundation Classes (MFC). Although most discussion about the .NET initiative focuses on the Common Language Runtime and on SOAP-enabled Web services, there’s also a new framework for client-side GUI applications called WinForms. Think Tcl/Tk or wxPython or PyGTK, but generalized both in the GUI dimension to include all the rich abstractions of MFC and in the scripting dimension to work interchangeably with any .NET language (including JavaScript, Perl, and Python).

The New Desktop Opportunity

As the Web evolves from a collection of pages into a cloud of services, Linux’s future as a major platform seems assured. Web services, expressed in terms of the SOAP protocol, are inherently open. Microsoft will naturally want people to use only its own HailStorm services to store and manage identities, personal information, and the like, but there’s nothing to stop anyone else from creating equivalent services.

To interact with these Web services, users will require new kinds of client software. Consider messaging and personal information management. Our e-mail clients and PIMs, which have changed remarkably little over the last 10 or 15 years, serve us poorly. Do you know anyone who isn’t suffering from e-mail overload or calendar confusion? Now imagine what happens when we start sharing these communication channels with a swarm of Web services. We’re going to need applications that real people — not just geeks — can use to filter information effectively, sign and encrypt messages, index and locate documents, collaborate on group projects, and delegate access to data and services.

There’s infrastructure to build, but the hardest challenge may be the user interface. For example, we have had e-mail filtering and message signing/ encryption for five years in widely-deployed applications such as Netscape Messenger and Outlook Express. Yet almost nobody has figured out how to use this stuff. Build a better mousetrap, and the world will beat a path to your door.

One promising candidate is Ximian’s Evolution. Currently, it’s evolving into GNOME’s answer to Microsoft Outlook. I believe the fierce creativity of the people behind this project can take it much farther. I would love to see Evolution fulfill the vision of advanced groupware that Netscape Communicator staked out in 1996.

Here’s something that will help — ship a solid Windows version. I know this is ideologically awkward. It is, however, feasible, as the recent Windows port of GTK+ and GIMP has shown. Some zealots have argued that people who want to use GIMP should be forced to boot Linux in order to get it. Others have advocated the carrot instead of the stick — make great free software widely available, let migration to Linux follow naturally. That, I think, is the correct view. If the goal is to attract lots of users, hook them on applications first. Then show them how those applications can run better on Linux.

Here’s something else that will help: make Evolution (and indeed every other open source desktop application) radically scriptable. By that I don’t mean just using GNOME Basic for embedded behavior, a la Visual Basic in MS Office. Rather, I mean enabling full-strength scripting languages like Perl and Python to whip up serious customizations at all levels, from storage to processing to user interfaces — especially user interfaces!

The Web flourished thanks to the amazing productivity of open source scripting. Imagine what it would have been like if every CGI program had to be written in C. But that’s still how we approach client software. The .NET WinForms framework aims to expose GUI programming to the kinds of hackers who made CGI stand up and do tricks. I hope we’ll end up with open source implementations of .NET. But in any case, let’s empower lots of people to hack applications and make them matter again.

Jon Udell runs the Linux Magazine Web site. He can be reached at udell@monad.net.

Comments are closed.