Coming from software development, the systemd controversy is starting to feel more familiar as I learn more of it.
It really reminds me of what happens sometimes in backend web systems development when an overly complicated framework takes over a programming language community. Getting anything done no longer becomes about using the tools to interact with HTTP, or the language runtime (if relevant), or anything else absolutely essential to the task at hand - it’s about learning the framework itself and its peculiarities, its specific abstractions and semantics wrapping real concepts.
An example is Spring Framework. One does not simply write a little bit of code to cache something in memory at the place one needs it, no! One must use a ProxyFactoryBean to apply a CachingInterceptor, in the bean configuration XML of course! (Of course being Java, you have the extra layer of indirection and fakery as the Java community is/was full of people obsessed with shoving everything possible into a design pattern for cred.)
One does not simply read a systemd log file using cat, nor filter with grep. One must use journalctl with its specific arguments to filter by specific things. Because the logs are binary or something. I feel like I’m not learning Linux/UNIX anymore, I’m learning systemd.
I do like systemd’s unit system, with its whole dependency graph for reaching certain targets, etc. However, given the nigh ubiquity of systemd, I’ve not really had much of a chance to learn any alternatives, so it seems I must simply get used to it regardless.
Coming from software development, the systemd controversy is starting to feel more familiar as I learn more of it.
It really reminds me of what happens sometimes in backend web systems development when an overly complicated framework takes over a programming language community. Getting anything done no longer becomes about using the tools to interact with HTTP, or the language runtime (if relevant), or anything else absolutely essential to the task at hand - it’s about learning the framework itself and its peculiarities, its specific abstractions and semantics wrapping real concepts.
An example is Spring Framework. One does not simply write a little bit of code to cache something in memory at the place one needs it, no! One must use a ProxyFactoryBean to apply a CachingInterceptor, in the bean configuration XML of course! (Of course being Java, you have the extra layer of indirection and fakery as the Java community is/was full of people obsessed with shoving everything possible into a design pattern for cred.)
One does not simply read a systemd log file using cat, nor filter with grep. One must use journalctl with its specific arguments to filter by specific things. Because the logs are binary or something. I feel like I’m not learning Linux/UNIX anymore, I’m learning systemd.
I do like systemd’s unit system, with its whole dependency graph for reaching certain targets, etc. However, given the nigh ubiquity of systemd, I’ve not really had much of a chance to learn any alternatives, so it seems I must simply get used to it regardless.
I still use grep with journalctl because I find their built-in filter to be poopy.