4.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.