The degree to which you can isolate complexity is a function of the type of software being designed. It’s a lot like the stallman-vs.-microsoft aproach, command line tools that do individual tasks and microkernels that isolate everything into discrete tasks, versus building complete systems and monolithic kernels that combine the tasks.

But, even for projects as large as an OS, Mach/Hurd loses to Linux or Windows, but the benefits presumably come from the greater ability to isolate the complexity. Designing isolated systems to generate complexity is harder than building complex systems .That’s why it’s hard to argue that the complexity-isolation approach works for sufficiently complex projects — it “should”, but in practice, it isn’t do-able!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store