> Then Tannenbaum came out with his book and it didn’t really take off.<p>> Then Torvalds open-sourced linux and that is what started to gain popularity.<p><i>cough</i> BSDi <i>cough</i>
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.
> <i>I was going to mention Unix “cat” but forgot.</i><p>> <i>Wildly simple - it takes at most one argument.</i><p>That is asinine. Why would a program be called ‘cat’ if it can’t con<i>cat</i>enate multiple files?<p>Also, his “grash” program is seriously deficient in the handling of signals – it completely ignores the issue. There are <i>many</i> subtle issues with signals which have to be handled correctly when writing a shell: <a href="http://www.cons.org/cracauer/sigint.html" rel="nofollow">http://www.cons.org/cracauer/sigint.html</a>