A couple of weeks ago, I saw a tweet asking: "If Linux is so good, why aren't more people using it?" And it's a fair question! It intuitively rings true until you give it a moment's consideration. Linux is even free, so what's stopping mass adoption, if it's actually better? My response: “If exercis...
And Linux isn't minimal effort. It's an operating system that demands more of you than does the commercial offerings from Microsoft and Apple. Thus, it serves as a dojo for understanding computers better. With a sensei who keeps demanding you figure problems out on your own in order to learn and level up.
...
That's why I'd love to see more developers take another look at Linux. Such that they may develop better proficiency in the basic katas of the internet. Such that they aren't scared to connect a computer to the internet without the cover of a cloud.
I love Linux. I'm so glad I switched both my PC and laptop to OpenSUSE and got rid of dual boot Windows. Using Linux exclusively for months has really opened my eyes to the truth:
It really just depends on what you do, and how you do it.
A formula-1 car is not for normies, but a regular car is. Same principle applies here. My tech illiterate mom has Fedora on her laptop, and she finds it considerably more intuitive to use, than her previous Windows installations
This is fair. But at that point the same could be said of a Chromebook for her needs, which I’d venture is true for most people’s computing needs given entire swaths of the world do everything on a phone or tablet.
The Linux vs Windows debate is peculiar, because it really only applies to users who are more advanced than the average, arguing about problems that only arise when you want to do more demanding things with your machine like development and gaming. Your average user doesn’t care about any of the anti-monopolistic / FOSS reasons to use Linux, which makes the argument for them essentially “you should use this operating system that takes more work to use because it’s better for you for reasons you don’t care about.”
In order for Linux to become more mainstream, it needs to be able to exceed Windows’ performance and ease of use for gaming and productivity - which is challenging since when most users think of productivity apps, they only think of Microsoft products. It’s not enough to be equal in order to compel people to switch from what they’re accustomed to.
One of the first issues I had problems with was figuring out what was wrong with Street Fighter 6 giving ultra low frame rates in multiplayer, but working fine in single player. It needed disabling of split lock protections in the CPU.
A recent update in OpenSUSE made the computer fail to boot half the time and made the image on the right half of the screen garbled. I rolled back to before the update and am using it without updating for a few weeks to see if the GPU driver problem gets ironed out.
I installed VMware Horizon for my job's remote work login and it fucked up my Steam big picture mode and controller detection. I didn't bother trying to figure that out and just uninstalled VMware remote desktop.
I managed to install my printer driver, but manually finding the correct RPM file to install would not be tolerable for normies.
I still can't get my Dualshock 3 controller to pair via Bluetooth despite instructions on the OpenSUSE wiki. I've stopped trying to troubleshoot that and use my 8BitDo controller instead.
I still can't find a horizontal page scrolling PDF app.
Figuring out how to edit fstab to automount my secondary drives is not a process normies would be able to execute.
Plasma recently added monitor brightness controls to software and these seem to have disappeared for me now, and I can't figure out why.
I can't get CopyQ to launch minimised no matter what I do.
My KDE Plasma task bar widgets for monitoring CPU/GPU temp worked till I reinstalled OpenSUSE, and I can't figure out why they've decided to not work on this fresh install. System monitor can see the temperature sensors just fine still. fixed
Flatpak Steam app wouldn't pick up controllers for some reason. Minor issue, but unnecessary jankiness.
My laptop fingerprint reader plainly isn't supported.
People do not tolerate this amount of jankiness. And this doesn't include the discomfort with relearning minor design differences between OS's when switching. Linux is a bit of a battle with relearning and troubleshooting things that would never be problematic on Windows.
Linux is second nature to us IT people, so it's easy to forget that the average person probably only knows basic shell scripting and how to build programs from git repos.
Linux isn't minimal effort. It's an operating system that demands more of you than does the commercial offerings from Microsoft and Apple. Thus, it serves as a dojo for understanding computers better. With a sensei who keeps demanding you figure problems out on your own in order to learn and level up.
Guy says this as if it's a good thing lol. That's the real reason people don't use Linux, nobody making Linux seems to care about user experience for normal people.
Yea I agree. Good UX is a lot of work, and I think FOSS projects rarely prioritize it. Even good documentation is hard to come by. When you write software for your own use case, it's easy to cut UX corners, because you don't need your hand held.
And good UX for a programmer might be completely different from good UX for someone that only knows how to use GUIs. E.g. NixOS has amazing UX for programmers, but the code-illiterate would be completely lost.
I believe that the solution is "progressive disclosure", and it requires a lot of effort. You basically need every interface to have both the "handholding GUI" and the underlying "poweruser config," and there needs to be a seamless transition between the two.
I actually think we could have an amazing Linux distro for both "normies" and powerusers if this type of UX were the primary focus of developers.
What you say describes my experience 10 to 15 years ago, not my experience today. Compare the settings dialog in KDE Plasma to the windows settings dialog for instance. Or should I say myriad of Windows settings dialogues.
"There aren't enough swear-words in the English language, so now I'll have to call you perkeleen vittupää just to express my disgust and frustration with this crap." - Linus Torvalds
I mean coding is difficult enough as it is, I wouldn't choose to use an OS that makes it even harder.
I use Linux because it makes my life easier. It has better support for development. Some of the other stuff is maybe not as easy or polished, but the support for dev tools and the ease of deploying to from local machines to servers that are also running Linux makes up for it.
If I wanted more effort I'd still be using Windows. It would force me to work on cross platform development and deployment. The idea that there's value in making things unnecessarily hard is just weird. I want Linux to be as simple as possible to use, so I can spend that effort on things that actually matter.
I wonder what kind of support for development do you get? Honestly I've only had obstacles when I switched, for example the docker installation was much more complicated on linux than on windows+wsl. Even installing python was problematic because apparently 'upgrading it yourself can brick the system', at least if an older version comes with the OS?
And lastly it's the simple thing that pretty much all tools work on windows natively but on linux you have to find workarounds, which is definitely a problem when it comes to productivity.
So what are the benefits, what does linux have that windows doesn't in this context?
It really comes down to what you're used to. If you use Windows tools then you already know many of the workarounds for Windows and you don't know the tools that haven't been ported there.
For example, you know not to use Python directly, but that you have to install anaconda instead, or whatever the current problems with Python development on Windows are.
The big obvious thing that you can't get away from is that you have to do things differently if you have develop for two different OSs with a view to deploying on Linux.
In particular support for shell scripts is crap on Windows. I could learn powershell or there's workarounds using WSL and a bunch of other stuff that I don't need to care about, but I'd rather not bother.
I don't think it was the point of your post necessarily, but I did want to mention a couple of things that might make the Linux switch a little easier - if not for you, anybody else reading and agreeing.
First, distrobox (https://github.com/89luca89/distrobox) is a nifty frontend for podman/docker that I think makes it a little more usable/accessible without having a PhD in devops. Basically helper scripts that create a series of simple CLI commands that let you launch a new environment, enter the new (or old) environment, do stuff in the environment, exit the environment. Keeps your core system's python separated from your development environment(s). Sacrifices the isolation qualities of containers in favor of usability, so probably ok for dev work on a desktop and not so much for production on a server.
Also, there are GUI applications for point and click management of distrobox - I use BoxBuddy, which is available as a Flatpak on Flathub, so again no interference with the core system provided it can run podman and flatpak.
Second, I know the php dev world figured out ways to abstract some docker complexity away with stuff like ddev (https://github.com/ddev/ddev) and lando (https://github.com/lando/lando). I wonder whether other languages have or will build that dev environment in a box abstraction on Docker/Podman/whatever.
Depends on the programming language. Some are just as easy on Windows as Linux - sometimes easier. C#, Java, Rust, Go, etc. are all perfectly fine on Windows.
Some treat Windows as a weird second class citizen though, so for those I would agree: OCaml, Perl, Python, etc. However you can still use WSL for those and have the benefits of Linux without the downsides of broken hardware, terrible battery life, etc.
That's why I'd love to see more developers take another look at Linux. Such that they may develop better proficiency in the basic katas of the internet. Such that they aren't scared to connect a computer to the internet without the cover of a cloud.
The developers I have come across mostly use Linux if they can, or another OS if they can't (e.g. when developing specifically for Apple or Microsoft platforms). Are there many that haven't even looked at it?
a sensei who keeps demanding you figure problems out on your own in order to learn and level up.
Ain't nobody got time for that. I don't need or want to spend my time debugging my OS for it to do what I want, I already did that and I did not exactly "level up" but I did waste a lot of time.
It’s an operating system that demands more of you than does the commercial offerings from Microsoft and Apple.
Does it?
It's different, but I imagine they're not fundamentally different if you exclude established knowledge/already being used to something.
Normal office use for non-techy people is launching apps, editing documents, and surfing the web. That doesn't work much differently, not fundamentally different, and not fundamentally more difficult.