Eric Lee Green
Eric's Home Page

Menu:

Home
UP
EDITORIALS

Links
Contact Info
My Resume
My Public Key
EMAIL Eric

BadTux Portal[et]

Or, the Linux GUI is already better.

Note: Some things have changed and improved in both Microsoft and Linux GUI's since this was written several years ago. Consider this a historical document only.

The Microsofties are fond of talking about things they miss about Windows when they run Linux or FreeBSD, so I thought I'd return the favor. Hopefully I'm more accurate than they are (they usually say things like "I miss being able to point and click on icons", even though KDE has been doing that for two years now). So, without further ado, here is my list of "things that I use every day that come with Linux or FreeBSD that cost extra on Windows if you can get them at all":

  1. Real software package management. Rather than rely upon individual packages to manage their own installation and removal, the operating system keeps track of what files belong to what package and handles removing them when you want to uninstall. Using 'rpm -e' under Linux or 'pkg_delete' under FreeBSD always, without fail, removes each and every file associated with that package. And there's never the question of "what package does file 'n' go with?" since you can just query the package database to find out what package installed that particular file.

  2. Fast installation. Linux installs in under 10 minutes on fast hardware, in under 20 minutes on slow hardware. Celeron 300A/128mb RAM/IBM 8gb 5400rpm IDE drive clocks in at exactly 12 minutes. This, despite the fact that it is logging each and every file installed into the package database at the same time, and is installing 800mb of files rather than 200mb of files! A typical Windows98 install takes me, on the average, 45 minutes on reasonably fast hardware (PII 350 or above, 128mb memory, 8gb IDE hard drive). I haven't done enough Windows NT installs to tell you a typical time for those.

  3. An intelligent way of dealing with multiple shared library versions ("DLL Hell"). Often, installing programs on Windows will install new versions of a critical system library, making older programs break. Under both FreeBSD and Linux, the library version number is part of the actual library name, so that you can have libc5.3.18, libc5.4.34, and libc6.0.1 on the same system without a hickup and without breaking all the programs that use, say, libc5.3. While this uses up more space than Windows DLL Hell, disk space is cheap, while a running application is priceless.

  4. Multiple virtual screens. This is the feature I most love under "X": is having multiple desktops lined up in a row on my KDE button bar. I even have them labeled on some of my machines -- e.g. 'WordPerfect', 'Netscape', 'Development', or 'Maintenance'. Whenever I use Windows I cringe at having to constantly be hitting the little 'underbar' to get windows out of the way just so I can see what I'm trying to work on at the moment.

  5. While I'm at it -- it sucks that you can't iconify or move a window on Windows 98 if the program is not paying attention to Windows messages because it is doing something important like, e.g., scanning a legal-sized picture out of the Sports Illustrated swimsuit issue. The window manager should be in charge of getting windows out of the way, not the program. So I'm stuck with that window cluttering my screen even though I want to move it out of the way so that I can get to the all-important icons on my one pitiful little virtual screen because I want do some work in another program on this supposedly multi-tasking Windows operating system AGH!

  6. Remote window display: Sure, I use VNC to display my Windows screen here on my FreeBSD desktop. But VNC is a hack. With "X" any program can display its output on any screen that it has permission to connect to, with no special programming required (just set the server name and number immediately prior to firing up the program). Rather than having to refresh an entire screenful of data across the network, all I have to do is refresh a single window of data across the network. This is a godsend for doing remote administration -- trying to display an entire screenfull of data over even an ISDN connection is painful, forget about doing it over a modem!

  7. Remote administrability, period. No extra tools required. Just telnet in or dial in via modem, and even if the system is so hosed it can't bring up the GUI, you can still fix everything with /bin/vi (though most of the time I don't want to -- the GUI tools for Linux are quite thorough and convenient).

  8. A set of development tools proven capable of global-scale software development, not just LAN-based software development. CVS can be used to handle global depositories via the 'pnserv' protocol (which is an Internet-based method of doing code check-ins and check-outs), as vs. tools which require the code to be on your local area network. 'make', 'diff', 'gcc', and 'patch' may seem crude, but they are standard across every Unix variant across the world and have scaled wonderfully with the Internet.

  9. While I'm on the topic: A huge number of programming tools, standard. Everything from languages (almost every possible computer language you can think of, from Smalltalk to CAML), to scripting tools, to development libraries and development tools (such as the 'qt' library, and the 'qtarch' screen layout tool), to visual debuggers ('ddd', 'xxgdb'), Linux is a programmer's delight. The programming tools on a typical Linux or FreeBSD CD-ROM would cost thousands of dollars if you bought commercial equivalents.

    Oh -- they don't work well under Windows. E.g. gnuwin32 does not make native Windows applications, it makes Unix applications that run in a Unix emulation environment. Why emulate when you can have the real thing?

  10. Xemacs. The Swiss Army Knife of programmer's text editors. You can check your code out of the CVS depository, edit it, compile it with 'make', have the editor pop you straight to your errors (including the editor pulling up the file that the error was in and going to the exact character), even run the debugger without ever exiting XEmacs. This is the prototype for all IDE's anywhere.

    People who run XEmacs on Win32 say "What's the point?". That's because few of these functions work under Windows, they rely on features of Unix such as pty's and pipes.

  11. While I'm thinking about it: "Many small tools, chained together". I often write simple little pipelines to do complicated administrative tasks that I just could not do in Windows (well, not easily anyhow, not to an entire network of Windows machines the way I can do to an entire network of Linux machines).

  12. A complete bundled set of Internet services: proxy cache, ftp, name server, pop3, imap, SMTP, web server with bundled scripting languages such as PHP3 and Perl set up as modules that run as part of the web server process, integrated with MySQL and/or PostGreSQL databases, web search engine (HT/DIG), OpenLDAP for directory services, complete SNMP client and server tools, NTP client and server (Network Time Protocol) to keep the clocks on your network synchronized to each other (to within a second). All standard, out-of-the-box.

  13. A working firewall that doesn't block Quake or ICQ (unless you want it to). Nobody has yet beaten the functionality of a Linux or FreeBSD firewall. Even the dedicated firewall boxes cost much more yet have less functionality. A Linux firewall can do packet level, protocol-level and proxy-level ("Socks") firewalling AT THE SAME TIME, including redirecting HTTP requests to an internal web proxy cache totally transparently (end-users don't have to do anything to their browsers). Ever wonder how they can tell you are visiting porn sites? Now you know! (Or you can block the porn sites, a feature of the Squid proxy cache is blocking known 'evil' sites). All of this on one box, with the standard $50 Linux or FreeBSD disk, no extra products needed to buy, and a $1,000 machine works fine for a typical office block. Heck, some commercial firewall SOFTWARE costs $2500, or more than twice what the total combined hardware and software costs for the Linux or FreeBSD solution. And once it's going, IT JUST WORKS -- no maintenance required (as long as the hardware keeps going! So do buy the $1,000 box rather than the eMachine, please!).

  14. NFS, NIS, DHCP. Yes, I know NT comes with equivalents (SMB, DHCP, and hmm, what do they call their master domain password service?), but on Linux and FreeBSD you can do something that you can't easily do with Windows workstations: make them all totally identical so that anybody can log into any workstation on the network and be at his own desktop, complete with his own software, his own icons, etc. I can slide out a broken machine, slide in a replacement, and he can log in and be right back at his desktop. I understand that this does work 95% of the time with Windows, except that the registry hacks needed to do this are kind of fragile and tend to break when you try to install software on your workstation...

  15. Reliability in general. It just works. The only downtime that our machines have ever had is due to human error, such as kicking the network card out of the machine on the bottom shelf while re-arranging cables on another shelf. Otherwise they just don't quit.

  16. SGML-Tools -- a common format for writing documentation ranging from simple HOWTO's to complex books (O'Reilly & Associate's books are published using DocBook, the central portion of SGML-Tools) so that they can be published in just about any format imaginable, from plain text to HTML to PostScript.

  17. Free word processors: You can use AbiWord, which is Open Source and totally free, or you can use the personal-use versions of WordPerfect or StarOffice. For the home user this is great. For corporations, of course, they already have a MS Office license.

  18. Free desktop publishing. Okay, so TeX is not the epitomy of moderness. However, it is still the standard for mathematical typesetting. You just can't DO most of what TeX and LaTeX does in any existing "WYSIWYG" desktop publishing package.

  19. The KDE button bar. Classic simplicity -- it sits there ready for you to drag your icons onto it. The closest thing is the Office task bar, but you have to pay lots of money for that (what's the full retail Office up to nowdays, $400? $500?).

  20. KDE in general. The K Desktop Environment team took a close look at Windows 95 and CDE, picked the best features of each, and added in the concept of Internet-transparency which, at the time, was merely a buzzword being thrown around by Microsoft rather than being a reality. The result is a simple, elegant environment which arguably does the Internet transparency better than Windows 98 -- everything is a web page, even the desktop, and hauling an icon from an FTP server onto the desktop is no different from hauling an icon from your CD-ROM onto the desktop. KDE's only weaknesses are due to the underlying Unix (specifically, having to do things like, e.g., mount CD-ROMs before being able to install programs off of them, rather than have the CD-ROM auto-start like under Windows), and as vendors figure out that KDE is a Good Thing, those weaknesses will be swiftly remedied. Note: Several years later, virtually all Linux CDROM's will auto-install when stuck into the CDROM drive under KDE. Was I prescient or no?


Note that everything on this page is Copyright 1997-2003 Eric Lee Green and represents my own opinions and nobody else's. Reproduction without permission strictly prohibited.

Created with PHP 4. Last modified Fri, 06 Dec 2002 10:27:39 -0500.