I think Linux is kinda about choice (as a base building block for your own OS). And distros are out there to make those choices so that I don't have to.
This is precisely the problem with Linux. Everyone wants to work on cool kernel-level stuff or daemon-level stuff; nobody wants to bother with the tedious, unglamorous last-mile work of actually delivering a polished user experience around all of that cool stuff.
Ultimately it's just a question of objectives. Usually software isn't written for its own sake. It's written to achieve a goal, meet a customer need, generate revenue, prove a market, etc. You can achieve those goals without gathering all the requirements, redesigning and re-implementing most of the time. Not in aerospace, or biomedical maybe, where we are willing to pay the outlandish velocity penalties. But most of the things we do aren't that.
Generally, if you want to build a pristine, perfect snowflake, a work of art, then you'll be the only one working on it, on your own time while listening to German electronica, in your house. [1] Nothing wrong with that - I have a few of those projects myself - but I think it's important to remember.
Linux is hoping to adjust the velocity-quality equilibrium a little closer to velocity, and a little further from quality. That's okay too. Linux doesn't have to be everything to everyone. It doesn't have to be flawless to meet the needs of any given person.
Yep. People want to accomplish tasks. They want to do that with workflows they already know, or that are easy to learn. If they can't accomplish the same tasks with Linux, then Linux isn't usable.
The one Linux feature I miss on other OSes isn't even a Linux feature, it's NixOS's declarative configuration. Nothing to do with the Linux kernel or the GNU userspace CLI tools or glibc, just the ability to manage a system and user(s) with a version-controlled configuration.
Why not? Mainly because it isn't finished and has a culture of not explaining anything.
When man pages start with a few practical real-world examples, I'll think about it.
When some of the more experienced Linux devs figure out a way of purging the stub code created by noobs writing "my first Linux app haw haw" and sending these vile critters on a one-way trip to space, I'll think about it.
Linux needs a benevolent dictator, like Steve Jobs, to tell people, "no, your code is shit, your idea is shit, fuck off" instead of a community that indulges every contribution no matter how lame, stupid, confusing and non-functional it is.
When I can be sure that my package manager won't break "ls" (and every other basic command) while doing a routine installation of a user level application (glibc is now toast; reinstall), I'll think about it.
Linux will stop being garbage when there aren't 17 different places to put everything and every dev assumes that every user knows all of them and is in possession of an encyclopedic knowledge of arcana going back to ENIAC.
>> If you try to deliver both at once you have to also deliver a way of switching between the two.
I would argue instead that Linux is about freedom. In other words, rather than expecting my distro to go out of its way to provide multiple choices and a way of switching between those choices, I expect it to not go out of its way to prevent me from switching if I chooose to, even if switching is difficult, and even if it needs to warn me that what I'm about to do is a bad idea.
I don't see how that is unique to Linux. Plenty of people, probably more, have had those same experiences with other operating systems. I can see why someone would like, or even prefer, to tinker with Linux and it would of course be a loss if it didn't exist, but that doesn't mean that Linux developers are the only ones tinkering. So it does seem like that it's primarily an ideological difference in what tinkering means.
Unfortunately the Linux community largely seem to attract and retain people who mainly care about their own freedom to tinker. Every time someone pushes out something broken, users lose thousands of tinkering man hours on trying to make those things work for themselves. As someone who likes to tinker, time is my most valuable commodity and Linux doesn't respect my time.
Sure. But unless you're deploying custom Linux builds, what does that get you, exactly? I have a number of packages on my computer I don't use, and I am not being hindered by their existence. I instead use my brain cycles for creating new software & systems, not retooling the existing one to no end.
edit: Please understand that I'm not saying a fully customizable Linux doesn't have its place. It absolutely does. But when you're trying to crank stuff out, having to stop and tweak/fix your system simply gets in the way. Well, it gets in my way, at least. :-)
I really respect this take -- and also kind of don't like it at the same time?
Basically, I don't do "mission critical" Linux things. I teach IT and I hack around on my own boxes with scripts and stuff because it's fun and useful to me. I'm always on the lookout for the hooks and such that can get more and different people into Linux.
reply