The Church of Emacs (Pdf)
Total Page:16
File Type:pdf, Size:1020Kb
The church of Emacs The church of Emacs f Richard Stallman, the creator of Emacs, the Free software Foundation and the GPL, Lawrence Lessig, professor of Law at Stanford University and commentator on the issues of copyright, wrote, ‘Every generation has its philosopher’ a writer or artist who captures the imagination of a time. Sometimes these philosophers are recognised as such; often it takes generations before the connection is made real. But recognised or not, a time gets marked by the people who speak its ideals, whether in the whisper of a poem, or the blast of a political movement. Our generation has a philosopher. He is not an artist, or a professional writer. He is a programmer.’ Undoubtedly Stallman’s greatest creation as a programmer was Emacs, more specifically GNU Emacs, first released in 1985 as the foundation of the nascent GNU A cocky novice once said to Stallman: “I can guess why project, written in C and providing Emacs Lisp as a the editor is called Emacs, but why is the justifier called powerful extension language. Stallman’s first version of Bolio?”. Stallman replied forcefully, “Names are but names, “Emac & Bolio’s” is the name of a popular ice Emacs was written at the MIT AI Lab during the 1970s. cream shop in Boston-town. Neither of these men had Emacs was an abbreviation of “Editing MACroS”. anything to do with the software.” Coincidently, “Emack & Bolio’s” was the name of an ice His question answered, yet unanswered, the novice cream store close to the home of MIT in Boston. A text- turned to go, but Stallman called to him, “Neither Emac or Bolio had anything to do with the ice cream shop, either.” formatting program created at MIT by Dave Moon was In 1984, Stallman began working on GNU Emacs. The later named BOLIO, giving rise to the legend that Emacs first released version was numbered 15.34, and appeared in had been named after Emack & Bolio’s, of whose ice- 1985. As the first project within the GNU canon, GNU Emacs heftily embodies the politics and principles of free cream Stallman was not a fan - a legend that was later software. Martin Howse dissects a unique environment reflected in the hacker koan, Emacs and Bolio: within the history and culture of open code. 28 LinuxUser & Developer LinuxUser & Developer 29 The church of Emacs The church of Emacs domains, that “it’s just a tool,” should hopefully receive its final death closer inspection, and can rather be considered as overarching picture mode for ASCII image creation, make for a The Free Software song knell thanks to the superb extensibility and porous nature of this framework, as much more than an OS, pushing further integration-wise pretty funky editing experience. Minor modes, supreme coding environment. In the opening words of Larry Ayer’s than the often brittle, finegrained shell. The comical Church of Emacs, which, in contrast, can be mixed and matched, Join us now and share the software; GNU Emacs and XEmacs, “What sets Emacs apart from other espoused by the alt.religion.emacs newsgroup back in the day, presents are more concerned with toggling individual You’ll be free, hackers, you’ll be free. editors is the extent to which the ‘guts’ of the program are exposed a holy trinity of OS, computer language and editor which well embeds the features. For example, the commonly used M-x The Emacs to the user.” And that’s really what free software should be about, fascination and sheer magic of shared code works. auto-fill-mode switches on or off simple word Hoarders may get piles of money, commune, revealing shared code to all by way of license, development model wrapping. and design. Practical GNU Emacs That is true, hackers, that is true. under which the Though GNU Emacs basics are best left to the excellent online GNU Editor MACroS But they cannot help their neighbors; The advanced, self-documenting, customisable, manual, the works of O’Reilly and friends, and of course embedded Digging deeper into the thousand or so Emacs That’s not good, hackers, that’s not good. software was extensible real-time display editor tutorial and help, with Emacs providing a great example of self- code extensions shows not only an historical made freely GNU Emacs, in common with a few other very good things, is best documenting code, it’s worth explaining usable entry points for the embedding, with Emacs reaching out octopus-like When we have enough free software appreciated through experience rather than cold-blooded description. beginner and basic operation to make plain our arguments. And although At our call, hackers, at our call, available as Thanks to its sheer extensibility, and the long gestation of such shared code historic variants, such as XEmacs, and the plain old GNU model under X works, it has become all things to all people, and thus increasingly difficult can make use of mouse and menus, our pure GNU Emacs, with an -nv We’ll throw out those dirty licenses long as user/ to pin down. Extendibility and customisation is by way of suitably self option appended if under glorious X, is a keystroke only affair, with Meta Ever more, hackers, ever more. coders agreed documenting Emacs Lisp (elisp) files. Emacs grows and grows in highly or Alt key, written as M- with accompanying keypress, in concert with modular fashion; a portable, vast architecture composed of collective code CTRL, as C-, doing most of the fretwork. Again it’s a question of Join us now and share the software; to “give back modules. In short Emacs offers a totally integrated and readily configurable speed and flexibility. The CTRL key is used for most common You’ll be free, hackers, you’ll be free. environment for all manner of common and uncommon coding, text- tasks, such as working with files, with really obvious all extensions processing and computing tasks. operations bound to a single CTRL and keystroke GNU Emacs can be used to write and edit texts such as this one, to option, for example C-p which moves us to the enera. Home of the brave coder but very they made, so test, write and run code, edit web pages transparently across servers, previous line. Next up are less common Meta much not located anywhere near the land as to help update and publish blog entries, organise thoughts and notes in new ways single keystrokes, and then we have C-x Gof the free; Genera, the legendary OS and and as an entry point for manipulation of the all powerful Unix shell. The list followed by further keystrokes, for example fully featured development environment running on EMACS can readily be extended. C-x C-f to retrieve a file, C-c again followed the historic Symbolics Lisp machines, and later, in Eminently customisable, iterating over both the real world and potential by other keyings and M-x command- the guise of Open Genera, on Alpha hardware. improve,” uses of GNU Emacs would easily occupy a vast volume. Interface is one name-in-full all in descending order of Genera presented the ultimate interface running morphed into category which could well be used to classify such extensions; both as importance. on top of an extremely interrogative operating interface to the underlying OS and interface to tasks. In the first instance, Before blindly walking into the system. Despite being highly proprietary, and the practical we have shell access and, even eshell, a command shell running on top of thicket of dense, interactive indeed marking an historic split which, as we’ll Emacs. GNU Emacs provides a non-visual interface to integrated browsing tutorial, accessed by way of C-h see, lies at the very birth of free software, Genera’s GPL and mail functionalities for disabled users, and also offers up new interfaces t under most installs or failing users could dig deep into highly exposed or subroutine for editing, managing and playing sound files for those less enamoured of that M-x help-with-tutorial, extruded code within a tightly integrated mesh of the GUI. We know well of GNU Emacs as interface to code, as superlative one keystroke well worth remembering is C-g, which should get you out of all manner of recursive The age-old adage that “it’s just a tool,” should hopefully minibuffer nastiness. Such tutorial material makes plain basic receive its final death knell thanks to the superb extensibility operation, along with key notions of buffer, and porous nature of this supreme coding environment temporary files for editing, and practically treats of modes, OS, GUI and object oriented Lisp language. Code IDE (Integrated Development Environment), yet perhaps receiving less frames and split was the interface, and at the heart of such If we view attention is Emacs as the interface to various interpreters, opening up a screen methods. interaction was an Emacs, a supremely flexible vast new realm of live coding. Lisp by way of SLIME is an obvious example, Customisation with macro based text editor whose current free operating but we can also interface to the increasingly popular Smalltalk-like .emacs file specifying incarnation is GNU. Indeed the Lisp Machines had system as multimedia environment, SuperCollider, using SCEL (SuperCollider Emacs). peculiarities and two Emacs, EINE and ZWEI, morphing into If we view operating system as primarily interface, looking both ways to personality, macros ZMACS under Symbolics. Echoing the recursion primarily embrace lowly code and high level task, Emacs can well be viewed as a wrapping up wrapped up in the GNU acronym, EINE stands for prime example of a seriously advanced OS.