Real Desktop Linux, Part II

by Mark Stone

So you have Linux installed and all the basics (networking, X, a window manager) working. What can desktop Linux accomplish, and is it enough? As I said in Part I, this is really several questions that are all too easily confounded. I want to consider dekstop Linux in both the enterprise and the home environment, and I want to consider both Open Source offerings and Linux offerings -- whether proprietary or Open Source -- more generally.


The Good News about Desktop Linux in the Enterprise


The enterprise setting actually works to the advantage of desktop Linux in several ways. First of all, enterprise system administrators can standardize on a common, tested hardware platform for all installations. It doesn't have to be the latest and greatest hardware as knowledge worker applications don't put the stress on a system that, say, computer games do. Thus the installation woes I described in Part I need not plague the enterprise user, or the admins who support them.


Enterprise settings also require a relatively small set of applications for productivity, and those applications can be standardized across all desktops. Key application types include:


  • Text processing, including printing
  • Spreadsheets
  • Presentation program
  • Web browser
  • Email access
  • Scheduling/calendaring
  • Instant messaging
  • File management
  • User-proof backup


To the extent that users share files only internally, enterprise admins have a great deal of latitude about what applications to pick. A more important, but subtler point, is that the enterprise can dictate applications that require actual learning and expertise, but yield greater productivity.


Let me expand on this point a bit. The pro and con of most Windows desktop applications is that they are self-evident in a familiar point and click paradigm to the user. Anyone vaguely familiar with the paradigm can sit down at an application for the first time and have a basic level of proficiency. The problem is that basic level of proficiency is seldom exceeded. This is in sharp contrast to applications that are initially more complex, or at least less user-friendly, but in the end deliver more power.


Consider a couple of editing tasks:


  • Insert 5 blank rows into a table
  • Replace the second occurence of a given word on every line

In Microsoft Office there's no way to do the former short of repeating "Insert Row" five times. There's no simple way to do the latter at all. With any common Unix editor, either of these can be accomplished in a single command. The problem is, Unix editors require actual learning. Microsoft Office users become minimally productive very quickly, but remain shackled by certain inefficiencies that limit productivity in the name of "user-friendliness".


I do the majority of my text processing using the vi editor. It isn't all that easy to learn, and you have to actually spend some hours familiarizing yourself with its commands and their peculiar syntax. Even then you have to be willing to pause in the middle of a task to think if there's a better way to do it, and take the time to learn it if there is. After years of use I'm reasonably proficient, but still in awe of what a real vi master can do. But even the learning I've invested pays off in greater productivity.


I'm not advocating that everyone learn vi, but I do think that getting the benefit of Linux means embracing the idea that powerful capabilities come from an investment in actually learning the system. Accepting and embracing this idea is, in fact, one of the biggest obstacles to Linux use in the enterprise because the Linux desktop, no matter how simplified, will always have greater power but also a substantial learning curve.


The Bad News about Desktop Linux in the Enterprise


The reality is that a large amount of file sharing has to be done between enterprises as well as within enterprises. That means that typical users will have to deal with files from various Microsoft Office applications. They must be able to view them, create them, and edit them.


For desktop Linux there are options that will get you a high degree of compatibility with the world of Microsoft Office, but nothing that will get you 100%. This is, without a doubt, the single biggest stumbling block to Linux acceptance as an enterprise desktop solution.


The Good News about Desktop Linux at Home


In some ways, home users require less from their applications. At home, I don't need spreadsheets with pivot tables. At home, I don't need text documents with multi-user enabled revision tracking. At home, I don't need a presentation program at all. And I care relatively little about file compatibility with users outside my home.


Linux also has several advantages to the home user that they don't really need to know about, but will appreciate: more stable, less prone to viruses, able to run on older, less expensive hardware. My assortment of machines at home includes a 486, a Pentium II, and a couple of Pentium IIIs. The 486 is still quite useful, and I have yet to figure out what I'd need a Pentium IV for.


The Bad News about Desktop Linux at Home


In the home environment, Linux is caught on the horns of a bad dilemma. Home users fall into two general categories: tinkerers, and appliance users.


Tinkerers probably have the patience and the curiousity to learn and master Linux. They are, however, likely to be frustrated with the application offerings: not enough games, not enough device support for things like digital cameras and DVD burners, media center programs that just aren't polished enough. My father-in-law is a typical tinkerer. As a retired engineer from Ampex he has plenty of technical savy. He sees Windows as offering everything he needs, and sees no benefit to learning Linux.


Appliance users see the computer as a single function or limited function device. It's like the TV or the stereo. It needs to do the one or two things they expect of it, but the less they have to think about how or why it does those things, the better. These are the users who want to be able to send and receive email, browse the web, and perhaps do a little word processing. They have the opposite problem from tinkerers: the range of applications available on Linux is perfectly fine for their needs, but they don't want to climb the Linux learning curve.


My Experience


I have two systems I work with: a laptop that is my main work machine, and a desktop machine that I share with my wife at home.


My laptop is fairly sparse. I don't run either Gnome or KDE; I've never seen why I should add the extra system bloat for functionality that didn't matter to me. All I need is a window manager that is simple, light weight, easy to use, easy to configure, and has readily available menu items and keyboard shortcuts for the most common applications I use. My choice is Window Maker, although I suspect that either Blackbox or Ice would do just as well.


The desktop machine runs KDE. It resembles Windows enough that my wife can find menu entries and desktop icons to get to the handful of applications she needs.


What's interesting is that my wife has become a dedicated Linux user. I set the desktop machine to dual boot between Windows 98 and Linux, and showed her how to get back and forth between the two. I didn't push Linux on her, but just let her try the two out side by side. At first her instinct was to go to Windows, but gradually she switched over on her own. Several things sold her on Linux: first, the system never locked up (this was a daily occurence for her in Windows). Second, she got hooked on tabbed browsing and no pop-up ads using Mozilla under Linux. Third, for simple games (solitaire, yahtzee, etc.) Linux actually offers more that is readily available than Windows does out of the box. Fourth, all the familiar application types (word processing, etc.) were right at her fingertips and just as easy to use.


She's a classic appliance user who didn't understand Windows any more than she understands Linux, so for her there was no advantage to using Windows, and there were clear advantages to using Linux -- as long as she had me there to "admin" for her.


For me to function as a road warrior/business professional, here's what I need on my laptop:


  • Text processing, including printing. Open Office, Office XP/Word, CUPS.
  • Spreadsheets. Open Office (though Gnumeric would be a reasonable alternative), Office XP/Excel.
  • Presentation program. Office XP/PowerPoint.
  • Web browser. Mozilla.
  • Email access. PPTP, Various webmail clients.
  • Scheduling/calendaring. JPilot.
  • Instant messaging. Gaim, XChat
  • File management. I do all this from the command line, but Konqueror is a quite servicable graphical file browser/manager.
  • User-proof backup. A cron job running rsync.


Several things to note about this list. First, I do and must run Microsoft Office under Linux. I use Codeweavers' Crossover, and I'm more than happy to pay the money to do so. It enables me to run Office XP without having to reboot, and the hard reality is that there's a level of compatibility with Microsoft Office that Open Office simply doesn't provide. I have Open Office installed, and use it quite a bit, but for certain documents I have to resort to Office XP. PowerPoint in particular is an application that really has no effective subsitute in the Open Source world, at least not if you have to share your presentation files with others.


The other piece of proprietary software I need is the kernel module that enables me to run the Microsoft version of the Point to Point Tunneling Protocol (PPTP). This enables me to get secure access to the company network from outside, without which I could not retrieve my email. No, it isn't necessary to use the Microsoft version of PPTP; there are Linux PPTP servers available. I, however, don't get to make that call, and once our IT department has made their choice I have to comply with it.


Let me comment a little on email clients, and on scheduling/calendaring. There's a "Holy Grail" of groupware out there, an ideal world in which meetings are scheduled without an endless thread of emails saying "I can't make this time; can you make this time?" That ideal world is not Microsoft Outlook, and indeed has not been found. I cannot count the number of times I have called on a client only to have one of several people who was supposed to be at a meeting not show up. "I don't understand; Joe accepted the meeting, he should be here." Groupware in general, and calendaring in particular, work well only if everyone using the system is equally committed to using the system. There is ample evidence to demonstrate that this is simply expecting too much of the user. People aren't that vigilant about keeping their schedules up to date.


Given that that's the case, I want calendaring to be for me only (hence JPilot). And I want an email approach that's as flexible as possible. With the advent of IMAP, web mail systems became the way to go, in my opinion. I can sit down at any networked computer with a web browser, anywhere, and handle my email.


If you're going to use a Linux email client, and you aren't a Linux aficianado, I suppose Mozilla's email client, or Evolution, would be fine (although I think Evolution is overkill in the same ways Outlook is). If you are a Linux aficianado, then you already know you're supposed to be using Mutt.


While I take a dim view of dedicated groupware applications, I find that Instant Messaging has become a de facto requirement for collaboration. Instant messaging offers the right level of access to others in remote locations, without being as intrusive as a phone call. My colleagues on Windows tend to use AIM, and hence I use GAIM. IRC has some advantages over conventional IM (it's easier to create, moderate, and otherwise manage channels), and hence I still use XChat a lot as well.


Backup is another of those problems where great technical solutions run afoul of simple human laziness. There are lots of technically sound ways to do file backup, for either Windows or Linux. The reality, though, is that most of us are too busy or too lazy to back up as often as we should. My solution has been to put an rsync server on my home network, and to have a regular cron job that syncs files from the desktop machine to that server. I never have to think about it, it just happens. Every couple of months I burn a secondary backup to CD.


This is a backup strategy that makes perfect sense for desktop Linux in the enterprise. But again, it requires a minimal level of admin knowledge of computer systems, something that is reasonable to expect in the enterprise setting but not commonplace in the home setting.


Where Things Stand Today


A desktop based on purely Open Source software is not something ready for the mass market today, either in the enterprise or in the home.


The problem is not the ease of use of Open Source desktop software, nor its the capabilities. The problem is really one of compatibility. Enterprise users will not find that purely Open Source software offers enough compatibility with the world of Microsoft Office. Home users will not find that Open Source offerings provide enough hardware compatibility with a rapidly changing hardware world.


Home users are also likely to feel constrained by the limitations of pure Open Source software in the area of multimedia and computer gaming. This is a different challenge from compatibility, but one where greater strides could be made if compatibility were less of an issue.


But it's important to realize that Open Source is not the same as Linux. Expanding the software you'll countenance on Linux to include proprietary software changes the picture dramatically, at least in the enterprise.


For the majority of enterprise end users, applications like Open Office should do just fine. They'll never push the capabilities of these applications, nor push their limits of compatibility with Microsoft Office. A significant minority -- maybe 10-15% of enterprise end users -- need a higher degree of compatibility. There's still no reason why enterprises have to pay for a Microsoft operating system license for these users. Running Office XP via Codeweavers' Crossover should suffice in all but a few rare circumstances. In those cases, there's no reason not to have a few Windows machines available. In an enterprise of, say, 250 desktops, cutting back from 250 Windows XP licenses and 250 Office XP licenses to 10 Windows XP licenses and 30 Office XP licenses would represent a dramatic savings in costs, quite apart from the reduced overhead in administration.


But I have to wonder if Linux and Open Source will ever close the remaining gap. The problem is that too many people in the Open Source world are trying to do just that: close the gap. They are imitating a user interface paradigm -- Windows -- with the assumption that that's the right thing to do.


Looking at the Bigger Picture


Windows and Linux have always had fundamentally different emphases, and fundamentally different strengths. I have yet to see anyone look at Linux's strengths -- security, network-awareness, small server footprint, implementation on many hardware platforms -- and try to imagine how those strengths could redefine what the desktop experience is supposed to be.


We've seen some interesting attempts to redefine parts of the end user computing experience in the last 10 years. Notable efforts to me seem to be BeOS, Palm, MacOS X, and Eazel. Of those I would have to call BeOS the most innovative, and Palm the most successful. It's interesting to note that the only effort that was in the Open Source arena was Eazel, and Eazel was energized with a lot of vision from some of the early Apple gurus.


If you want a glimpse (not Linux-related) at a radically different view of what the end user experience might be like, I heartily recommend Jon Udell's Practical Internet Groupware. The book, sadly, is out of print, a sign that the time for its ideas has not yet come. But that's a topic for another time.

Where have you seen desktop Linux in the enterprise, and what has your experience been?


10 Comments

anonymous2
2003-12-02 04:44:33
Picky point about one of the examples
You used the example of inserting five rows into a table and said "In Microsoft Office there's no way to do [this] short of repeating "Insert Row" five times." At least in Word and Excel, you can do this by selecting five rows and choosing Insert Rows. (Not that this is much use if you don't yet *have* five rows in your table... *grin*) Possibly not readily discoverable (though I found out about it by just trying), but definitely there if you know about it.


Your general point about MS Office apps not providing the depth of Unix apps stands, of course, but Office does provide more "power user" features than may be visible on the surface.

anonymous2
2003-12-02 05:17:39
Agree with previous post and more
Just because *you* don't know how to easily add five rows to a table or change every second occurance of a word using MS Office does not mean the functionality does not exist. When you first began using vi and other GNU/Linux related programs, was that functionality immediately obvious? No, you had to investigate (read help files) and learn how to do it. Apparently you do not do such with other programs.
Additionally, you forget an application type or category that is quite important in some enterprises: MPS/ERP system access. Comparing the programs used to access such systems on MS Windows platforms versus those available for GNU/Linux and the MS Windows programs easily win. Simple to use and teach to non-technical users and supporting far more features than those for GNU/Linux. For example, try accessing a GEAC System 21 running on an IBM iSeries (AS400). For MS Windows there is the very uncomplicated GEAC System 21 Explorer, for GNU/Linux the closest I could find is a terminal emulator (tn5250). While somewhat usable it is by no means a drop in replacement. In my company, such applications are more important than typical Office programs.
markp1950
2003-12-02 07:33:32
I make it simple
I am lucky ebough to be able to say.


If I can't do it under Linux I don't do it...


That way if you need to do somthing, you will FIND A WAY. With every new release you have to find a new way to do things because new tools are developed and it all gets better abd easier... Ocasioanlly there does seem to be a step back, but then again, somtimes I THINK that there is a step back, only to find that there is a tool to do what I want even better... Every day you have to change...
MarkP

jafager
2003-12-02 09:33:23
users limited by will, not tools
>Microsoft Office users become minimally productive very
>quickly, but remain shackled by certain inefficiencies that
>limit productivity in the name of "user-friendliness".


I disagree -- the 80/20 rule applies. Most people can do
80% of what they need with a 20% investment of effort.
They get another 10% with minimal effort by asking other
people. Anything beyond that is going to require the kind
of research that the average user is no good at and doesn't
enjoy, and that is likely to consume more time than doing
things the long way.


If people were really shackled by the limitations of their
tools, you'd see a lot more Word and Excel gurus.


jafager

dpilgrim
2003-12-02 09:43:29
Re: Agree with previous post and more
A couple of points in response to your comments.


First, I don't deny that MS Office has a lot of power-user capability. Heck, for anything that's not in there you can always fall back on programming macros to add more functionality in. My point was that those capabilities are far from obvious, and seldom discovered or explored even by fairly serious users (like me). Think about it this way: Unix applications like vi provide an incremental learning curve; you start out only being able to do a little, but every bit of learning enables you to do a little bit more. Windows applications have a learning gap, rather than a learning curve; you start out being able to do quite a bit, but then reach a point where being able to do anything more at all requires an enormous investment of effort.


I don't think that one of these approaches is necessarily better than the other. Rather I think that to make Linux on the desktop appealing, you have to play to its strengths: harder to use, but very powerful, and with consistent pay-off for learning invested.


Second point: Your CRM example is an excellent one. I deliberately avoided the whole subject of middleware type applications. That's a complex subject all its own. But I do think that those applications reinforce my main point: purely Open Source software is not ready for the enterprise desktop, and compatibility with the proprietary world is a big reason why not. I will say that the number of enterprise workers who need access to clients talking to middleware apps is limited, and so again a hybrid approach -- mostly Linux desktops with some Windows desktops -- still should be the most efficient and cost-effective way to go.


Finally, it's important to note that web-based applications are making the middleware issue less of a problem for Linux. With previous employers I have comfortably used both SalesForce.com and CorporateTime from a web browser, and thus not had to worry about what the underlying OS was.

anonymous2
2003-12-02 22:56:05
Linux in the enterprise???
Mark-
Your article is interesting and I am really fascinated by the notion of Linux on the enterprise desktop. However, you don't seem to have much experience supporting Linux in an enterprise environment. I worked in several environments supporting Windows desktops over the last 15 odd years and I can tell you that the list of application types you presented is the tip of the iceberg. Productivity apps are the "easy stuff" and its inconsequential that Linux can do those reasonably well. The really hard parts are line-of-business applications of varying types and flavors-everything from stuff written on Siebel to those freaky one-off apps for calculating the rate of return on Treasury bonds.


Top that off with the need for many different "desktop" profiles based on different business roles, and you have anything but the nice, confined environment you portrayed.


Linux needs a couple of key things to be successful on the enterprise desktop. First, they need a unifying API for developers to write applications against. Without the apps, it just won't happen, and without a consistent, agreed-upon API akin to Win32 or COM, there is little incentive.


Second, Linux needs "enterprise class" software distribution and configuration management tools. Its probably closer on this front than on the API front but its not there yet. If the stuff isn't manageable en-masse,then it ain't gonna fly.


Frankly, as a hard-core Windows guy, I would really love to see Linux succeed on the desktop. But someone in the Linux world needs to take some lessons from the progress that Windows has made over the years--take the best from that and then make it "Linux-like".

anonymous2
2003-12-03 05:29:30
Qualifications
Having seen this weblog, it appears pretty clear that the author doesn't have a thorough background in enterprise (or even mid-sized company) IT support, nor in what the average corporate user is looking for on their desktop. He at least admits his bias up front for the CLI environment and the strength of the standard UNIX tool set. But to think that these are sufficient offerings for most corporate users is not only an outdated attitude, but is exactly the problem that held Linux back in the past from wider adoption. Thank goodness there are more forward-thinking, farsighted development teams out there, making a useful Linux (for a larger population) a reality.
anonymous2
2003-12-03 08:24:57
Re: Agree with previous post and more
I wanted to mention a particular app I use on Linux as part of my "corporate" arsenal. Not sure if it fits into this thread or not, but here it is...


I am an SAP developer by trade, so the traditional SAPGUI has been embedded into my Windows desktop suite for many years. When I switched to Linux several years ago, I was heartened to find that SAP had an underground movement to provide a Linux SAPGUI via Java. It has since matured into a GUI for many environments, including Mac and others.


I think you will see support like that expanding in all areas. Whether that support is via a desktop API as was mentioned in other threads, or simply by moving the applications to a web model...who cares, as long as it happens!


My goal is to free myself from the Microsoft dependence...even if I have to do it without the help of my Helpdesk!

anonymous2
2003-12-03 14:39:00
Linux in the enterprise???
Okay, a couple of things about Enterprise Linux:


1) The business applications stuff (e.g. Siebel, etc.): Virtually all of that has been re-written into Java, or is accessed via a terminal program client on a mainframe or via a web browser, over the past ten years at the major Fortune 5 companies that I am familiar with. This stuff runs as well on Linux as anywhere else.


2) Unified API: Linux *has* a unified API. It's called POSIX. Linux implements the entire POSIX API. Linux has two GUI API's (GTK+ and QT/KDE), but since both are installed on every Linux system in existence today, that's irrelevant. When I was part of a team that wrote a major enterprise application for Linux, we used GTK+. We could have used QT just as easily. It just didn't matter.


3) "enterprise class" software distribution: Unix has had this for years, and Linux is just a re-implementation of the Unix API. All the "enterprise class" Unix software distribution software is also available on Linux. Google runs tens of thousands of Linux nodes to search the web, surely you don't think they're doing software distribution *by hand* on those tens of thousands of servers?! Personally, when I was managing several hundred Linux and Unix servers, I used 'rsync' and ssh to handle the software distribution. This required about 30 minutes of scripting time on my part, after which software distribution was a case of pressing a button (I could have automated it, but we didn't want to do that for reasons of quality control -- software didn't go out until it'd been vetted on a test setup).


4) Configuration management tools: I'm not quite sure what you're talking about here. Large-scale Unix and Linux deployments are comprised of entirely identical systems, to the extent that even every byte on the hard drive is identical (with the exception of swap file and /tmp areas, of course). Anything user-specific lives on the server. There's no configuration to *MANAGE*. I can log in to any workstation on our network and be at my desktop. When I was managing a network of several hundred systems, I kept some spare cloned hard drives and systems hanging around. If a user's system went down, it was a case of go to the user's desktop with a new system on the cart, yank the old system out, put the new system in, turn it on, and after it finished booting the user was back up and working with her desktop and files and all.


5) Desktop "profiles" -- all Unix/Linux user management is done from a centralized location. All non-standard Unix/Linux software is installed in a centralized location (on the file server). Typically providing for different desktop "profiles" is part of the standard process of creating a user, where you decide what user groups he's going to be a member of, and from thence Unix enforces the access priviliges (if he's not a member of the group that can access CAE applications, for example, he doesn't even *see* the CAE applications or the directories that hold them, much less be able to run them). The Linux/Unix machines themselves are bog-standard with a standard software load that does not vary from machine to machine -- everything that is user-specific lives on the server, and a user can go to any workstation on the network, log in, and be at his desktop with his settings and his applications.


Look, us Unix geeks were doing this with Sun equipment back in 1989. Linux is no different from any other Unix when it comes to ability to manage large-scale deployments -- it's been done, it's old hat, there's hundreds of thousands of Unix sysadmins who could do it in their sleep. The fact that hard-core Windows guys know nothing about this is a testament to their ignorance, and has nothing to do with the limitations (or not) of Linux.


BTW, the biggest issue I have with going to Linux workstations rather than a proprietary Unix workstation: Maintaining standard system configurations. Unix hardware tends to remain standardized over a long period of time. But if I buy a video card today for a PC, it will be discontinued within three months as the manufacturers continually improve video cards. What I end up with, as hardware attrits, is a mish-mash of hardware rather than an easily-administered standard configuration. But the Windows guys have the same problem, so it can't be said that this is a reason to choose Windows over Linux.

anonymous2
2003-12-03 21:44:57
Qualifications
Mutt for email? Outlook is an overkill?


I think the author is as qualified to review "average usability" as an Iranian ultrareligious mullah reviewing democracy.


Sad.