2004-10-14

Emacs For User Interface

For my employer, I have done:
  • some emacs interfaces for external programs/scripts (like what xtla is to tla)
  • porting some project build procedures to elisp (all programmers here use emacs)
That's basically the extent of my emacs resume.
After writing enough of those interfaces, I find that it would actually be better in some (many?) circumstances if the program drives the emacs interface, instead of emacs driving the program, i.e: the user interface of the program is the emacs itself.
I am thinking of a emacs-as-user-interface library from where programs can control what is being displayed by emacs and also propagate user response back to the program.
With the library, the program says what to display, where that radio button goes, where that text field goes, and what code to invoke when an event occurs (callback).
The program will be a long-running one; programming to this library should be just like programming with any other UI toolkit: you setup the screen, then you go in a loop.
But why go to those trouble?
Integration, that's why.
That is also the same reason for the elisp code I've written (see above). I want the count-line functionality, spell checking, programmable completion, ability for other elisp code to interact (only on buffer-level).
All I have seen is emacs integrating with external programs; doesn't emacs have enough functionalities of its own to entice other programs to integrate with emacs?

(originally from http://microjet.ath.cx/WebWiki/EmacsAsUserInterface.html)