Transparency vs. Blackbox
Linux is an open system which means that all system parameters are accessible, all events get logged and there are many diagnostic tools available. Windows users sometimes have difficulties with that because they are used to treating programs as blackbox: If something doesn’t work right, you don’t have much choice but to use the sledgehammer method (patch, retry, reboot, reinstall, etc.).
Configurability vs. Plug 'n Play
Linux is designed to allow maximum configuration freedom and flexibility for the user. Windows on the other hand restricts what things users can do to make it easier for them and provide quicker starting successes. Of course, Linux will most likely work right out of the box for you and also provide some automated systems to help you with your daily work. But the primary design concern behind the scenes is to allow maximum flexibility. Marketing concerns (like making a system for the broad masses that you can sell to anyone) come later and are generally imposed on the original Linux core by the distributor (some more than others).
Power vs. Intuitive use
Most Unix (Linux is basically just a variation of Unix) programs are designed for efficient use by an experienced user. And for extensive automation capabilities. Making these tools easy to use for newbies is a secondary concern. Most of them require study of the documention before they can be used. Many don’t have a graphical interface at all and require use of the command line. Simple tasks (like surfing the WWW, writing an e-mail or a letter) do not require use of these tools, of course, but if you want to unlock the full potential of your Linux, you need to familiarise yourself with these tools – at least to some degree.
Orthogonality vs. Integration
One of the reasons for the stability of Linux/Unix is the principle of orthogonality. That means that each tool is meant for one purpose (and one alone). These tools are then put together in a chain to perform whatever job needs to be done. A bit like Lego blocks. Yes, you have to build your toys yourself and can’t play with the starship right out of the box. But on the other hand, you can also build whatever you want. A robot or a moonbase or whatever. Under Windows, most programs do not work well with other programs (market competition, customer retention and all that). Instead, they try to be a jack-of-all-trades (in German it’s called an “egg-laying wool-milk-sow”). While your Outlook Express is mail reader (MUA, mail user agent), mail delivery agent (MDA) and mail transport agent (MTA) in one application, the classical Unix approach is to use one specialised tool for each of these tasks. Each tool can be replaced with a different one, if it doesn’t suit your needs and you gain a lot of flexibility and power. The trade-off is a little more work to set things up in the beginning. You can, naturally, just install Thunderbird and use it for all your e-mail related work. Just like you would under Windows. But a much more flexible and powerful approach would be to use the classical Unix mailhandling.
Real privilege separation vs. Pseudo security
In the past, Windows was a single-user system. The user could automatically do everything and had access to everything. Later, Windows became officially a multi-user system. But the heritage prevailed. Users were given admin privileges right from the start so that they would not be alienated when working with the new Windows. Application programmers did not (and some even today do not) care about privilege separation and write their programs with the implicit expectation that the user will have admin rights. Then you get all kinds of strange problems (a meaningful error message is a rare exception) when you try to run them as restricted user. So you just give up and work as admin all the time, forfeiting the enhanced security that privilege separation provides. With Vista, MS introduced the UAC as an ugly work-around for that problem. You are still admin and the UAC is an additional security layer between you and the most vulnerable parts of the system.
Linux never had lost its multi-user nature. You work as a normal, restricted user. And when you need admin rights for admin tasks, then you just get them (you do not even have to log off). Or you just grant yourself permanent access to that special resource you need. But you have to understand and accept that you do not have all the power right away. This provides additional security and stability and it’s not that complicated. But Windows users who are used to working as admin (most even have the UAC turned off) occasionally have trouble with grasping that concept.
Since we are in Gothic forums, an analogy: Khorinis is surrounded by a town wall. That wall hinders people to freely come and go as they please. The Windows solution: Tear down the wall and allow free access. Of course, this allows the orcs to waltz right into town as well. So there’s the UAC that means that little walls are built around Lord Hagen’s residence and the guard barracks. The rest of the town is left to fend for themselves.
The Linux solution: Use the city gate where a guard checks the people who want to go in (password). If someone needs regular and hassle-free access to the town, he is allowed to stay in town and sleep in Hanna’s hostel.
What do think is the better solution?
Community support vs. Manufacturer support
In order to make hardware usable, you need drivers. Under Windows, the hardware manufacturer usually provides these. Under Linux, most of the time the job is left to the freelance programmers from the community. They perform an admirable job but suffer from lack of resources and manufacturer support. Most companies even refuse to give programming specs to the community programmers and they have to find out how to talk to the hardware through a time-consuming process of reverse-engineering and/or snooping on the Windows drivers. Most hardware is supported but the most recent models and very exotic stuff may not work under Linux. Even if there are drivers, they may not always support all the functionality of the Windows pendant. If you switch to Linux, you may have to accept that not all components on your Laptop or your scanner or printer are fully supported. There are compatibility lists and one can get help from the community but the best approach is to look for Linux support before you purchase your hardware.
Full service vs. Patchwork rug
Windows is basically just the operating system itself. A few small applications come with it (like Paint or WordPad) but they do not get you very far. Everything else, you have to get from somewhere else. Which means that they are also not managed by Windows. Microsoft can update only Microsoft programs. Windows Update will show you updates for Windows itself and for MS Office, if installed. But not much more. All the other tools bring their own updaters. Perhaps you have experienced that once or twice: You turn on your PC after a few days and then you’re drowned in update notifications. Firefox, flash player, Windows Update, Acrobat Reader, Java, your virus scanner and few other all pop up and tell you to install the newest version. It takes half an hour and three reboots until you can finally start working. And all of these update tools take away system resources. But if you disable them, you won’t be notified about updates anymore and are potentially vulnerable to “hackers”.
Most Linux distributions already contain a (vast) collection of software applications that are all controlled by the package management of that distribution. They may not be installed right away (why use up disk space with apps that you may not need?) but they are available in special repositories in the internet and can be downloaded and installed by a GUI or command line tool. And it is easy for software developers to integrate their software into that package management even if the distribution itself does not include it. You will still be notified about updates. But you won’t get a dozen popups, each for one program. Instead, you get one popup telling you that a dozen programs can be updated. The update mechanism of the distribution will then update everything you have installed. At least if it was installed via that package management. If you wish, you can always bypass it and install manually. But then you have to take care of the updates yourself, naturally. It’s hardly necessary, however. If you request a certain application from your package manager and that software requires some other components to work, then the package manager will automatically download and install those, too. And when you uninstall the application and the manager sees that the additional components are not needed anymore, it will offer to remove them as well. And typically, a Linux system only has to be rebooted if there was a new kernel installed.