John Sturdy's presentation about User Interfaces for Programming
Approaches to editing programs span the range
from pure text editors to pure structure editors. Emacs's major modes
are nearer to the text editing approach, but the underlying system is
sufficiently programmable to extend this to take advantage of the
program text structure without having to impose the inflexibility of a
pure structure editor.
As I started to extend emacs to reduce its keyboard use, I started
to explore a range of non-exclusive options both for the form of the
input from the programmer and for its semantics.