by michaelty on 1/6/12, 2:42 PM with 31 comments
by jrockway on 1/6/12, 5:29 PM
With a proper intermediate representation, we can begin writing compilers for other languages. Then you can write your extensions in Common Lisp, or Emacs Lisp, or Scheme, or JavaScript, or Perl, or whatever you feel like writing a compiler for. This won't fragment the community, because the runtime will be the same for every language; yes, there will be syntax differences, but in the end, everyone is programming to the same API. This is different than what Vim does with its programming language support (recompile Vim to embed opaque interpreter object, pray when you choose more than one language).
The only problem is that Emacs Lisp is fine for 99.9% of use cases, and it's fast enough for 99.9% of use cases. One worry I have about "proper language support" is that people will start "engineering" Emacs extensions. (By which I mean, treating software designed for interactive use by programmers as though it's "enterprise" software. When you need to write software that must not fail, concepts like encapsulation are very important. But when you're writing software that's designed to be edited by the user while it's running, you can't write it that way. Emacs Lisp explicitly encourages this, but CL, Scheme, and JavaScript don't.)
by drcube on 1/6/12, 3:47 PM
by smountcastle on 1/6/12, 3:22 PM
by kruhft on 1/6/12, 4:31 PM
by regularfry on 1/6/12, 4:22 PM
by wglb on 1/6/12, 6:27 PM
One of the difficulties to be overcome is the huge base of existing elisp code. This code base is part of the attraction of emacs.
by wicket232 on 1/6/12, 7:52 PM
by phzbOx on 1/6/12, 6:01 PM