Before I tried linux, I had some ideas about what it might be like, what the main advantages and disadvantages would be, and what basically I was letting myself in for. Some of this was right, but a lot of it, predictably, was way off. Here is a short list of some of the things I expected and didn't get, or found unexpectedly.
I knew that there was a lot of software around for Windows, but was under the impression that the amount for linux would be much, much smaller. I expected some frustration, that I would want some software but would be unable to run it because there would be no linux version. Of course I knew about the famous cross-platform successes, like Firefox and Open Office, but I thought my software choices would be very much reduced. I also had the fear that even if there was a linux version, there might not be a version for my particular distribution, reducing choice further.
All of this, thankfully, was mistaken, and I was fairly staggered by the range and variety of completely Free software available. Some of it is even only available for linux, with no corresponding windows version, for example the great digikam - this definitely came as a surprise. Clearly not every Windows program has a direct linux counterpart, but a great number do and some even have several. It's also hard to find any which aren't packaged cleanly in all the major distribution formats, although it may not be the latest version.
Related to the previous point, I had visions of frustrating and painful compilation problems trying to install software from giant and interconnected tarballs. I expected it to be a lot harder than the Windows method of search engine, website, download exe and install it.
How wrong I was! The Mandriva method is light years ahead. Firstly almost every program you could want is already included on the CDs or DVD(s) with the distribution. You don't even have to search around for the programs, they're already there. Secondly they're all tested to work together, so version mismatches and so on should already be taken care of. And most impressively of all, the online repositories have a host of other programs, all accessible from the local application installer once the repositories are added to the list, all with the required dependencies handled for you, all packaged for your distribution and all conveniently downloaded from the appropriate place and installed without a hitch. Just search your local index, read the descriptions, select the bits you want, ok the dependencies and go. It's amazing.
If you go beyond the rpm world, there are other programs which haven't been packaged, and then you do get into tarball territory. And yes, the compilation isn't always straightforward. But the overwhelming majority of cases are handled so smoothly you'll wonder why you ever downloaded some unknown executable from a random website and given it root privileges before.
I expected the linux system to be rock solid and not suffer from the lockups, seizures and forced reboots of other platforms. I had heard tales of gargantuan uptimes and somehow assumed that with so many eyes on the program code, these things just didn't break. Or at least didn't bring other parts of the system down with them when they did break.
An unfair expectation really. There's the linux kernel, there's the window manager sitting on top of that, there are the desktop environment and other distribution components sitting on that, and then there are the applications in there too - something somewhere is going to crash. You can expect massive uptimes on servers running a minimal set of components and doing routine tasks, but if you're running multiple applications as a regular workstation user then think again. The sound system can be especially problematic, it seems. Even when it's running smoothly there can still be occasional errors, applications crashing and KDE losing components. The intermittent problems are the most puzzling, like the "Press 'I' for interactive startup" gag and the occasional missing battery indicator.
I found the Windows use of three-finger key combinations (like Ctrl-Alt-delete) ridiculous and expected any sensible desktop system to scorn such complicated contortions. With no backwards compatibility to think of, they had the chance to think everything through how it should be done and not just how it always has been done.
Not so. In fact it's even worse. Just check out the KDE shortcuts to find all sorts of monstrous 3-finger incantations, like having to learn the secret combo moves in a beat-'em-up game. Even worse is that many of them (like Ctrl-Alt-Backspace) do something quite drastic without asking you for confirmation. Others (like Ctrl-Alt-F1) look like they've done something drastic but actually haven't, but they don't tell you how to undo.
With Windows problems, there is often someone nearby who also has Windows and might be able to help you out if you get stuck. Embarking on linux means having something quite different from the majority, so I expected finding help with my (perhaps even distribution-specific) problems to be rather difficult.
Firstly the number of linux users seems to be growing, so the chances of finding someone to help are increasing. Secondly there are a number of special "Linux user groups" (LUGs) which will almost certainly be able to help you out if you find the local one. But most importantly there is a great number of online forums and websites, many of them specialising in a particular distribution, with countless volunteers only too eager to help with your problems and answer your questions. A good example is the mandrivausers.org with a great community of friendly users of all levels of experience, and interesting and entertaining posts from all over the world on every conceivable topic.
I liked the idea of the open source model and believed that one of the (many) advantages of this approach was that malware could be prevented. If the source code is made available, then noone can build in a virus or spyware without it being spotted, right?
Well this seems to work in practice but it's not impossible for such a thing to happen. Firstly, most people don't care about the source code, the ordinary user will never read it and extremely rarely even download it. Secondly, those who do read the source code, can't easily guarantee that it's the same source code used to generate the binaries. A malicious developer could easily distribute malicious binaries and benign source code, if they so wished. I assume it would be difficult to get such a malicious binary into one of the major distributions, but it wouldn't be so much of a stretch to imagine that happening with rpms or debs downloaded from a third-party website. It's just based on trust.
Obviously I trust the official distribution channels more than other sources, and the signature mechanism in the repositories does help further to ensure authenticity. Signatures are not always provided though, making it possible (although still extremely unlikely) that malicious code could be introduced this way.
OK, I knew that there was more than one distribution of linux. But I still thought that they were variations on a common theme, adding the odd tweak or feature here and there. Maybe you get business-level support with that one or build-it-yourself mayhem with that one, but I still thought that linux is linux.
I clearly didn't appreciate just how many distributions there are, and how rapidly that number is still growing. Not only that, there are the multitude of desktop managers (like KDE, Gnome, Fluxbox, E, ...) which have an overwhelming effect on the appearance and behaviour of the system. I also didn't realise the plethora of software out there, often providing duplicate functionality, so that one system can really look nothing like another one, even though they've both got the same linux running underneath.
I kind of imagined that everyone in the linux world would be on the same wavelength, working together on a common project with common goals. The whole idea of shared code, shared resources and cooperative development gives the idyllic idea of a band of happy community members, volunteering to help each other out. And of course a lot of sub-communities are like that (mandrivausers.org being one good example). But whenever you get a large community with all this freedom, it seems predestined to fragment into bigger arguing.
It's a long time since the emacs/vi wars, but that's one example of a bitter rivalry that's completely pointless but apparently inevitable. Of course not everyone cared about the difference back then and many just got on with it, but it means a newcomer has to make a choice, do you want to join this camp or that camp?
Later, there came the distribution wars. Do you want Red Hat or Suse or Debian? Nowadays there are literally hundreds of distributions, and you still get petty snide remarks about how much better one is than the other. Also the desktop wars, with KDE vs Gnome vs Xfce vs Lxde and so on. Of course the choice is great but then you get conflicts like wanting to use digikam on gnome, or gftp under KDE, which makes things more complicated for everyone. Unavoidable given the freedom to create more options, but still.
And what about licensing? How did it become so complicated, with GPL v2, GPL v3, LGPL, BSD, Apache, Mozilla, CC, and a million and one other variants of incompatible licenses?
But the real killer, the real dichotomy which slaps you in the face as being just ridiculously silly, is the pontification about whether the software should be "free" or should it be "open source"? What? How can you expend so much energy arguing about something so ridiculous? Stop trying to split the community and make everybody look ridiculous, and just get on with the real stuff.
It seems that all this fragmentation just makes it harder to draw more people in to the community and puts people off joining. Will there be a more consolidated picture of linux in the future or is it inevitable that it will always fragment into disparate, fragmented variants which spend too much time arguing with each other?