News for hackers. Stuff that matters.
Re:Everything Easy is Hard Again (2018) by grawprog on Saturday April 17, 2021 @02:12PM (#26846230)
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.

Re:Everything Easy is Hard Again (2018) by yarcob on Saturday April 17, 2021 @02:57PM (#26846536)
My 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.
Re:Everything Easy is Hard Again (2018) by grawprog on Saturday April 17, 2021 @03:11PM (#26846656)
>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.

Re:Everything Easy is Hard Again (2018) by mikepurvis on Saturday April 17, 2021 @02:20PM (#26846290)
There'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

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."

Re:Everything Easy is Hard Again (2018) by smoldesu on Saturday April 17, 2021 @03:39PM (#26846860)
Node is definitely a bit of a mess, it's misuse of the Linux system doesn't really come as a surprise.
Re:Everything Easy is Hard Again (2018) by toomanyducks on Saturday April 17, 2021 @03:53PM (#26846950)
Re: 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.
Re:Everything Easy is Hard Again (2018) by CharlesW on Saturday April 17, 2021 @03:24PM (#26846739)
> 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?

Re:Everything Easy is Hard Again (2018) by grawprog on Saturday April 17, 2021 @03:29PM (#26846786)
Not 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.

Re:Everything Easy is Hard Again (2018) by smoldesu on Saturday April 17, 2021 @04:21PM (#26847132)
These 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.
Re:Everything Easy is Hard Again (2018) by drran on Sunday April 18, 2021 @05:07AM (#26850949)
See File System Hierarchy Standard[0], or `man hier`.

[0]: https://refspecs.linuxfoundation.org/fhs.shtml

Re:Everything Easy is Hard Again (2018) by II2II on Saturday April 17, 2021 @06:02PM (#26847823)
> 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.

Re:Everything Easy is Hard Again (2018) by bborud on Sunday April 18, 2021 @05:45AM (#26851114)
Simplicity 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.

Re:Everything Easy is Hard Again (2018) by em-bee on Saturday April 17, 2021 @02:52PM (#26846494)
i 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.

Re:Everything Easy is Hard Again (2018) by grawprog on Saturday April 17, 2021 @03:06PM (#26846612)
>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.

Re:Everything Easy is Hard Again (2018) by em-bee on Saturday April 17, 2021 @03:33PM (#26846812)
And yet there's hundreds of apps that will never be updated or changed to conform to standards.

i suspect many of those are no longer actively maintained. at best they receive security patches from distributions.

Tell that to snap. It insists its folder must sit nicely in my home folder and nowhere else.

my (low) opinion of snap aside, the bad here is that the location is not configurable. as a library of applications, i would want snap in $HOME. or i would put it in $HOME/lib or an equivalent. maybe .local would be appropriate too, but i understand it's for app specific user-data, so it doesn't look like whole apps should be in there. (edit: elsewhere i just read that .local is supposed to be like a user specific /usr/local, so snap should fit in there somewhere)

Re:Everything Easy is Hard Again (2018) by grawprog on Saturday April 17, 2021 @03:39PM (#26846857)
I don't want to turn this into a snap bad mouthing thread, but yeah. You can't even symlink it or it causes problems. It really bugs me because I don't tend to allocate too much space to my home partition and keep most of my stuff on data partitions. So if I get a bunch of snap apps, it starts eating up all the space in home.
Re:Everything Easy is Hard Again (2018) by thyrsus on Sunday April 18, 2021 @12:08AM (#26849724)
Can you wrap its invocation in a script that sets a snap specific version of the $HOME environment variable? If it's perverse, it ignores $HOME in favor of reading the passwd entry itself, in which case I'm happy to have never encountered it.
Re:Everything Easy is Hard Again (2018) by em-bee on Saturday April 17, 2021 @03:54PM (#26846965)
i hear you. in fact, i do use data partitions as well, and if my snap directory grew to much i would want to move it too.

as a workaround try to use a bind-mount

Re:Everything Easy is Hard Again (2018) by smoldesu on Saturday April 17, 2021 @04:23PM (#26847146)
I don't use Snap. The only real "bloat" in my home directory is my Bitwig folder, which isn't that bad considering I use the program on a near-daily basis.
Re:Everything Easy is Hard Again (2018) by abnercoimbre on Saturday April 17, 2021 @03:04PM (#26846601)
> 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

Re:Everything Easy is Hard Again (2018) by em-bee on Saturday April 17, 2021 @03:21PM (#26846723)
i have no hard data, but my impression is that more and more apps are
Re:Everything Easy is Hard Again (2018) by lelanthran on Saturday April 17, 2021 @03:19PM (#26846712)
> 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.

Re:Everything Easy is Hard Again (2018) by dolni on Sunday April 18, 2021 @02:14PM (#26854870)
> 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!