The benefits of this approach are
- making it possible to call other Wikifunctions from within native code;
- opening the door for Wikifunctions as a library in various programming languages;
- potentially (in the future) alleviating the strict vs. lazy execution difficulties which arise due to the need to resolve an entire ZObject before sending it to the evaluator
We should consider the project and security ramifications of this.
The major security flaw identified is that a websocket creates a new vector for DDOS and other malicious behavior, e.g. a fork bomb within a piece of Python code that makes infinite recursive calls to Wikifunctions. We have a mitigation plan for this at the request level (limiting concurrent requests based on IP and user ID), but two-way communication opens an almost literal back door to circumvent that.