This is a rant. But I'm so angry and frustrated right now that you're just going to have to live with the rant. And, for you Linux people, you who know it all and look down upon the people who don't spend day and night breathing in the insane arcana of all the little fiddly bits that make up modern distros, I have this to say: I don't have your kind of time.
I've had it. I've had it with all the patched together pieces and parts that all have to be just the right versions, with just the right dependencies, compiled in just the right way, during just the right phase of the moon, with just the right number of people tilting left at just the right time.
I've had it with all the different package managers. With some code distributed with one package manager and other code distributed with other package managers. With modules that can be downloaded on Ubuntu just by typing the sequence in the anemic how-to, but won't work at all on CentOS or Fedora, because the repositories weren't specified in just, exactly, EXACTLY, the right frickin' order on the third Wednesday of the month.
I've had it with all the different shells and UIs. With builds and distros that won't even launch into a UI until you've established a solid SSH connection, downloaded all the parts, recompiled the package manager, and then -- while the network connection happens almost like magic -- still need to completely set up a remote monitor screen by tweaking yet. Another. Frak-lapping. Ini. File.
I've had it with the fact that this stuff doesn't work reliably. Oh, sure, if you work with Linux every hour of every day, if this is all you do, and all you love, if you've never had a date since you grew that one facial hair, if you've never had any other responsibility in your entire life, then you know every bit of every undocumented piece of folklore. You know which forums and which forum posters have the very long and bizarre command line that only. That. One. Guy. Knows.
And you know that if you type that command line in on, say, Distro version 4.3, it'll work, but it'll break miserably on version 4.3a, because THAT version requires a completely different entire program, packaged with a completely different package manager, and THAT command line sequence can be gotten by getting on just the right IRC channel, at just the right time of night, and talking just the right way, to that one incredibly self-absorbed luser who happens to know that you need to put the undocumented -lM in front of the fourth parameter.
And woe be it to the unfortunate fool who gets the capitalization wrong, because putting an -Lm in front of the fourth parameter does a completely different, and even further undocumented, and possibly dangerous-to-the-entire planet sort of thing, because, well, "you shoulda known!".
Why have I had it, you ask?
I've had it because after spending months jumping through all those hoops, and more, feeling like I had to pass through all four levels of Ninja Warrior and climb to the top of Mount Midoriyama, just to be allowed to launch frickin' VNC in a GUI or load the backup program I use on all the other machines on my network... after all that, the stupid, horrible, nasty, back-stabbing, disloyal, hodge-podge, disorganized, unsupervised, chaotic craptasm that's called Linux... after I got the whole thing working, it crashed.
Oh, and it didn't crash easy. See, I was done. I was getting ready to deploy my server. I just wanted to do a last-minute update because I'm a good frickin' doobie and I do my updates. So when Gnome said there were updates to apply, I said okay.
Can you imagine my rank naivety here? I actually said Okay to a Linux update. I know I should have known better. I know I should have, instead, formatted another hard drive, dd'd my furry little pile of files over, downloaded the source tarball, compiled everything all over again, prayed to Linus, turned my back to Redmond, and built my entire operating system up from scratch, just to install some security updates.
But I didn't. I figured that after all these years, Linux was finally robust enough to not rip me a new one because I just wanted to run a server and keep it up to date. Silly me! Silly, silly me!
So I ran the update process. And it died. Abnormal exception.
And there went all my work and all my time. Down the drain.
Now, it won't boot.
Worse, the box is co-located at my ISP, so I had to make a begging plea, requesting they please rebuild my drives and please reinstall my OS. I'm fortunate it was still a box in staging, that I wasn't running live systems on it, or I'd be completely and totally screwed, rather than just pissed off to the point of spitting.
Now, despite what I'm sure you commenters will say, I'm no tech babe in the woods. I've been a UNIX product manager, I've written kernel code, and I've taught programming at the college level. But the problem with today's modern Linux is that it's more than just the kernel. It's an amalgamation of thousands of crufty pieces, all stapled together, most of which work for only one specific combination of moving parts. Mismatch anything, and the entire tower of cards falls to pieces.
Sure, Linux machines can make great servers. But they require a dedicated group of Linux groupies who know all the folklore, all the secret handshakes, and where all the bodies are buried.
Me, I'm just a busy dude with other stuff to do. I just need to feed some Web pages and run my programs. I don't have the time to do the dance of blood it takes to truly be one with the Linux culture.
I've had it. Oh, sure, I'll still run some turnkey appliances based on Linux in VMs that I can backup, snapshot, and restore in a heartbeat, but for the core engine that drives my servers, I am -- from now on -- all Windows, all the time.
I just can't afford to waste any more time with Linux. Not when -- by design -- everything is held together with toothpicks, duct tape, and bailing wire.
No way. You couldn't pay me to run Linux on my raw iron.
Update after I've calmed down
I talked with my ISP today. They told me that when they came in this morning, the server monitor was spewing an incredible number of error messages, and -- in their words -- it was erroring worse than they've ever seen.
Here's where it gets crazy, though. I asked if they used this distro (CentOS, version 5.6) anywhere else in their organization.
"Yes," I was told. "On lots of machines. But we don't ever run updates. Once it's installed, we leave it alone."
That's how you survive with a Linux distro apparently. Once it's installed and works, never, ever update it.
If that is, in fact, how other ISPs are managing their Linux-based machines, that means they're not updating their systems as new security exploits become known. In order to prevent their machines from becoming radioactive piles of rubble because a simple update was initiated, they're leaving their machines (and their customers) open to all sorts of malicious attacks.
In my professional (and slightly more lucid opinion), Linux is a fine operating system. It is a robust operating system. It is a flexible operating system. Just not all three. It can't be fine, flexible, and robust.
Try that, and the Earth will open up and swallow you whole.
See also: Why Ubuntu 11.10 fills me with rage
Oh, and one last point. Don't go telling me I don't know what I'm doing, because that proves my case against Linux. I know quite well what I'm doing, but not to the level that is apparently required to keep a simple LAMP machine running.
For all of us who have lives, there's Windows.
Go. Comment away. At this point, I just don't care.