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.