“If you love Emacs, you may also like…”

Here’s a partial list of some software that’s inspired by Emacs’ model of extensibility.


Drupal is written in PHP – an imperative OOP language with Perl, Java, and Python influences. However, it provides hooks, has global defuns and defvars which users can define, too (OOP not required in “module” framework), provides user interface elements by using PHP arrays instead of Lisp lists and EmacsLisp association lists. Note, “Array processing” in PHP is not done as commonly as “list processing” is in EmacsLisp. Like EmacsLisp, Drupal's API can quickly and cleanly handle a lot of the drudge work of the hacker’s task, making interactive Web sites.

And also like EmacsLisp, PHP is completely lacking in namespaces. But perhaps this material could be moved to ExtensionLanguageAdvocacy? And by the way, is someone using elisp for interactive web sites these days?

Actually I think this entry should be removed. If we keep Drupal on this list, we’ll end up listing all extensible programs. I think the most important criterion should be “If you love Emacs, you may also like…” – and I don’t see the connection between Emacs and Drupal. It seems to me that all other items on the list use a Lisp system, be it CommonLisp or Scheme, or something similar. If we add PHP we’ll be adding Perl, Ruby, and Vim Script next… – AlexSchroeder

Please don’t remove Drupal from this list. Like Emacs, Drupal is the advanced, extensible, customizable, self-documenting system. “Customizable” means that you can easily alter its behavior in simple ways. “Extensible” means that you can go beyond simple customization and easily create new modules (like packages in Emacs) and implement new functionality using a set of predefined hooks and well-thought-out core API. The unfortunate fact of using PHP as its implementation language doesn’t diminish the excellence of Drupal as a system. – JuriLinkov