I have super mixed feelings on this. Minimalism makes for a clean, easy to understand codebase, that avoids some of the performance pitfalls associated with bigness. But sometimes it’s easy to build 80% of what you need, and then massively difficult to get to 100%, and the ease of getting to 80% can lead you astray. For instance, I can write a pretty fast matrix multiplication algorithm in maybe a few dozen lines of…
Those projects are organized around one monolithic package of code that could be broken out into there separate libs and composed together in novel ways.
A GUI is just the set of default compositions an opinionated team felt would connect best with an abstract perfect customer in mind.
Each chunk of code could be managed then by smaller teams, and the inputs/output spec more easily understood by all.
Unix composability at scale is what the web and devops has been peddling philosophically, IMO.
Lots of people like the desktop metaphor. Personally more of a “computer is a text editor I use to compose interesting outputs”.