Next: , Previous: , Up: Vision   [Contents][Index]


1.1.4 Goals

The goals of this project are as follows.

  1. Easy to embed technically

    Emacsy will use Guile Scheme to make it easy to embed within C and C++ programs.

  2. Easy to learn

    Emacsy should be easy enough to learn that the uninitiated may easily make parametric changes, e.g., key ’a’ now does what key ’b’ does and vice versa. Programmers in any language ought to be able to make new commands for themselves. And old Emacs hands should be able to happily rely on old idioms and function names to change most anything.

  3. Opinionated but not unpersuadable

    Emacsy should be configured with a sensible set of defaults (opinions). Out of the box, it is not tabla rasa, a blank slate, where the user must choose every detail, every time. However, if the user wants to choose every detail, they can.

  4. Key bindings can be modified

    It wouldn’t be Emacs-like if you couldn’t tinker with it.

  5. Commands can be defined in Emacsy’s language or the host language

    New commands can be defined in Guile Scheme or C/C++.

  6. Commands compose well

    That is to say, commands can call other commands. No special arrangements must be considered in the general case.

  7. A small number of interface functions

    The core functions that must be called by the embedding application will be few and straightforward to use.

  8. Bring KLECL to light