My take: Anything that tries to hide the underlying asynchronous nature of modern computing is going to get you into a heap of trouble when the abstraction breaks (and it will).
RPC is magical thinking (and it was always a bad idea), synchronous messaging will make you loved by hardware vendors as you come back to buy faster and beefier machines, and if you're doing distributed shared memory, well, good luck with that.
I have little to say about microkernels (and yeah, I've worked on them) other than the good systems seem to start out micro-kernelish and then mutate into something useable, while the good monolithic systems start start looking more like microkernels over time, so the truth is probably in the middle.
That caching on file servers and file replication were ever controversial seems quaint. :-)
Pike's comment about programming languages is a little funny given that he was one of the authors of Go and several other languages meant to simplify distributed/parallel computing.
RPC is magical thinking (and it was always a bad idea), synchronous messaging will make you loved by hardware vendors as you come back to buy faster and beefier machines, and if you're doing distributed shared memory, well, good luck with that.
I have little to say about microkernels (and yeah, I've worked on them) other than the good systems seem to start out micro-kernelish and then mutate into something useable, while the good monolithic systems start start looking more like microkernels over time, so the truth is probably in the middle.
That caching on file servers and file replication were ever controversial seems quaint. :-)