Follow

systemd, unix philosophy 

My problem with all these treatises on how software that "does a lot of things" is bad and more likely to fail, like frequently comes up in systemd discussions, is that while it is true in the abstract, these arguments never seem to account for things that people actually need to interact with.

Sure, it works great for libraries! Tiny libraries make for a very nice development experience and, with some reasonable dependency policies, very reliable and maintainable codebases. But that's because your target audience are *developers*; it's their *job* to pick the right tool for the job.

Your typical end user isn't a developer. They do not have the time or energy to allocate to painstakingly evaluate a "stack" of tools for every little thing they want to do.

They are looking to have a single program, a single UI, a single point of interaction with a coherent mental model, that allows them to complete their task from start to end. Where they can assume that the steps integrate, and they probably won't run into trouble on the common path.

And systems built to the "Unix philosophy" are notoriously bad at this! They are developed more or less in isolation - that is the point - and so they all have slightly different interaction modes, that are tailored to the specific task that the tool is meant to address. They may or may not integrate out of the box. If you're not a developer, this _sucks_.

So yes, by all means, modularize your libraries. Modularize your packages. Modularize every bit of internals you have! But don't try to universally apply the "Unix philosophy" to every piece of software without recognizing that *this is not actually what end users want to interact with*.

If you want your thing to actually be usable by people who aren't nerds, it *needs* to be usable through an application that does more than one thing. And this applies to anything a regular user might need to interact with directly; yes, including a service/system manager.

And if you insist that it is only a low-level tool, and people are expected to build end-user tools on top of that, then you actually need to make sure that it has a workable, reliable and consistent API to build against. None of this "custom string format you need to parse" crap.

(And yes, there are legitimate criticisms to be made of systemd governance. But "it doesn't follow the Unix philosophy" without further qualification is just about the worst argument you could be supporting it with.)

systemd, unix philosophy (follow-up) 

Look, if you're going to reply to this post with some grand yet unsupported claims because you personally don't like systemd, then the response you get will have an equivalent amount of effort put into it, which is to say very little.

systemd, unix philosophy (follow-up) 

And to be clear: I don't like systemd. I don't like Red Hat.

But you know what I like even less? Janky init constructions and "nobody should ever need more than..." rhetoric.

I am absolutely not going to relitigate long-debunked grievances about systemd in this thread, and if you think such grievances are appropriate in this context, I invite you to read the first post again and *actually* read it this time.

re: systemd, unix philosophy 

@joepie91 honestly the "unix philosophy" as it generally is implemented is actually worse in regard for making modular libraries

everyone wants to make a "modular" binary program that does a single thing and then actually none of that code can be used in another program ever, because why would another program want to do the exact same thing my program is doing?

I would love if developers actually made lots of good libraries that do one thing well because then we'd actually have modular software

re: systemd, unix philosophy 

@clarfonthey Oh yeah, I'm taking the absolutely most generous interpretation of "UNIX philosophy" here, I very rarely see people actually interpret it this way and usually it becomes something worse - but it helps to make the point that even in an idealized, not-actually-happening interpretation of the concept, it *still* is a bad idea for end-user software. Because it just conceptually doesn't fit there.

systemd, unix philosophy 

@joepie91 I'm not quite sure what kind of argument you are trying to make here...

- "end user" is ill defined. The end user who wants to have a single point of interaction, and does not care for details, is probably well advised to go to Apple computers. I have extreme doubts that the systemd program conglomerate would have any discernible benefit for such a person, compared to the other *ix tools.

systemd, unix philosophy 

@joepie91
- I would argue that Linux is in the position where it is today - basically world domination, except on the desktop - *because* no one tried hard to make it usable by people who aren't nerds. The goal rather was to make it technically correct and reliable. It *still* can be quite well usable by laypersons, through an abstraction layer like a GUI. My 83yo mom is quite happy with her XFCE Linux, much more than with her previous Windows machine.

systemd, unix philosophy 

@Hurgotron If you're preemptively including "desktop users" as a category that matters, and creating an (unsupported) false dichotomy where something is either reliable *or* usable, then I'm honestly not sure there's much of a useful discussion to be had here, because that's basically just gatekeeping rhetoric - and I am not going to engage on that premise.

systemd, unix philosophy 

@joepie91 Since you seem to be very keen of misrepresentating the arguments of others, this would not be a very fruitful exchange, indeed.

systemd, unix philosophy 

@joepie91 wait, I suuuper disagree with that person but, why are you saying desktop users not a category that matters? o.o

(Hope I'm not sounding too much like I'm sealioning/concern trolling 😭)

systemd, unix philosophy 

@hazelnot Sorry, I seem to have typo'd there; it was meant to say "excluding" rather than "including" (can't edit on this instance)

systemd, unix philosophy 

@joepie91 ahhh ok, I thought you were saying desktops aren't relevant to anyone except programmers anymore cause normal people just switched to tablets 🥲

systemd, unix philosophy 

@joepie91
- "workable, reliable and consistent API" reads especially funny, considering the amount of breaking changes brought by systemd, and its seemingly limitless scope creep bringing more of these.

And I still am genuinely curious to hear what kind of end users you think of, who might profit from having large parts of the system infrastructure exchanged for a single huge code base of highly interdependent programs with new and surprising bugs.

systemd, unix philosophy 

@joepie91
As an end user of more than one *ix dialect, I'm rather annoyed by the observed introduction of incompatibility and breakage. e.g. logging before journald was easy and reliable, now I'm missing log entries and I'm unable to figure out why, after this complexity has been added. Well.

End users in the sense of nontechnical people who only want to use the computer to run applications couldn't care less. - Who's left? Programmers?

systemd, unix philosophy 

@Hurgotron @joepie91 honestly people like you are the reason Linux is avoided by so many people

You're actively gatekeeping what's about the only functional free operating system, because your nerd cred and elitism are more important to you than electronic liberation

You and your other bros are the problem

systemd, unix philosophy 

@hazelnot @joepie91 Thanks for also misrepresenting my positions. Interesting trend

systemd, unix philosophy 

@Hurgotron @joepie91 yes, we're evil and want nothing more than to take away your Linux, we should just go back to macOS like the plebs we are you're right :)

systemd, unix philosophy 

There is a program to start daemons and restart login programs, called init. That's all you need, nothing else. No, giant corporate always-up million dollar server admins don't have special needs. There's no reason for systemd to exist. It adds nothing.

systemd, unix philosophy 

@cy Clearly a lot of people, me included, disagree with that view.

re: systemd, unix philosophy 

@joepie91 I believe we should see #systemd as the equivalent of a BSD' src repository.
#OpenBSD is slowly replacing the base with their own software, #systemd is doing the same.

systemd, unix philosophy 

@joepie91 I appreciate you putting into words the opinion I've held for the last few years but struggled to properly express.

It frustrates me to no end hearing people beat their chests like "it does too much". Yeah, there's things I'm not stoked about having in the init system, logging (especially binary logging that requires a command to access). That in mind, everything in systemd has a valid justification to be in systemd, especially udev (which is the big one I've seen people hound on for years).

Sure, you can use other init systems, but for the most part, systemd is the only one (that I'm aware of) that provides all of what it does without requiring several different domain specific file formats to accomplish (eudev rules, network interfaces, xinetd, custom sleep rules for dependency management if you're trying to do things in parallel, etc).

Sign in to participate in the conversation
Pixietown

Small server part of the pixie.town infrastructure. Registration is closed.