I have been struggling for a long time trying to figure out what makes a good plugin system for editors. I've experimented with compiled plugins that are loaded via a DLL interface. I've experimented with interpreted languages (e.g. Lua). I've even experimented with trying to compose editor commands via key chords alone. Of all the systems, I came to a realization: A good plugin system requires a compiler. Adding to that, a good plugin system in an editor must ship with a builtin compiler to reduce as much friction as possible.

With the above in mind, I think I chose an insane, but fun path: ship my editor with a C compiler. We all love C, and it's the language with the largest possible surface area for interop with everything else on the system. As such, I now ship my editor, fred, with TCC that generates an executable code page for the editor to hook into for plugin building!

I can't explain it better than this: https://www.youtube.com/watch?v=bqU7ghs9ou0 .