The Unix philosophy is often recited as "do one thing, and do it well". This does one thing, but doesn't do it well at all.
"Do one thing and do it well"
unix philosophy - why its important for a software to do one thing and do it well - Unix & Linux Stack Exchange
How does the Unix Philosophy matter in modern times?
Videos
The Unix philosophy states that a program 'should do one thing and do it well'. This may have worked in the 1970s and 1980s, but in the modern era, where even the hardware does multiple jobs at a time, how does this matter? People want multi-tasking in their machines, and according to them it increases the efficiency. Why shouldn't software be able to multiple tasks?
Wouldn't it be better that a piece of software can do many operations, rather than one, while doing them all well?
Or, am I getting the whole idea of the Unix philosophy wrong?
A couple of thoughts about that principle, assumed to be one of the Unix philosophy pillars.
1- Integration, middleware, infrastructure - that's also "one thing" that needs to be "done well". It's not enough to put together things that do their stuff well separately. The infrastructure that puts them together also is a "thing" that must "do well" the integration task, in a consistent, configurable, usable and reliable manner.
Shell scripts are not always the best answer to middleware or infrastructure software.
2- Dependency hell and self-contained software. I am as much as anyone for component reuse and modularity, but there is always a compromise between 'reuse' and 'rewrite/repack'. There are cases in which the reuse of an external component introduces problems (dependencies, integration issues, security risks) that can't be acceptable for the case.
Now I know most could be thinking now "this is just another piece of cover systemd propaganda", but not really. I am not a fan of systemd.
I just wanted to share a couple of thoughts that, though pretty basic in software engineering and obviously not originally mine, tend to be missed in many Linux/*BSD/open source discussions.