Hacker News new | ask | show | jobs
by Gabriel439 3175 days ago
There are two separate questions here:

* "Why should we limit I/O to the compiler"?

Think of the compiler or interpreter as a small trusted kernel. It's a mostly fixed code base that you can inspect and audit. The programs that it compiles or interpret on another hand don't have to be trusted because they are perfectly sandboxed. They are effect-free purely functional code

* "Why not use multi-threading for communication?"

This is (in my eyes) the real problem that I'm trying to solve. Using effects as a message bus for composing code seems incredibly awkward and primitive, like explicitly managing stack registers.