This kind of loses me towards the end. I mean, sure, emacs is a freakishly large lisp program. I get that part. But, what's the point here?<p>The abstractions in emacs (modes and hooks are the ones discussed in the linked post) really aren't that strange, or unique, or even lisp-specific. Nor are they without analogs in other tools written in conventional imperative languages. An emacs written in python, frankly, wouldn't look that different. A mode by any other name would hook as smooth.
Ok, this is probably me being ignorant, but can't you do stuff like this to get macros in Python:<p><pre><code> import os, subprocess
def macro(string, filename="~/macro.py"):
program_name = os.path.expanduser(filename)
out = open(program_name, 'w')
out.write(string)
out.close()
command = ["python"]
command.append(program_name)
subprocess.Popen(command)
macro("print 'Hello macro!'")
</code></pre>
It seems like with a bit of ingenuity you could achieve any level of abstraction using a technique like that.