My history with operating systems.
I'm a long time linux user, who recently saw the light and switched to Debian. Here's a bit of my history with operating systems.
Sinclair BASIC (1986--1991)
I used this on my trusty 128kb ZX Spectrum+. Given that I was 7 at this time, I mainly used this to play 48k (sometimes 128k) games. I would patiently wait 15 minutes for each of these games to load from my tape drive...
ACORN MOS (1991--1993)
Once I retired my trusty ZX Specturm, I spent a few years without owning a computer. My high-school however had FOUR BBC Micro computers, which we were allowed to use once we reached 9th grade. I wrote a typing tutor program on this, riddled with spelling errors.
MS DOS (1993--1996)
When we reached 11th grade, we had FOUR 8088 PC's which were available to us. None of the computers had a network connection, or hard disk. Each of us carried our trustable 5 1/4" MS-DOS floppy, and were required to write our high school projects in GW Basic. I occasionally got my hands on a 286, and played Solitare on Windows 3.1.
Windows 95/97 (1996--1999)
Once I went to college, I got a 386 (33Mhz, 2MB RAM) for myself. I still didn't have regular internet access, and didn't even know what Linux was. I'd mainly use my computer to play games. I think my favourite games was "The Secret of Monkey Island", it's sequel, and Full Throttle. I also enjoyed playing Prince, Prince II, Mortal Kombat 4. Though I would spend most of my time running "Speccy", a ZX Spectrum emulator, and playing all my old favourite Spectrum games on it.
I got my hands on the DOS based "Turbo C Compiler" and wrote a C program to play Othello. However I quickly lost interest in C programming, and learnt assembly in order to write a "proof of concept" virus, that would not be detected by the current virus scanners. (Don't worry, I never circulated this virus).
I'd also become extremely proficient in re-installing Windows after a crash. On our college computers, I'd sometimes do this two or three times a day. One of my friends did this on a system that was in use during a live event.
Redhat / Fedora (1999--2005)
I sold my old Windows computer, and moved to the US for grad school. The department had a number of computers with Redhat on it (they were later upgraded to Fedore Core computers). At this time I was tired of the blue screen of death, and a clunky GUI which I never really cared for anyway. So when I saw a vanilla Linux console login on the department computers, I was quite eager to try it out.
After a little RTFM'ing, I really really liked Linux and would only use Windows very rarely. Sometime in 2003, I went to two talks at the university which completely changed my computing habits: The first talk was by Richard Stallman. He was quite amusing and gave a very nice talk. After listening to it, I followed his advice, swore to never use Windows again. The second talk, by Steven Wolfram, had the complete opposite effect on me. After Wolfram's talk I swore to never participate in any project affiliated with Wolfram, and completely stopped using Mathematica!
Sometime in 2004, I scrounged up spare parts from the department and assembled an AMD K6 based machine (500Mhz, 256MB). I immediately put Gentoo on it.
What I really liked about Gentoo was the configurablity, and the interface. I could configure most everything by editing a beautifully syntax highlighted file in /etc. I doubted I would get any real speed boost from Gentoo (especially since most of the time my box was compiling updates), but I wanted the tweakability, and to learn the inner workings of Linux.
While I enjoyed my first couple of years with Gentoo, my free time was becoming more and more scarce. I eventually switched from my AMD K6 desktop to a 1.6Ghz Intel Pentium M laptop, and I my machine spent 3 days initially installing the OS.
In 2007, I decided to buy a Tablet PC (the HP 2710p). This has a Intel Core 2 U7600 (1.2Ghz) processor, and when I bought it required the very latest and gratest kernel and Xorg to get most of the hardware (esp. wireless) working. This is when I was quite thankful to have Gentoo. Since on Gentoo I would use gentoo-sources, and compile my kernel anyway, it was quite easy to switch to the upstream vanilla kernel sources and put the latest greatest GIT sources on my box (2.6.24/5 at that time).
After reading countless forum posts, and writing a patch for the Wacom drivers, and pulling a few GIT patches for the X server, I finally got everything on my precious Tablet PC working in Gentoo, and was quite happy with it for a few months.
Then came the downfall of Gentoo. I never had the time, to run regular updates. I could of course do the compilation at night. However each update in Gentoo meant also runing dispatch-conf, and editing the new config files by hand. This usually involved a fair amount of RTFM too. Consequently I would run updates only once every 4--6 months.
Now updating every 6 months in Debian is probably not a problem. But in Gentoo, updating every 4--6 months meant your compile time itself was at least a day or two. Further, such large updates, compilation was expected to fail in places (and certainly did), at which point one would have to RTFM, look up forum posts and beg for help on IRC to get past these issues. To make things worse, after runing a day of updates, Gentoo would update a critical library used by numerous packages, and you would have to spend another hour or two running revdep-rebuild to recompile those packages. But all this is only the easy first half of the battle! After your updates are compiled, you have to RTFM and dispatch-conf for all the config files.
At this point I decided to stop updating my laptop except for security advisorys. I also bought a server at home, and thought I should perhaps consider a different distro for my server. I considered Slackware, Ubuntu and Debian and finally decided to go with Debian.
I initially installed Debian on my (headless) server at home. It took me a little time to get the installation going -- I didn't have a CD drive, and the online docs weren't too clear on how I should get started from my USB drive. But when I got started, the installation was a breeze! I was up and running in an hour or so. It took a little bit longer to get my hardened firewall up, make it aditionally act as my home router, and get it to do Time Machine backups for my wifes computer. But I was a lot happier with Debian that I was with Gentoo.
Finally, I reformated my tablet's hard disk and switched even my tablet from Gentoo (32bit) to Debian (64bit), and it was quite easy to get all my hardware working with todays drivers. Here are the notable differences I've seen so far,
apt is infinitely faster than portage at calculating dependencies. After a new sync in Gentoo, to get portage to show me what upgrades were possible would take a few minutes! Apt however seems to instantly know what packages are upgradable, and what's unnecessary.
dpkg-reconfigure is a god send. I don't know what the analogue of that in Gentoo is. Short of installing a virtual machine with Debian on it, you can't get the analogue of dpkg-reconfigure on Gentoo!
- Gentoo's init scripts do runtime dependency checking. This means, when you bring down the network, Gentoo automatically brings down VPN, ssh, openafs, etc. While sometimes that's a good thing (e.g. in case of openntp), in the other cases (openvpn, openssh, openafs) I had to manually edit the init scripts to avoid this behaviour. Each of these services stay perfectly dormant when the network is unavailable, and come right back up when you restart your network (even with a new IP address). The other con of this elaborate runtime dependency checking is that your boot becomes a lot slower than Debian's.
The configuration, and flexibility of emerge looks better than that of apt-get. I never once even had the need for a GUI when using emerge. But I've had to use synaptic more than once in Debian. For instance, I wanted to mark a bunch of build dependencies as automatically installed, and I couldn't do this by editing some file in Vim. I had to use dselect (who's interface is terrible), aptitude, or synaptic.
USE=kerberos from Gentoo was absolutely wonderful (with no analogue on Debian). It took me a bit to get this worked out on Debian: For instance, mutt would happily authenticate via Kerberos, and read my IMAP mailboxes. However it would refuse to Kerberos authenticate when sending mail! It took me a while to realise that I had to (manually) install libsasl2-modules-gssapi-mit to get SMTP Kerberos authentication.
I preferred syslog-ng (Gentoo default) to rsyslog (Debian default). Mainly because I found it easier to ignore some particular type of message that's thrasing your log file with syslog-ng. But that's an easy fix in Debian -- aptitude install syslog-ng, and you're all set.
All in all, I'm very happy with Debian, and it looks like this is a permanent switch. Kudos to the wonderful folks at Debian.