Living organisms as a whole of various subsystems around semi-independent organs, which has been made out of tissues, which in turn made out of specialized cells, etc is the right model.<p>Cells are agents communicating with messages over different channels (slow blood vessels, and fast neural pathways).<p>There, at least according to theory of evolution, is no better way to structure a complex systems.<p>And the cell machinery could be modeled as a pure-functional LISP (because code and data uses exactly same sequential structure). This, presumably, was the intuition behind MIT Scheme.<p>Pattern matching on messages in Erlang along with the &quot;become&quot; universal server is beautiful way to express general agents and is close to that uniformity, but code cannot be a message.<p>Procedures are enzimes, data structures are proteins, asynchronous messages-passing is the way to communicate, and there are protocols to follow.<p>One cannot possibly design better than that.)