Neovim Plugin UI architecture
github.com
github.com
Although the described approach has some advantages (a plugin is separate from the Neovim process, can run across a network, etc.), I wonder if in some situations this doesn't give to much overhead. E.g. if someone is scrolling fast, do you really want to communicate with all plugins over a named pipe or socket, doing messagepack serialization/deserialization?
On a sidenote: C apis are still used widely. And there are enough libraries out there to put an extra IPC layer on top of it so the'll behave the same as this one (i.e. can communicate though pipe/socket/... of choice).
"No. It took a long time. It was really hard to do because you've got to remember that I was trying to make it usable over a 300 baud modem."
[0] http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_g...
The host can also implement custom discovery/loading of plugins in a way that makes usage of the subscribe/unsubscribe API completely transparent