Return

Unix philosophy

1 Name: Anonymous 2024-06-23 11:54
Unix philosophy seems to be a good constitution on OS design simply because if everything is a file and if the ecosystem has many 'do one thing and do it well' programs available to it then I feel you have the most general purpose OS possible. Beyond that why would people like to adhere to it so much? When you get to your favourite higher level programs does it matter so much? The criticism of some software not considering the unix philosophy enuff often makes no sense to me
2 Name: Anonymous 2024-06-24 16:55
>>1

Counter argument against the Unix philosophy:
* It isn't lisp.

Remember Greenspun's tenth rule.
3 Name: Anonymous 2024-06-24 20:01
most people promoting unix philosophy use linux or bsd, neither of which truely embrace the unix philosophy. Unix itself wasn't truely unix philosophy (which is why the guys who made it threw it away on their sequel os). ever tried importing a mouse device from a networked machine as your mouse? no? well it wouldn't work even if you did. unix derivatives expose devices to the filesystem, but doesn't actually operate on devices through the filesystem directly. This is why you can't open a network port by cating a file, duplicate a connection by duplicating a file, end a connection by deleting a file, etc. so I dunno if i can take anything the most zealoty unix proponents say seriously.
plan 9 on the other hand . . . . .

anyway. What would a "unix philosophy" version of "video editing" look like? well, it would be a suite of small programs that do fairly basic things. Like a program that takes a video stream (decoded by some other program) and creates a timeline image. another that uses that timeline image and the video to allow scrubbing and marking clip ins and outs (probably outputing the timestamps to a text stream) one that cuts videos apart into clips, a set of programs that can apply transitions/filters to video clips, another that combines clips, etc. This becomes kinda hard to deal with as a user. sure the programs being general purpose and seperate means you could use them in other contexts, separately, etc. but the "closest" thing like this is ffmpeg, it's a massive monolith with a trillion options. as a single binary it's "easier" to use than some 50 odd binaries the "real" unix way would describe, and still too complicated for anything but the most simple tasks (when used directly). so then you need another binary that wraps all those small binaries into a workflow, and you just buried all the "unixy" programs in a monolith with more steps.

ideally the entire os becomes the higher level of abstraction from C, not a python/js/swift/etc but os as language. in practice making it easy enough to specify adhoc workflows from raw programs to be useful is quite difficult, so people do it once, put it in a script, or write a program that does it. most people never do it and rely on others to. these types couldn't care less that the parts that make it work are a unix like tiny program for one thing, or a function in some binary blob.
4 Name: Anonymous 2024-06-25 19:08
>>3
Cool answer thanks
5 Name: Anonymous 2024-06-26 14:30
unix philosophy is a good rule of thumb, but it should not be taken as gospel as both rules and thumbs were made to be broken. The thing is the wording of the unix philosophy is vague anyway, "do one thing well", what counts as one thing? perhaps in >>3 's example, "video editing" would count as "one thing" and encompass all of the smaller sub-"thing"s. Still we can say video editing software is more useful if it includes the ability to cut and stitch video, apply transition effects, composite, play back video etc; but we would probably not want video editing software to implement say a web browser.

Return
Name:
Leave this field blank: