From btman@grotto11.com Wed May 16 17:33:26 2001 Date: Wed, 16 May 2001 17:32:36 -0700 (PDT) From: Brian Tiemann To: erichuf@aol.com Subject: Some thoughts on Linux and Open Source Hi-- I just saw your essay at http://members.aol.com/erichuf/Linux.html and wanted to make a few comments. First of all, congratulations on a well-stated and sane argument. I'm a software engineer who has gone through a few phases in recent years with respect to open-source software, and while three years ago you might have found me waving the "Anyone who doesn't use Linux is a moron and a Nazi!" flag, today I've gained a much greater appreciation for such time-honored, oft-challenged, but always returned-to concepts as human-centric design, real customer service, and paying a fair price for honest work. I do, however, want to point out something. Your essay focuses on the desktop OS market, and in that arena there can be little doubt that Linux is nowhere near where it needs to be to provide a viable alternative to Windows. KDE is making some impressive strides-- a friend of mine has been showing me what he can do with KDE's built-in web browser and office suite and how its human-interface paradigm works-- but it's still not an OS where you can run your office's new corporate Intranet client software, or install some little shareware doodad from a URL someone forwarded you. These things have taken many years and a lot of commercial dollars to develop. It takes more than just good intentions and a burst of superhuman effort from five or six idealists to bring that kind of interoperability about. But where Linux-- and its open-source brethren, particularly FreeBSD, which I prefer-- do excel is in the server space. This is where they get to run time-tested UNIX software that also runs on commercial UNIX variants. Infrastructural server apps generally need to do ONE thing, and do it WELL. Open-source benefits this model. Commercial development, such as that at Microsoft, tries to produce solutions for this space that do MANY things, and do them HALF-ASSED. A few examples: Sendmail. Open-source, venerable. It does SMTP. That's it, really. It does everything anyone could possibly want from SMTP. It's so mature that most bugs and security issues have been wrung out of it, largely through open-source development. MS Exchange. Commercial, expensive. It does SMTP, as well as POP, IMAP, NNTP, calendaring, and a zillion other little things. Many of these features are incompletely implemented or opaque to the administrator. It's also buggy, full of security holes, and monstrously hard to maintain. Apache. Open-source, venerable. It does HTTP. That's it, really. It does everything anyone could possibly want from HTTP. It's so mature that most bugs and security issues have been wrung out of it, largely through open-source development. MS IIS. Free, but commercially-developed. It does HTTP, FTP, FrontPage development, and so on. Its security history is laughable, and administering it (especially remotely) is a major pain. BIND. Open-source, venerable. It does DNS. That's it, really. It does everything anyone could possibly want from DNS. It's so mature that most bugs and security issues have been wrung out of it, largely through open-source development. MS Active Directory. Part of Win2000, commercially developed. It's new, and nobody really knows how it even works. Buggy? Probably. Secure? I doubt it. Time will tell whether people even jump on the certification bandwagon or try to run a business or ISP on it. The reason open-source development doesn't work for desktop software is that desktop software is typically much more complex than server software. Servers just have to conform to an open, published specification (RFC #whatever) and serve data. Client apps, however, have to handle multimedia, licence proprietary codecs from companies that don't do anything BUT develop codecs, operate on the newest and greatest gaming-oriented hardware, and provide user interfaces that are easy to handle. Having done some user-interface work in the past year or two, I can confirm that good UI design is bloody HARD. What the engineer finds easy and intuitive, the marketing guys can't figure out if their lives depend on it. Let alone the poor novice home user. Proper UI design requires a complete HID specification, research, user feedback, and good management and organization. That's the only way media-rich consumer apps will get written: if programmers are paid to do it by a software company. It's hard and tedious. Open-source people do fun stuff that works quickly and doesn't require UI work or licensing or hardware-specific APIs, like servers. They don't do tedious stuff. That's why Gnome and KDE have taken so long to do, and why xanim is still Linux's only movie-player of any note. Except RealPlayer, which is (gasp) commercially developed. This is why I agree with something you say early on in the essay: different types of software are designed for different kinds of purposes. Server software is a class that coexists well with the open-source concept. It's proven to have done so. Consumer apps, on the desktop, do NOT coexist well with the open-source concept. By that token, Linux will never become a replacement for Windows. I don't think it ever should. What it *should* do is entrench itself as a server OS, because that's where its strengths are. Why should we be trying to cope with Linux in an area where it's weak, where instead we could be refining where it's strong? And as you say, why should we be pretending that Linux can be a good desktop OS any more than Windows can be a good server OS? I use FreeBSD for my servers, and Macintoshes for my desktop machines. I've arrived at this combination after many years of fighting with Windows and Linux and DOS, finding where each sucks and each is strong. I don't like Windows' UI and Linux is a joke on the desktop, so I use a Mac (which is the only one of the bunch which actually appears to have been designed by humans FOR humans, instead of by chimpanzees from 2001 smacking it with bones). I don't like Windows' bloatedness and unusability on the server front, nor do I like using closed-source apps that I can't remotely administer or tweak for performance or even grow my own server-side apps. I also don't like Linux's chaos or the attitude of its user-base, so I use FreeBSD. I've yet to find any occasion where this mix has failed me. That's because for different purposes, I use the OS that is strongest for that purpose. Much to everyone's dismay who makes an OS, this means using multiple OSes. Thanks again! Brian