16.5.1 Programming Defensively ¶
As an aside, note that all of Emacspeak has been developed
over the last 20 years with Emacspeak being the only adaptive
technology on my system. This has led to some interesting
design consequences, primary among them being a strong
education in programming
defensively. Here are some other key features of the
Emacspeak code-base:
- The code-base is extremely bushy rather than deeply hierarchical —
this means that when a module breaks, it does not affect the
rest of the system.
- Separation of concerns with respect to the various
layers, a tightly knit core speech library interfaces with
any one of many speech servers running as an external
process.
- Audio formatting is abstracted by using the formalism
defined in Aural CSS.
- Emacspeak integrates with Emacs’ user interface
conventions by taking over a single prefix key C-e with all
Emacspeak commands accessed through that single keymap. This
helps embedding Emacspeak functionality into a large variety
of third party modules without any loss of
functionality.