Question: I'd like to take an existing application (written in OCaml) and create an Emacs "interface" for it (like, for example, the Emacs GDB mode). I would prefer to do this without writing a ton of Lisp code. In MVC terms, I'd like for the View to be Emacs, but for the Model and Controller to remain (primarily) OCaml.

Does anybody know of a way to write Emacs extensions in a language other than Lisp? This could either take the form of bindings to the Emacs extension API in some other language (e.g., making OCaml a first-class Emacs extension language) or an Emacs interaction mode where, for example, the extension has a pipe into which it can write Emacs Lisp expressions and read out result values.

Answer: 
I don't know if this will work for your particular problem, but I have been doing something similar using the shell-command-to-string function:

```
(shell-command-to-string
    "bash -c \"script-to-exec args\"")

```

So for example, we have existing scripts written in python which will mangle a file, so the above lets me invoke the script via emacs lisp.

A quick google search [found this page](http://pymacs.progiciels-bpi.ca/) describing a system to write extensions in Python, so it seems feasible to do what you want... you will just have to see if anyone has written a similar framework for OCaml.
There is no "Extension API". Emacs Lisp is way in there, and it ain't moving.

You can run Emacs commands from your other process. Have a look at Gnuserv.

There are plenty of applications where Emacs is the View for a Model/Controller in a separate process. The Emacs GDB interface is a good example. I'm not sure of a simpler example, maybe sql-postgresql?