Well yeah, but that's not really how complex systems are developed anymore. Modern software development uses the object as the modular unit of granularity, not the process -- and APIs, perhaps augmented with message queues, for communication rather than pipes, sockets, and file descriptors. This is because it's much easier to statically reason about objects with well-defined APIs and they can be composed more flexibly with appropriate fabric: interacting locally or across process, user, or system boundaries.<p>This model dates back at least as far as Smalltalk but what really caused it to take off was -- wait for it -- Windows COM. So modern development has moved on from the Unix philosophy and embraced the Windows philosophy.