Hacker News new | past | comments | ask | show | jobs | submit
I hate this 'unix philosophy in mind' 'principle' as an argument.

We are no longer 50 years ago were a linux system or distro was fitting on a floppy disk.

The handful of tools like grep, cp, etc. have a complexity of a banana and everything else successful is so big, that it doesn't fit at all.

Blender, container, ffmpeg, vlc, vim, firefox and co. Huge code bases. And if someone woudl argue "yeah but firefox is doing one thing, its browsing" thats an argument you can bring for systemd too.

Systemd is just not a 'start services in the right order' tool. Its more holistic

> And if someone woudl argue "yeah but firefox is doing one thing, its browsing"

Actually, I would argue that browsers are doing too much :-). Webapps shouldn't be a thing, browsers should be for loading websites. Apps should run outside the browser in the OS.

> I hate this 'unix philosophy in mind' 'principle' as an argument.

You did not deal with the most important complains that is the easy of debugging, modifying and changing stuff. It lacks a lot of this and one can question how much of an improvement ini like files are that are then interpreted in opaque ways that to provide desired features such as containerization or jailing. I personally want to usually run containers with podman, do systemd containers give me anything or is it just more cruft, same with isolation, do I really gain much from the complex namespace abstraction rather then using unshare.

> "yeah but firefox is doing one thing, its browsing"

Browsers as they exist today where a mistake that is clear. those other tools you mentioned might be large but they don't violate do just one thing well.

I am not even that much of a unix guy (I use emacs which the unix people like to shit on of course and does not fit with the do one thing well). But you are not providing arguments against the issues we have with systemd and have not demonstrated its value over other init 1 systems and even the harder case you seem to argue for it's applicability everwhere.

Systemd takes care of services and encapsulates everything relevant to it.

For me systemd is similar to blender, firefox and co.

But the unix philosophy thing came not from a time of blender, firefox and systemd but a time of ls, cat, grep, xargs and co.

> For me systemd is similar to blender, firefox and co.

I explicitly said firefox is not like this (and browsers are bad) and I don't really see your point with blender (though don't use the program so I can defer to you knowledge), I even said I am a heavy emacs user and so don't believe in dogmatically following 'do only one thing well' principle.

All you have to demonstrate is what is the value.

> But the unix philosophy thing came not from a time of blender, firefox and systemd but a time of ls, cat, grep, xargs and co

are you trying to say ls, cat and grep have been superseded? this is absurd these tools are still useful and not replaced what is your point here what are you trying to establish?

My question would be where is systemd a better experience or easy to work with then openrc, have you ever had to disable any of the systemd defaults services such as resolving or networking and had issues with the way a distro set things up. I don't know how you can claim you have never an into an issue with it given that any piece of software you will run into issues with.

No but the time these tools were created, the whole ecosystem was small. The binaries were small, the tools were small, internet was small/slow
If you accept that cat and grep where the right tools and still are the right tools then you can not say 'do just one thing well' has been rendered obsolete and so it is still applicable to some cases at the very least and you must show it's not applicable to pid 1 programs.

I am also arguing more for openrc which is a newer project that has notions of dependence's and such.

If I may show where I think 'do only one thing well' is violated and correctly so is emacs (at least in part), for by having emacs as what boils down to a constant text interface I can use generalized text editing, searching and deriving buffers all in one program not having to configure anything else, my editor is my console and I can use my editor tools in my console even the ones I make.

So where is it demonstrated that the coupling is a boon that out weights the cost.

You can hate it all you want, but UNIX philosophy isn't related at codebase size at all.

All the examples you give fit into UNIX philosophy rather well. Firefox doesn't do text editing and ffmpeg doesn't render web pages, and vim doesn't transcode videos. They do one thing and do it well. They are as simple as they need to be not more.

Also, if GNU coreutils have a complexity of a banana, why uutils still can't replicate them as-is? Why they had ~140 CVEs in one release despite being written in Rust? If grep is simple, why we have only two performant implementations, grep and ripgrep?

Even FreeBSD guys discussed this: https://lists.freebsd.org/pipermail/freebsd-current/2010-Aug...

You're simplifying too much, I believe. Try writing a cp clone, why not?

systemd started as a start services in the right order tool, then bloated from there. Being holistic is not the problem, being holistic in the wrong way is.

Now, they decided that DBus is not nice enough and created their own IPC mechanism. What was that? Varlink? They don't stop there even. They say "Hey, why not try Varlink?". So to translate: "We want to kill DBus so, we will force Varlink on you".

loading story #50467687
it's spelled hole-istic in this case.

unix fixed MULTICS which on 70s hardware was already too complex. The unix philosophy is applicable to problems of whatever complexity and is a mere instantiation of problem solving strategies that humans and even crows have been using for ages.