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":
- 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.
-
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.
- 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.
- 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.
- 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!
- 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!
- 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).
- 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.
- 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?
- 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.
-
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).
- 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.
- 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!).
- 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...
-
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.
- 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.
- 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.
- 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.
- 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?).
- 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?
|