I'm your "cool people" that use Windows. Your target is me: the switched-on techy type. I have decades of experience across a dozen operating systems, a dozen programming languages, someone who always gets the "pro" or "advanced" version of everything. I use Firefox despite its glaring flaws. I use AdBlock because I care about privacy. I get my news from YCombinator.
I'm your guy. But no, I will not use Linux.
I will tell you why.
Unfortunately, you won't like it because I'm an outsider, and it'll feel like a personal attack no matter how I phrase it.
( The only time Linux people listen to criticism like this, is the few times it comes from insiders. ESR's rant titled "The Luxury of Ignorance: An Open-Source Horror Story" nearly perfectly highlights the attitude and the issues that keep me away from Linux, so you can just read that if your prefer: http://www.catb.org/esr/writings/cups-horror.html )
Every time I have used Linux, it feels like using something written by a visitor from a parallel Earth, someone who brought with them an operating system from a place that never had a Microsoft or Windows.
Maybe Linus Torvalds really is from another plane, a different dimension, stuck here in our world? It certainly feels like it to me. It's a thousand little things where if there's some option or a choice, it's virtually guaranteed that Linux will do the opposite of what Windows does.
Things like: Does a click get registered on mouse down or mouse up? Is the task bar on the bottom or some other side? Where are the minimise and close buttons? Etc...
Now, I get that Linux is copying POSIX and UNIX and many other "standards" that are older than Microsoft the company, let alone Windows. This explains why even though for the last two decades 90% of the entire planet has gotten used to the back-slash (C:\foo\bar) as the path separator, but Linux uses the forward-slash (/mnt/foo/).
That's probably the one excuse I've seen that's legitimately too difficult to change, where there is a real reason that nothing can be done.
Yet...
It feels purposefully contrary, doesn't it? Coming from Windows, like the vast majority of the planet, it's the first slap in the face telling you in no uncertain terms that you and the rest of the majority can go get fucked, that it is YOU that must adapt to Linux, not Linux to you.
This is the exact same thing as the United States, with a mere 4.23% of the global population forcing inches and the m/d/y date format down the throats of the other 95.77%.
This isn't just some superficial thing, like which character is the path separator. It's a thousand, thousand things that should have been fixed decades ago.
But no, Linux people are obstinately conservative, clinging to 50+ year old "standards" that 90-95% of the rest of the abandoned long ago or never heard of. Most of those standards boil down to: "Whatever Berkeley happened to do in the 1970s in their computer labs is the One True Way, and can never be changed."
This is why it cracks me up that whenever I talk to open-source developers, the type that carefully avoid all-things-Microsoft like the plague: they actually use Apple Macs to write code.
Because Steve Jobs, like me, had no tolerance for conservative, backwards, contrary bullshit. He wanted a usable operating system that didn't waste time. He didn't want something suitable only to a university lab setting, he wanted an operating system for consumers. He wanted an operating system that just worked and didn't require the user to read a textbook and monkey around with text-based config files just to print.
Every few years I download a Linux ISO from some random distro and give it a good go, just to see if it has grown up yet.
One of my favourite acid tests is this one: Can it join an Active Directory domain?
This is something 99% of corporate environments have.
Linux people will say: "Yes! It can! There's Kerberos support!"
That's like saying that a pile of unshielded copper cable can be used power a computer. Technically true. Not what I want. I want a plug that I can plug in.
In Linux, "joining a domain" means some random combination of:
Providing dozens of parameters manually that Windows does not ask for and does not provide.
Hard-coding IP addresses instead of using DNS names.
Running command-line tools on the Windows Domain Controller to export "kerbtab" files.
Monkeying about with PAM config files to actually make the authentication show up.
Having to do hideous things to the system to actually support ACLs and more than one group membership. You know... more than one. MORE THAN ONE! Crazy, crazy stuff like that.
Linux fanboys will rant that this is normal, that this is expected, that Windows is somehow "hiding things from the user". Just seconds ago I searched for "kerbtab" and this is one of the first things that came up: https://news.ycombinator.com/item?id=22338327
The end result is this: Every time one of two redundant domain controllers on a network has a hiccup, or is simply down for maintenance, Windows and Mac clients will smoothly truck along like nothing happened.
Linux clients will lose their shit. They will take minutes to authenticate, or simply time out and lock out the users.
So who cares, you ask? Why is Active Directory support important?
Because when I looked into it more deeply, I found that the core of the issue was that Linux DNS client is hot garbage. Windows and Macs can fail over to the secondary DNS server is milliseconds and transparently maintain the ability to look up the needed SRV records for locating the LDAP endpoints. ( https://petri.com/active_directory_srv_records )
Linux... can't. That's why it uses IP addresses for the Kerberos configuration parameters.
Seriously.
Because some lab in Berkely or MIT or wherever "did it that way" back in 1985 or some shit.
I'm not kidding. I looked it up. I read through the decades of rants where network engineers where begging the Linux maintainers to see reason and implement DNS server failover properly. Where they begged them to support TTLs and caching properly.
The arguments were absolute bonkers. Crazy town stuff. People just foaming at the mouth as they went on and on about how it's somehow critical for preserving the legacy of POSIX to not fail over quickly.
Apple Macs fail over instantly. Google's Android fails over instantly. Windows fails over instantly.
Linux... has to be contrary. It has to use the primary DNS and sit there patiently waiting for the timeout for every. Single. Request.
This breaks more than just Active Directory. Web browsing in this state is virtually impossible. It's just that it still kinda-sorta works, and people just shrug it off. But with Active Directory, it's a show-stopper. Total disaster. You can't even log on!
So this is the point where I sigh, delete the virtual machine, and go back to Windows, which "just works" and lets me get my job done.
PS: https://lkml.org/lkml/2000/9/6/65