Free as in Freedom - Sam Williams (read this if .TXT) 📗
- Author: Sam Williams
- Performer: 0596002874
Book online «Free as in Freedom - Sam Williams (read this if .TXT) 📗». Author Sam Williams
For Steele, a soft-spoken hacker who interacted with Stallman infrequently, the memory still sticks out.
Looking over another hacker’s shoulder while he worked was a common activity at the AI Lab. Stallman, the TECO
maintainer at the lab, deemed Steele’s work “interesting” and quickly set off to complete it.
“As I like to say, I did the first 0.001 percent of the implementation, and Stallman did the rest,” says Steele with a laugh.
The project’s new name, Emacs, came courtesy of Stallman. Short for “editing macros,” it signified the evolutionary transcendence that had taken place during the macros explosion two years before. It also took advantage of a gap in the software programming lexicon.
Noting a lack of programs on ITS starting with the letter “E,” Stallman chose Emacs, making it possible to reference the program with a single letter. Once again, the hacker lust for efficiency had left its mark.
In the course of developing a standard system of macro commands, Stallman and Steele had to traverse a political tightrope. In creating a standard program, Stallman was in clear violation of the fundamental hacker tenet-“promote decentralization.” He was also threatening to hobble the very flexibility that had fueled TECO’s explosive innovation in the first place.
“On the one hand, we were trying to make a uniform command set again; on the other hand, we wanted to keep it open ended, because the programmability was important,” recalls Steele.
To solve the problem, Stallman, Steele, and fellow hackers David Moon and Dan Weinreib limited their standardization effort to the WYSIWYG commands that controlled how text appeared onscreen. The rest of the Emacs effort would be devoted to retaining the program’s Tinker Toy-style extensibility.
Stallman now faced another conundrum: if users made changes but didn’t communicate those changes back to the rest of the community, the Tower of Babel effect would simply emerge in other places. Falling back on the hacker doctrine of sharing innovation, Stallman embedded a statement within the source code that set the terms of use. Users were free to modify and redistribute the code on the condition that they gave back all the extensions they made. Stallman dubbed it the ” Emacs Commune.” Just as TECO had become more than a simple editor, Emacs had become more than a simple software program. To Stallman, it was a social contract. In an early memo documenting the project, Stallman spelled out the contract terms. “EMACS,” he wrote, “was distributed on a basis of communal sharing, which means that all improvements must be given back to me to be incorporated and distributed.“See Stallman (1979): #SEC34.
Not everybody accepted the contract. The explosive innovation continued throughout the decade, resulting in a host of Emacs-like programs with varying degrees of cross-compatibility. A few cited their relation to Stallman’s original Emacs with humorously recursive names: Sine (Sine is not Emacs), Eine (Eine is not Emacs), and Zwei (Zwei was Eine initially). As a devoted exponent of the hacker ethic, Stallman saw no reason to halt this innovation through legal harassment. Still, the fact that some people would so eagerly take software from the community chest, alter it, and slap a new name on the resulting software displayed a stunning lack of courtesy.
Such rude behavior was reflected against other, unsettling developments in the hacker community. Brian Reid’s 1979 decision to embed “time bombs” in Scribe, making it possible for Unilogic to limit unpaid user access to the software, was a dark omen to Stallman.
“He considered it the most Nazi thing he ever saw in his life,” recalls Reid. Despite going on to later Internet fame as the cocreator of the Usenet alt heirarchy, Reid says he still has yet to live down that 1979 decision, at least in Stallman’s eyes. “He said that all software should be free and the prospect of charging money for software was a crime against humanity.“In a 1996 interview with online magazine MEME ,
Stallman cited Scribe’s sale as irksome, but hesitated to mention Reid by name. “The problem was nobody censured or punished this student for what he did,”
Stallman said. “The result was other people got tempted to follow his example.” See MEME 2.04.
http://memex.org/meme2-04.html
Although Stallman had been powerless to head off Reid’s sale, he did possess the ability to curtail other forms of behavior deemed contrary to the hacker ethos. As central source-code maintainer for the Emacs “commune,”
Stallman began to wield his power for political effect.
During his final stages of conflict with the administrators at the Laboratory for Computer Science over password systems, Stallman initiated a software ” strike,“See Steven Levy, Hackers (Penguin USA [paperback],
1984): 419.
refusing to send lab members the latest version of Emacs until they rejected the security system on the lab’s computers. The move did little to improve Stallman’s growing reputation as an extremist, but it got the point across: commune members were expected to speak up for basic hacker values.
“A lot of people were angry with me, saying I was trying to hold them hostage or blackmail them, which in a sense I was,” Stallman would later tell author Steven Levy. “I was engaging in violence against them because I thought they were engaging in violence to everyone at large.”
Over time, Emacs became a sales tool for the hacker ethic. The flexibility Stallman and built into the software not only encouraged collaboration, it demanded it. Users who didn’t keep abreast of the latest developments in Emacs evolution or didn’t contribute their contributions back to Stallman ran the risk of missing out on the latest breakthroughs. And the breakthroughs were many. Twenty years later, users had modified Emacs for so many different uses-using it as a spreadsheet, calculator, database, and web browser-that later Emacs developers adopted an overflowing sink to represent its versatile functionality. “That’s the idea that we wanted to convey,” says Stallman. “The amount of stuff it has contained within it is both wonderful and awful at the same time.”
Stallman’s AI Lab contemporaries are more charitable.
Hal Abelson, an MIT grad student who worked with Stallman during the 1970s and would later assist Stallman as a charter boardmember of the Free Software Foundation, describes Emacs as “an absolutely brilliant creation.” In giving programmers a way to add new software libraries and features without messing up the system, Abelson says, Stallman paved the way for future large-scale collaborative software projects. “Its structure was robust enough that you’d have people all over the world who were loosely collaborating [and]
contributing to it,” Abelson says. “I don’t know if that had been done before.“In writing this chapter, I’ve elected to focus more on
the social significance of Emacs than the software significance. To read more about the software side, I recommend Stallman’s 1979 memo. I particularly recommend the section titled “Research Through Development of Installed Tools” (#SEC27). Not only is it accessible to the nontechnical reader, it also sheds light on how closely intertwined Stallman’s political philosophies are with his software-design philosophies.
A sample excerpt follows: EMACS could not have been reached by a process of careful design, because such processes arrive only at goals which are visible at the outset, and whose desirability is established on the bottom line at the outset. Neither I nor anyone else visualized an extensible editor until I had made one, nor appreciated its value until he had experienced it.
EMACS exists because I felt free to make individually useful small improvements on a path whose end was not in sight.
Guy Steele expresses similar admiration. Currently a research scientist for Sun Microsystems, he remembers Stallman primarily as a “brilliant programmer with the ability to generate large quantities of relatively bug-free code.” Although their personalities didn’t exactly mesh, Steele and Stallman collaborated long enough for Steele to get a glimpse of Stallman’s intense coding style. He recalls a notable episode in the late 1970s when the two programmers banded together to write the editor’s “pretty print” feature.
Originally conceived by Steele, pretty print was another keystroke-triggerd feature that reformatted Emacs’ source code so that it was both more readable and took up less space, further bolstering the program’s WYSIWIG qualities. The feature was strategic enough to attract Stallman’s active interest, and it wasn’t long before Steele wrote that he and Stallman were planning an improved version.
“We sat down one morning,” recalls Steele. “I was at the keyboard, and he was at my elbow,” says Steele. “He was perfectly willing to let me type, but he was also telling me what to type.
The programming session lasted 10 hours. Throughout that entire time, Steele says, neither he nor Stallman took a break or made any small talk. By the end of the session, they had managed to hack the pretty print source code to just under 100 lines. “My fingers were on the keyboard the whole time,” Steele recalls, “but it felt like both of our ideas were flowing onto the screen. He told me what to type, and I typed it.”
The length of the session revealed itself when Steele finally left the AI Lab. Standing outside the building at 545 Tech Square, he was surprised to find himself surrounded by nighttime darkness. As a programmer, Steele was used to marathon coding sessions. Still, something about this session was different. Working with Stallman had forced Steele to block out all external stimuli and focus his entire mental energies on the task at hand. Looking back, Steele says he found the Stallman mind-meld both exhilarating and scary at the same time. “My first thought afterward was: it was a great experience, very intense, and that I never wanted to do it again in my life.”
A Stark Moral Choice
On September 27, 1983, computer programmers logging on to the Usenet newsgroup net.unix-wizards encountered an unusual message. Posted in the small hours of the morning, 12:30 a.m. to be exact, and signed by rms@mit-oz , the message’s subject line was terse but attention-grabbing. “New UNIX implementation,” it read.
Instead of introducing a newly released version of Unix, however, the message’s opening paragraph issued a call to arms: Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu’s Not Unix), and give it away free to everyone who can use it. Contributions of time, money, programs and equipment are greatly needed.1 To an experienced Unix developer, the message was a mixture of idealism and hubris. Not only did the author pledge to rebuild the already mature Unix operating system from the ground up, he also proposed to improve it in places. The new GNU system, the author predicted, would carry all the usual components-a text editor, a shell program to run Unix-compatible applications, a compiler, “and a few other things.“See Richard Stallman, “Initial GNU
Announcement”
(September 1983).
http://www.gnu.ai.mit.edu/gnu/initial-announcement.html It would also contain many enticing features that other Unix systems didn’t yet offer: a graphic user interface based on the Lisp programming language, a crashproof file system, and networking protocols built according to MIT’s internal networking system.
“GNU will be able to run Unix programs, but will not be identical to Unix,” the author wrote. “We will make all improvements that are convenient, based on our experience with other operating systems.”
Anticipating a skeptical response on some readers’
part, the author made sure to follow up his operating-system outline with a brief biographical sketch titled, “Who am I?”: I am Richard Stallman, inventor of the original much-imitated EMACS editor, now at the Artificial Intelligence Lab at MIT. I have worked extensively on compilers, editors, debuggers, command interpreters, the Incompatible Timesharing System and the Lisp Machine operating system. I pioneered terminal-independent display support in ITS.
In addition I have implemented one crashproof file system and two window systems for Lisp machines. As
Comments (0)