5 ms·
I love Linux based operating systems and I've used them pretty much exclusively for at least a decade now, and I agree with a lot of your post, but >By cutting
by grawprog 6y ago
I love Linux based operating systems and I've used them pretty much exclusively for at least a decade now, and I agree with a lot of your post, but
>By cutting away abstraction,
I don't think I agree with this take. You haven't cut away abstraction, you've changed to a different kind of abstraction. Linux's 'everything is a file' abstraction is just that, an abstraction.
>Linux is arranged masterfully, and makes the Windows filesystem look like a joke in comparison
It's arranged more simply and straightforward, masterfully though, I dunno...
Every flavour of Linux uses a different layout for its root directories, stores configs in different places and generally is not consistent from distro to distro.
User configs are also scattered in random places at times. They could be in .config they could be in .local they could be in .$APP_NAME they could be in the app's directory, they could be in /usr/ somewhere. Maybe in a couple different places at once. Who knows? It's a mystery until you track it down.
Dependencies and libraries are a huge pain to deal with, especially when you start mixing and matching distro provided libraries with custom built ones.
I'm not trying to disagree with your post or anything. I love the way Linux lets you have control over your computer and doesn't try to stop you. But, it's definitely got some issues. I've only touched on a few related to your comment itself.
- mikepurvis 6y agoThere's also a lot of sub-ecosystem issues which are more prominent on Linux, like the long-standing surprise that NPM doesn't have a global rc file in /etc: https://github.com/npm/npm/issues/533 https://github.com/npm/npm/issues/533 The argument from the maintainer is reasonable that distros can just patch it, but realistically, everyone wants a newer version of things than what their distros ship—a similar tug-of-war ends up happening in the Python world, where distros like Ubuntu and Debian ship patched versions of pip/setuptools, and then users are encouraged to self-upgrade those tools to the upstream versions. Anyway, this kind of thing isn't necessarily anyone's fault, but it is just a pretty different experience from Mac or Windows where you tend to have things be more self contained, like "here's where my Python installation lives because it's the path I put in the box when I ran setup.exe."
- smoldesu 6y agoNode is definitely a bit of a mess, it's misuse of the Linux system doesn't really come as a surprise.
- em-bee 6y agoi strongly disagree with this: Every flavour of Linux uses a different layout for its root directories, stores configs in different places and generally is not consistent from distro to distro. there are differences, but it's 90% the same in the major distributions. and while you do have a point about user configs, it is getting better. .config and .local are getting used more and more and are an improvement over every app dropping stuff in $HOME.
- abnercoimbre 6y ago> and while you do have a point about user configs, it is getting better Are people finally following the XDG standard? [0] [0] https://wiki.archlinux.org/index.php/XDG_Base_Directory https://wiki.archlinux.org/index.php/XDG_Base_Directory
- em-bee 6y agoi have no hard data, but my impression is that more and more apps are
- grawprog 6y ago>there are differences, but it's 90% the same in the major distributions. Yes and that 10% can cause some unexpected, sometimes hard to fix problems. A poorly written build script or installer that expects a specific distro's directory layout can cause some problems. Especially if it's a large convoluted build system that hard codes the directories in multiple places. I've actually had to deal with this, it sucks. That was as an end user trying to use an app, not as a developer. You run into this a lot trying to build small libraries and stuff. There's unfortunately a lot of poor programming habits out there. Directories inevitably sometimes get hardcoded and this causes problems because of the inconsistencies between distros. >and while you do have a point about user configs, it is getting better. .config and .local are getting used more and more And yet there's hundreds of apps that will never be updated or changed to conform to standards. >are an improvement over every app dropping stuff in $HOME. Tell that to snap. It insists its folder must sit nicely in my home folder and nowhere else.
- yarcob 6y agoMy early web dev experience was mostly just figuring out where the hell config and log files for apache, php and mysql were. If the docs told you the default location of the config file, you could be sure that on your distro they are somewhere completely different.
- grawprog 6y ago>My early web dev experience was mostly just figuring out where the hell config and log files for apache, php and mysql were Yeah but once you track it all down you feel like a developer superstar genius... Then you confidently sit down and proceed to repeat the process on another distro and immediately feel like a complete noob again as nothing is where it should be and you realize, you mastered nothing.
- lelanthran 6y ago> It's arranged more simply and straightforward, masterfully though, I dunno... It's easy to make "complicated". It's very hard to make "simple and straightforward". Whether that's an indication of mastery is not a closed question.
- CharlesW 6y ago> Every flavour of Linux uses a different layout for its root directories, stores configs in different places and generally is not consistent from distro to distro. As a very casual Linux user (macOS is my daily driver), are there any efforts to solve these "death by 1,000 cuts" arbitrary (I assume) differences?
- grawprog 6y agoNot really no. The differences between distros are essentially rooted in philosophical beliefs defended by near religious zealotry. Entire identies are defined around the differences between distros. A bit of an exaggeration, but well...pretty much that.
- smoldesu 6y agoThese differences mostly come down to package manager variations, which should be one of the main considerations when picking out a distro in the first place. My personal advice is to use Arch/Manjaro with pacman, and avoid all snaps/flatpaks. The AUR is designed for people to integrate these apps like Spotify and Bitwig into the proper locations, instead of snaps and flatpaks making their own folders and such.
- drran 6y agoSee File System Hierarchy Standard[0], or `man hier`. [0]: https://refspecs.linuxfoundation.org/fhs.shtml https://refspecs.linuxfoundation.org/fhs.shtml
- toomanyducks 6y agoRe: abstractions, I think what seperates Window/MacOS abstractions from Linux/UNIX abstractions is obfuscation. The aggressively closed-source nature means that *nix abstractions, to a reasonable degree, anyway, reflect the underlying structure in a way that closed source abstractions can't. Of course the file abstraction is an abstraction is an abstraction, but it's also implemented transparently as a concept in the kernel --- Whereas Windows manipulates their interface so that the interface _is_ the implementation, as far as the user can see and as far the user should care. At least, this is my experience, and it fits well with what I'd expect from the operating systems' respective development models.
- II2II 6y ago> You haven't cut away abstraction, you've changed to a different kind of abstraction. Yes, Linux depends upon abstractions. Everything in computing is an abstraction, including those 1's and 0's that tell the processor what to do. (Anything below that is electrical engineering.) The differentiators are the complexity and stability of that abstraction. When people talk about "everything being a file", they are referring to lower level abstractions that are relatively simple and stable. Likewise, when people talk about HTML/CSS/JS they are referring to lower level abstractions that are relatively simple and stable. This is less true (sometimes significantly less true) when people start discussing frameworks/libraries, whether that's in Linux or web development.
- bborud 6y agoSimplicity is harder to do than it looks. When you see something simple that actually works, something made to be easy to understand, that can take a lot of work to arrive at. So while it may not be much to look at, few people can actually accomplish that. Unix is a good example. It looks easy, but when you see people try to improve on something the failure rate is quite high. Let me give you an example of something that used to be clear and trivial in Unix that isn’t anymore because people «improved» it: telling your system about name servers.
- dolni 6y ago> I don't think I agree with this take. You haven't cut away abstraction, you've changed to a different kind of abstraction. Linux's 'everything is a file' abstraction is just that, an abstraction. If I try to interpret the bit about abstraction, I lean more towards "less opaque" being the intended meaning. On Windows and Mac, it's harder to see what is happening. On Linux, it's all exposed and there to tinker with. > It's arranged more simply and straightforward, masterfully though, I dunno... I would argue that simple and straightforward is masterful!