The Tyranny Of Freedom
Under Windows, drivers are loaded up for all your hardware when you start the system, and any driver for Windows NT 5.0 will usually work on NT 5.1 or NT 5.2. Linux, on the other hand, requires specific drivers compiled for your exact version of the Linux kernel - of which there are about a hundred in circulation. Most drivers are provided as source code along with the kernel - such that when you compile an up-to-date kernel, you compile up- to-date drivers as well. Companies such as NVIDIA prefer to keep their drivers a secret, so their Linux driver comes in two parts; a tiny piece of source which can be compiled to work with your kernel, which links to the big, secret binary (already compiled) part of the driver, the second piece of the puzzle. It's not as hard to install as it sounds, but it breaks if you update your kernel.Yes, it sounds nasty. And it is. It has a learning curve which Windows never had. However, once you have a working system in place (and the system which came bundled with your distro might be fine already), then you need never touch it again. If you add extra hardware, and that hardware is supported by your kernel or the drivers compiled with it, then it'll just work.
How about applications, are those also hard to install? Well, actually, no, they're not.
The different distros use systems called packages to distribute programs - these are compressed files, like .zip, but tend to contain more information. The popular systems are .RPM for Red Hat Linux, and .DEB for Debian Linux. If you receive a program "program.deb" or "program.rpm", then you can install it by calling the install command - "rpm -i program.rpm" or "dpkg -i program.deb". That's not the clever part - the clever part is dependency management, and keeping your system up to date. If you wanted to install OpenOffice.org under a system using .DEB files, then you'd run "apt-get install openoffice.org" - a single command which would check to see all the different components needed by the package "openoffice.org", such as help files, are present, before downloading everything else that you need, before finally installing the latest version for you. Want to update every single program on your system to the latest version? "apt-get update" gets a list of all the latest versions available, and "apt-get upgrade" updates everything on your system to the very latest version. Certainly easier than patching a hundred programs separately under Windows!
Not every application comes as as an easy peasy package however - sometimes programs must be installed by hand. This usually manifests itself in one of two form; some programs come as source code (and can be compiled and installed by calling "make" then "make install" from the program folder), others come simply as installers, much like Windows - programs such as Unreal Tournament 2004 or the Macromedia Flash plugin for Mozilla Firefox. Programs installed via source or supplied installer do not benefit from package updates, unfortunately.
So far, so good. Except for the "new & scary" part, that is. So, time for a proof of concept, with no downside.