Output queues simplify software
An idea overlooked by Functional Programming and premature-optimization: a component must not name another component, hence, it must not SEND to (nor CALL) another component directly.
Components must leave output messages in their own output queues. Parents of the components1 route the messages from output queues to input queues accordingly. This provides inherent flexibility that premature optimization does not allow for, hence, 50 years (and counting) of re-discovery of the basic principles of CPU behaviour.
Due to advances in hardware, we can afford to go back to the original model of async components, i.e. no shared memory.
Many aspects of software become massively simpler.
Appendix - See Also
References
https://guitarvydas.github.io/2004/01/06/References.html
Blog
Blog
obsidian blogs (see blogs that begin with a date 202x-xx-xx-)
Videos
videos - programming simplicity playlist
Pamphlets
Discord
Programming Simplicity all welcome, I invite more discussion of these topics, esp. regarding Drawware and 0D
@paul_tarvydas
Books (WIP)
-
the parent is a “Container” - a mini-router ↩