unix philosophy

naki,


i see how some people oppose emacs to unix. there're emacs and unix ways to do things, they say. systemd is presented as a huge tool that is against unix philosophy. they're big and monolithic, while unix philosophy is about "do one thing and do it well"

in reality, there're indeed some misconceptions about what unix is about. unix philosophy is about communication between units and their relationships. unix is a system of communicating programs

now, look at emacs. don't you feel the same? because it is indeed the same. people perceive emacs as a single entity, whereas it's a system. emacs is a lisp interpreter with a lot of functions shipped within the distrubiton. look at those functions in the lisp environment, not at emacs as a whole

going from something like "emacs is monolithic and big" one can look at unix the same way. look, it's a single entity doing so much! it works with printers, is used to edit text by hand, to manage webservers... it's simply monolithic and big! but huh, isn't it a cute system of communicating programs?

look at systemd. one can say, its binary logs are incompatible with unix's plaintext hence the logging system is against the unix philosophy. one can say, systemd is monolithic and huge

second point is just like in emacs judgement: people don't know (or ignore) that systemd is a set of tools, not a single tool and of course not an init system

first point is about communicating with other systems. if interoperation of systemd and unix cannot be done by simple unix commands, systemd is not of unix philosophy

but unix philosophy is not about this. a system implementing unix philosophy is coherent within itself, communication with other systems is not important here. and systemd is coherent within itself.

i'd also like to make a note here, though. to me unix way and unix philosophy are different. unix philosophy is what this post is about. unix way, though, is different. unix way is the way of unix, it's how unix was solving problems. so, if one applies methods used in the unix implementation, they're doing the unix way