5 ms·
I don't think the Unix philosophy makes too much sense for things other than CLI commands, and even there, I'm not 100% convinced.
by young_unixer 5y ago
I don't think the Unix philosophy makes too much sense for things other than CLI commands, and even there, I'm not 100% convinced.
- masklinn 5y agoGoing by the Salus' summary: - Write programs that do one thing and do it well. - Write programs to work together. - Write programs to handle text streams, because that is a universal interface. (3) definitely makes no sense outside of CLI commands, (2) is too ill-defined to be of any use (at least outside of programs, though even for programs it seems to be quite redundant with 3), which leaves (1)... which is basically a matter of taste: "one thing" is an extremely ill-defined concept, and you could easily argue that most of the useful SUS commands break it, especially (though not exclusively) if you look at it from GNU's coreutils.
- codesections 5y ago> (3) ["write programs to handle text streams"] definitely makes no sense outside of CLI commands I'm not sure I'd say that. In the web development world, you'll definitely see people arguing to "JSON all the things" (text) but others arguing to "protobuff all the things" (binary). And they raise many of the same simplicity-vs-performance issues that came up for Unix CLI commands. As for (1) and (2) being too ill-defined/a matter of taste – well, I agree, but I don't think that means they're useless. I think of them as being in the same category as advice for writing prose ("Use short sentences where possible", "Avoid cliches"): helpful goals to keep in mind, even if I can't pin down exactly what they mean.
- Ar-Curunir 5y agoFor libraries defaulting to an untyped interface makes no sense.
- duped 5y agoIf you're using any kind of software that exchanges data in a human readable serialization format you're following 3, in some form. Like for example, an HTTP server or client
- masklinn 5y agoThat makes even less sense, the output is dictated by the purpose, it's not a choice.
- salawat 5y agoComputers don't run for computer's sake. They run due to extant human utility. That utility is itself existentially traceable to a human making a choice. No computer ever, has done something whose chain of causality does not return to a matter of human choice in orchestrating the circumstances for said outcome.
- habitue 5y agoThe good parts of the Unix philosophy have already been subsumed into common sense as a programmer. So what remains as "The Unix philosophy" are the controversial, more religious components. You can tell it's a little religious because, like Agile and REST, "everyone is doing it wrong". Where the thing everyone is doing wrong is a weird little corner of the thing with dubious utility.
- alpaca128 5y agoThe general motivation behind it can apply to any kind of software, but it's definitely not fitting for many categories. In desktop applications I usually prefer tools that cover the majority of use-cases and provide an easy way to extend them (the last part is important too, otherwise you end up with the Windows 8 default apps). It doesn't make sense to split up a photo editor's core featureset, but that doesn't mean it's a good idea to just bury it in a pile of features out of the box that only 5% of users care about.
- anthk 5y agoUnix desktops are composed of little tools. Under xfce you can switch out Thunar and Xfce4-terminal for something else. And long ago you could use your own WM in Gnome.
- makapuf 5y agoExactly, and integration (launchers, notifications, menu integration) can be done around a common ground (a la freedesktop.org)
- giantrobot 5y agoThat's only possible because DEs got together and made freedesktop.org, against the desires of many in their various communities at the time. There's little in the way of "Unix philosophy" built into the various freedesktop conventions. In fact there's a lot of "don't reinvent the wheel" in the conventions which is not really addressed in the "Unix philosophy" which is rife with reinvented wheels. There's still plenty of GUI tools in the FOSS space that don't heed freedesktop conventions. There's also still people that bitch endlessly about D-Bus, systemd, any anything that's not just piped plain text everywhere.
- IshKebab 5y agoRight but you've just retrospectively decided that Thunar and Xfce4-terminal are the ideal unit of "doing one thing". It's a completely arbitrary threshold. Thunar can unzip files. Oh no it's doing two things! Shouldn't it leave that job up to `tar`? Xfce4-terminal has tabs. Erm shouldn't that be the job of the window manager like on Mac? Stop doing more than one thing!!
- DarylZero 5y agoThunar should call an external program to unzip.
- IshKebab 5y agoIt should use a third party library. Having a file manager use `system()` to unzip files would be insane for so so many reasons. You could potentially do it with something like D-Bus I suppose. But it would still probably be simply better if it was built in.
- IshKebab 5y agoThe Unix philosophy is unhelpful dogma at this point - something that people use to blindly criticise software that they've arbitrarily decided does "too much" even if it makes perfect sense for that software to do more than one "thing". SystemD comes to mind. Maybe it made sense at the time.