As many programmers know, the task of programming usually breaks down into a cycle of think-write-debug. If you have used UNIX (or various other operating systems) for programming, you have probably become accustomed to using a set of disjoint tools for each phase of the cycle, for example, a text editor for writing, a compiler for compiling, and the operating system itself for running programs. You would undoubtedly find an environment much more productive if the boundaries between the cycle phases--and the tools that support them—were erased.
Emacs provides considerable support for writing, running, and debugging programs written in a wide variety of languages, and it integrates this support into a smooth framework. Since you never have to leave Emacs when developing programs, you will find it easier to concentrate on the actual programming task (i.e., the “think” part of the cycle) because you won’t have to spend lots of time going from one tool to another.
When you write code, you can use one of Emacs’ programming language modes; these turn Emacs into rudimentary syntax-directed or language-sensitive editors that have knowledge about the syntax of the language and that make it easy for you to write code in a uniform, easy-to-read, customizable style. Language modes exist for several different programming languages.
Emacs also supports running and debugging programs. The shell mode, which we saw in Chapter 5, allows you to use Emacs as a windowing ...