1
0
Fork 0

Chapter 6 translation

primary v0.6
dump_stack() 2019-06-30 15:13:21 +00:00
parent ef70c74be8
commit 0b31cae82d
Signed by: dump_stack
GPG Key ID: BE44DA8C062D87DC
1 changed files with 52 additions and 56 deletions

View File

@ -7,117 +7,113 @@
%% no Back-Cover Texts. A copy of the license is included in the
%% file called ``gfdl.tex''.
\chapter{Коммуна Emacs}
\chapter{The Emacs Commune}
Лаборатория ИИ в 70-х годах была особенным местом, в этом сходились все. Здесь проходили передовые исследования, здесь работали сильнейшие специалисты, так что в компьютерном мире Лаборатория была постоянно на слуху. А её хакерская культура и мятежный дух создавали вокруг неё ореол священного места. Только когда из Лаборатории ушли многие учёные и \enquote{рок-звёзды программирования}, хакеры ощутили всю мифологичность и эфемерность того мира, в котором они жили.
The AI Lab of the 1970s was by all accounts a special place. Cutting-edge projects and top-flight researchers gave it an esteemed position in the world of computer science. The internal hacker culture and its anarchic policies lent a rebellious mystique as well. Only later, when many of the lab's scientists and software superstars had departed, would hackers fully realize the unique and ephemeral world they had once inhabited.
\enquote{Лаборатория была для нас чем-то вроде Эдема, -- рассказывает Столлман в статье \textit{Forbes} 1998 года, -- никому даже в голову не приходило отгородиться от других сотрудников вместо того, чтобы работать сообща}.\endnote{Josh McHugh, \enquote{For the Love of Hacking,} \textit{Forbes} (August 10, 1998), \url{http://www.forbes.com/forbes/1998/0810/6203094a.html}.}
``It was a bit like the Garden of Eden,'' says Stallman, summing up the lab and its software-sharing ethos in a 1998 \textit{Forbes} article. ``It hadn't occurred to us not to cooperate.''\endnote{See Josh McHugh, ``For the Love of Hacking,'' \textit{Forbes} (August 10, 1998), \url{http://www.forbes.com/forbes/1998/0810/6203094a.html}.}
Такие описания в духе мифологии подчёркивают важный факт: 9 этаж Техносквера был для многих хакеров не только рабочим местом, но и родным домом.
Such mythological descriptions, while extreme, underline an important fact. The ninth floor of 545 Tech Square was more than a workplace for many. For hackers such as Stallman, it was home.
Слово \enquote{дом} использовал сам Ричард Столлман, а мы прекрасно знаем, насколько точен и осторожен он в высказываниях. Пройдя через \enquote{холодную войну} с собственными родителями, Ричард до сих пор считает, что до Карриер-Хауса, его Гарвардского общежития, родного дома у него просто не было. По его словам, в гарвардские годы его мучил только один страх -- оказаться исключённым. Я выразил сомнение, что у такого блестящего студента, как Столлман, был риск вылететь. Но Ричард напомнил мне о своих характерных проблемах с дисциплиной.
The word ``home'' is a weighted term in the Stallman lexicon. In a pointed swipe at his parents, Stallman, to this day, refuses to acknowledge any home before Currier House, the dorm he lived in during his days at Harvard. He has also been known to describe leaving that home in tragicomic terms. Once, while describing his years at Harvard, Stallman said his only regret was getting kicked out. It wasn't until I asked Stallman what precipitated his ouster, that I realized I had walked into a classic Stallman setup line.
\enquote{В Гарварде очень ценят дисциплину, и если ты пропускаешь пары, тебя быстро попросят на выход}, -- сказал он.
``At Harvard they have this policy where if you pass too many classes they ask you to leave,'' Stallman says.
With no dorm and no desire to return to New York, Stallman followed a path blazed by Greenblatt, Gosper, Sussman, and the many other hackers before him. Enrolling at MIT as a grad student, Stallman rented a room in an apartment in nearby Cambridge but soon viewed the AI Lab itself as his de facto home. In a 1986 speech, Stallman recalled his memories of the AI Lab during this period:
После окончания Гарварда Столлман лишился права на общежитие, а желания возвращаться к родителям в Нью-Йорк у него никогда и не было. Так что он пошёл по дорожке, проторённой Гринблаттом, Госпером, Сассменом и многими другими хакерами -- поступил в аспирантуру МТИ, снял рядом комнату в Кембридже, и большую часть времени стал проводить в Лаборатории ИИ. В своей речи 1986 года Ричард так описал этот период:
\begin{quote}
I may have done a little bit more living at the lab than most people, because every year or two for some reason or other I'd have no apartment and I would spend a few months living at the lab. And I've always found it very comfortable, as well as nice and cool in the summer. But it was not at all uncommon to find people falling asleep at the lab, again because of their enthusiasm; you stay up as long as you possibly can hacking, because you just don't want to stop. And then when you're completely exhausted, you climb over to the nearest soft horizontal surface. A very informal atmosphere.\endnote{See Stallman (1986).}
Наверное, я немного больше других имею оснований сказать, что жил в Лаборатории, потому что каждый год-два я по разным причинам лишался жилья, и в общем счёте я прожил в Лаборатории несколько месяцев. И мне там всегда было очень комфортно, особенно в жару летом, потому что внутри было прохладно. Но вообще это было в порядке вещей, что люди ночевали в Лаборатории, хотя бы из-за бешеного энтузиазма, что владел тогда всеми нами. Хакер порой просто не мог остановиться и работал за компьютером до полного истощения, после чего отползал на ближайшую мягкую горизонтальную поверхность. Словом, очень непринуждённая, домашняя атмосфера.\endnote{Stallman (1986).}
\end{quote}
The lab's home-like atmosphere could be a problem at times. What some saw as a dorm, others viewed as an electronic opium den. In the 1976 book \textit{Computer Power and Human Reason}, MIT researcher Joseph Weizenbaum offered a withering critique of the ``computer bum,'' Weizenbaum's term for the hackers who populated computer rooms such as the AI Lab. ``Their rumpled clothes, their unwashed hair and unshaved faces, and their uncombed hair all testify that they are oblivious to their bodies and to the world in which they move,'' Weizenbaum wrote. ``[Computer bums] exist, at least when so engaged, only through and for the computers.''\endnote{See Joseph Weizenbaum, \textit{Computer Power and Human Reason: From Judgment to Calculation} (W. H. Freeman, 1976): 116.}
Но эта домашняя атмосфера порой создавала проблемы. В том, что некоторые считали домом, другие видели притон электронного опиума. В книге \enquote{Сила компьютера и мотивация человека} научный сотрудник МТИ Джозеф Вейзенбаум в резком тоне раскритиковал \enquote{компьютерный взрыв} -- так он назвал заселение хакерами компьютерных центров вроде Лаборатории ИИ. \enquote{Их мятая одежда, немытые волосы и небритые лица говорят о том, что они полностью забросили себя в пользу компьютеров, и не хотят видеть, к чему это может их привести, -- писал Вейзенбаум, -- эти компьютерные бичи живут только ради компьютеров}. \endnote{Joseph Weizenbaum, \textit{Computer Power and Human Reason: From Judgment to Calculation} (W. H. Freeman, 1976): 116.}
Almost a quarter century after its publication, Stallman still bristles when hearing Weizenbaum's ``computer bum'' description, discussing it in the present tense as if Weizenbaum himself was still in the room. ``He wants people to be just professionals, doing it for the money and wanting to get away from it and forget about it as soon as possible,'' Stallman says. ``What he sees as a normal state of affairs, I see as a tragedy.''
Спустя почти четверть века Столлман всё ещё выходит из себя, когда слышит выражение Вейзенбаума: \enquote{компьютерные бичи}. \enquote{Он хочет, чтобы мы все были всего лишь профессионалами -- делали работу ради денег, в означенное время вставали и уходили, выкинув из головы всё, что с нею связано, -- говорит Столлман так яростно, будто Вейзенбаум рядом и может его услышать, -- но то, что он считает нормальным порядком вещей, я считаю удручающей трагедией}.
Hacker life, however, was not without tragedy. Stallman characterizes his transition from weekend hacker to full-time AI Lab denizen as a series of painful misfortunes that could only be eased through the euphoria of hacking. As Stallman himself has said, the first misfortune was his graduation from Harvard. Eager to continue his studies in physics, Stallman enrolled as a graduate student at MIT. The choice of schools was a natural one. Not only did it give Stallman the chance to follow the footsteps of great MIT alumni: William Shockley ('36), Richard P. Feynman ('39), and Murray Gell-Mann ('51), it also put him two miles closer to the AI Lab and its new PDP-10 computer. ``My attention was going toward programming, but I still thought, well, maybe I can do both,'' Stallman says.
Впрочем, жизнь хакера тоже не лишена трагедии. Сам Ричард утверждает, что его превращение из хакера-по-выходным в хакера-24/7 -- результат целой череды болезненных эпизодов юношества, от которых получалось спастись лишь в эйфории хакерства. Первой такой болью стало окончание Гарварда, оно резко меняло привычный, спокойный уклад жизни. Столлман поступил в аспирантуру МТИ на отделение физики, чтобы пойти по стопам великих Ричарда Фейнмана, Вильяма Шокли и Мюррея Гел-Манна, и чтобы не пришлось ездить 2 лишних мили до Лаборатории ИИ и новенького PDP-10. \enquote{Почти всё своё внимание я по-прежнему уделял программированию, но думал, может, попутно смогу заниматься физикой}, -- рассказывает Столлман.
Toiling in the fields of graduate-level science by day and programming in the monastic confines of the AI Lab by night, Stallman tried to achieve a perfect balance. The fulcrum of this geek teeter-totter was his weekly outing with the Folk-Dance Club, his one social outlet that guaranteed at least a modicum of interaction with the opposite sex. Near the end of that first year at MIT, however, disaster struck. A knee injury forced Stallman to stop dancing. At first, Stallman viewed the injury as a temporary problem; he went to dancing and chatted with friends while listening to the music he loved. By the end of the summer, when the knee still ached and classes reconvened, Stallman began to worry. ``My knee wasn't getting any better,'' Stallman recalls, ``which meant I had to expect to be unable to dance, permanently. I was heartbroken.''
Изучая физику днём и хакерствуя ночью, Ричард старался достичь идеального баланса. Точкой опоры этих гиковских качелей были еженедельные встречи клуба народных танцев. Это была его единственная социальная связь с противоположным полом и вообще миром обычных людей. Однако ближе к концу первого курса в МТИ случилось несчастье -- Ричард повредил колено и не смог танцевать. Он думал, что это временно, и продолжал ходить в клуб, слушать музыку, болтать с друзьями. Но кончилось лето, колено всё ещё болело и нога плохо действовала. Тогда Столлман заподозрил неладное и забеспокоился. \enquote{Я понял, что лучше уже не станет, -- вспоминает он, -- и что я больше никогда не смогу танцевать. Меня это просто убило}.
With no dorm and no dancing, Stallman's social universe imploded. Dancing was the only situation in which he had found success in meeting women and occasionally even dating them. No more dancing ever was painful enough, but it also meant, it seemed, no more dates ever.
Без общежития Гарварда и без танцев вселенная социальной жизни Столлмана тут же схлопнулась. Танцы -- единственное, что не только связывало его с людьми, но и давало реальную возможность встречаться с женщинами. Нет танцев -- нет свиданий, и это особенно сильно расстроило Ричарда.
``I felt basically that I'd lost all my energy,'' Stallman recalls. ``I'd lost my energy to do anything but what was most immediately tempting. The energy to do something else was gone. I was in total despair.''
\enquote{Большую часть времени я был совершенно подавлен, -- описывает Ричард этот период, -- я ничего не мог и не хотел, кроме хакерства. Полнейшее отчаяние}.
Stallman retreated from the world even further, focusing entirely on his work at the AI Lab. By October, 1975, he dropped out of MIT and out of physics, never to return to studies. Software hacking, once a hobby, had become his calling.
Он почти перестал пересекаться с миром, полностью уйдя в работу. К октябрю 1975 года он фактически забросил физику и учёбу в МТИ. Программирование из хобби превратилось в главное и единственное занятие всей жизни.
Looking back on that period, Stallman sees the transition from full-time student to full-time hacker as inevitable. Sooner or later, he believes, the siren's call of computer hacking would have overpowered his interest in other professional pursuits. ``With physics and math, I could never figure out a way to contribute,'' says Stallman, recalling his struggles prior to the knee injury. ``I would have been proud to advance either one of those fields, but I could never see a way to do that. I didn't know where to start. With software, I saw right away how to write things that would run and be useful. The pleasure of that knowledge led me to want to do it more.''
Сейчас Ричард говорит, что это было неизбежно. Рано или поздно зов сирен хакерства пересилил бы все остальные влечения. \enquote{В математике и физике у меня не получалось создать что-то своё, я даже не представлял себе, как это делается. Я только комбинировал уже созданное, и меня это не устраивало. В программировании же я сразу понял, как создавать новые вещи, и самое главное -- ты сразу видишь, что они работают, и что они полезны. Это приносит огромное удовольствие, и программировать хочется снова и снова}.
Stallman wasn't the first to equate hacking with pleasure. Many of the hackers who staffed the AI Lab boasted similar, incomplete academic résumés. Most had come in pursuing degrees in math or electrical engineering only to surrender their academic careers and professional ambitions to the sheer exhilaration that came with solving problems never before addressed. Like St. Thomas Aquinas, the scholastic known for working so long on his theological summae that he sometimes achieved spiritual visions, hackers reached transcendent internal states through sheer mental focus and physical exhaustion. Although Stallman shunned drugs, like most hackers, he enjoyed the ``high'' that came near the end of a 20-hour coding bender.
Столлман не первый, кто связывает хакерство с сильнейшим удовольствием. Многие хакеры Лаборатории ИИ тоже могут похвастаться заброшенной учёбой и недополученными степенями в математике или электротехнических областях -- только потому, что в чистом восторге программирования утонули все академические амбиции. Говорят, что Фома Аквинский своими фанатичными занятиями схоластикой доводил себя до видений и ощущения бога. Хакеры достигали схожих состояний на грани неземной эйфории после многочасовой концентрации на виртуальных процессах. Наверное, поэтому Столлман и большинство хакеров избегали наркотиков -- после часов двадцати хакерства они были всё равно что \enquote{под кайфом}.
Perhaps the most enjoyable emotion, however, was the sense of personal fulfillment. When it came to hacking, Stallman was a natural. A childhood's worth of late-night study sessions gave him the ability to work long hours with little sleep. As a social outcast since age 10, he had little difficulty working alone. And as a mathematician with a built-in gift for logic and foresight, Stallman possessed the ability to circumvent design barriers that left most hackers spinning their wheels.
Но ещё приятнее было чувствовать себя успешным в любимой области. Хакерство было естественным продолжением Столлмана. В детстве он привык учить уроки по ночам, так что ему нужно было совсем немного времени для сна. Долгие годы на положении изгоя приучили его работать в одиночку. А мощное математическое мышление позволяло ему заранее видеть трудности и изящно обходить их на полном ходу, тогда как многие другие хакеры начинали буксовать.
``He was special,'' recalls Gerald Sussman, an AI Lab faculty member and (since 1985) board member of the Free Software Foundation. Describing Stallman as a ``clear thinker and a clear designer,'' Sussman invited Stallman to join him in AI research projects in 1973 and 1975, both aimed at making AI programs that could analyze circuits the way human engineers do it. The project required an expert's command of Lisp, a programming language built specifically for AI applications, as well as understanding (supplied by Sussman) of how a human might approach the same task. The 1975 project pioneered an AI technique called dependency-directed backtracking or truth maintenance, which consists of positing tentative assumptions, noticing if they lead to contradictions, and reconsidering the pertinent assumptions if that occurs.
\enquote{У Ричарда феноменальный интеллект. Он очень ясно мыслит и конструирует стройные системы}, -- говорит Джеральд Сассмен, сотрудник Лаборатории и с 1985 года -- участник фонда свободного ПО. Оценив Столлмана по достоинству, он приглашал его работать в исследовательских ИИ-проектах в 1973 и 1975 году. Там требовались глубокие познания языка LISP, а также понимание, как вообще можно подойти к задаче. В результате проекта 1975 года появился ИИ, основанный на откате с учётом зависимостей -- проверке высказываний на противоречия и их решении в случае обнаружения таковых.
When he wasn't working on official projects such as these, Stallman devoted his time to pet projects. It was in a hacker's best interest to improve the lab's software infrastructure, and one of Stallman's biggest pet projects during this period was the lab's editor program TECO.
В свободное от официальной работы время Столлман занимался личными проектами. Одним из главных желаний Ричарда было усовершенствовать программную инфраструктуру Лаборатории, в частности -- доработать текстовый редактор TECO.
The story of Stallman's work on TECO during the 1970s is inextricably linked with Stallman's later leadership of the free software movement. It is also a significant stage in the history of computer evolution, so much so that a brief recapitulation of that evolution is necessary. During the 1950s and 1960s, when computers were first appearing at universities, computer programming was an incredibly abstract pursuit. To communicate with the machine, programmers created a series of punch cards, with each card representing an individual software command. Programmers would then hand the cards over to a central system administrator who would then insert them, one by one, into the machine, waiting for the machine to spit out a new set of punch cards, which the programmer would then decipher as output. This process, known as ``batch processing,'' was cumbersome and time consuming. It was also prone to abuses of authority. One of the motivating factors behind hackers' inbred aversion to centralization was the power held by early system operators in dictating which jobs held top priority.
Эпопея Столлмана и TECO 70-х годов тесно связана с последующим основанием движения свободного софта. Это очень важный эпизод, так что стоит рассказать о нём подробнее. Прежде всего, нужно понять, что нынешняя лёгкость и простота написания текстов и программ на компьютерах была далеко не всегда. В 50-х, 60-х годах, когда компьютеры впервые появились в университетах, компьютерное программирование было очень абстрактным, долгим и утомительным занятием. Взаимодействие с компьютером проходило через огромные наборы перфокарт, на которых программист набирал программу, определённым образом пробивая отверстия на каждой перфокарте. Затем он передавал перфокарты системному администратору, тот вставлял их одну за одной в компьютер, ждал конца вычислений, получал перфокарты с набранным на них выводом программы и отдавал программисту. Этот процесс назывался \enquote{пакетной обработкой} и был очень медленным. К тому же, многие системные администраторы злоупотребляли своим положением, произвольно меняя очередь обработки или вовсе отказывая программистам. Именно из-за этого многие ранние хакеры возненавидели власть администраторов.
In 1962, computer scientists and hackers involved in MIT's Project MAC, an early forerunner of the AI Lab, took steps to alleviate this frustration. Time-sharing, originally known as ``time stealing,'' made it possible for multiple programs to take advantage of a machine's operational capabilities. Teletype interfaces also made it possible to communicate with a machine not through a series of punched holes but through actual text. A programmer typed in commands and read the line-by-line output generated by the machine.
В 1962 году хакеры и научные сотрудники, привлечённые к проекту MAC в Лаборатории ИИ, взялись за эту проблему. Принцип разделения времени, который поначалу называли \enquote{похищением времени}, делал возможным выполнять на компьютере сразу несколько процессов. Для вывода результатов приспособили телетайпы, чтобы программист сразу мог читать нормальный текст, а не расшифровывать таблицы с пробитыми отверстиями. Программист сам набирал команды и читал построчный текстовый вывод.
During the late 1960s, interface design made additional leaps. In a famous 1968 lecture, Doug Engelbart, a scientist then working at the Stanford Research Institute, unveiled a prototype of the modern graphical interface. Rigging up a television set to the computer and adding a pointer device which Engelbart dubbed a ``mouse,'' the scientist created a system even more interactive than the time-sharing system developed at MIT. Treating the video display like a high-speed printer, Engelbart's system gave a user the ability to move the cursor around the screen and see the cursor position updated by the computer in real time. The user suddenly had the ability to position text anywhere on the screen.
На исходе десятилетия в интерфейсах произошёл качественный скачок -- в 1968 году Дуглас Энгельбарт, учёный Стэнфордского института, представил прототип графического интерфейса. Подключив к компьютеру телевизор и специальный манипулятор, называнный \enquote{мышью}, Энгельбарт показал совершенно недосягаемый уровень интерактивности -- с компьютером можно было работать в режиме реального времени. Пользователь мог в любой момент добавить, изменить, удалить текст в любом месте экрана.
Such innovations would take another two decades to make their way into the commercial marketplace. Still, by the 1970s, video screens had started to replace teletypes as display terminals, creating the potential for full-screen -- as opposed to line-by-line -- editing capabilities.
Это изобретение могло бы ещё два десятка лет пробиваться на рынок, но уже в 70-х годах телеэкраны вовсю начали вытеснять телетайпы, реализуя полноэкранное редактирование вместо построчного.
One of the first programs to take advantage of this full-screen capability was the MIT AI Lab's TECO. Short for Text Editor and COrrector, the program had been upgraded by hackers from an old teletype line editor for the lab's PDP-6 machine.\endnote{According to the \textit{Jargon File}, TECO's name originally stood for Tape Editor and Corrector. See \url{http://www.catb.org/jargon/html/T/TECO.html}.}
TECO (сокращение от слов \enquote{текстовый редактор и корректор}) стал одной из первых программ с поддержкой полноэкранного редактирования. Её сделали из старого построчного редактора, разработанного под телетайпы на PDP-6. \endnote{Согласно \textit{Jargon File}, TECO поначалу означал \enquote{Tape Editor and Corrector\enquote{, т.е. ленточный редактор, а не текстовый.}}}
TECO was a substantial improvement over old editors, but it still had its drawbacks. To create and edit a document, a programmer had to enter a series of commands specifying each edit. It was an abstract process. Unlike modern word processors, which update text with each keystroke, TECO demanded that the user enter an extended series of editing instructions followed by an ``end of command string'' sequence just to change the text. Over time, a hacker grew proficient enough to make large changes elegantly in one command string, but as Stallman himself would later point out, the process required ``a mental skill like that of blindfold chess.''\endnote{See Richard Stallman, ``EMACS: The Extensible, Customizable, Display Editor,'' AI Lab Memo (1979). An updated HTML version of this memo, from which I am quoting, is available at \url{http://www.gnu.org/software/emacs/emacs-paper.html}.}
Этот редактор был мощнее и удобнее прежних, но всё ещё недостаточно удобным и мощным. Например, чтобы создать документ и начать работать над ним, нужно было ввести целую серию команд и символ конца строки. TECO не умел реагировать на каждое нажатие клавиши, как делают сегодняшние текстовые редакторы. Опытные хакеры наловчились вводить множество команд одной строкой, но назвать это удобным язык не поворачивался. Столлман сравнивал это с \enquote{игрой в шахматы с завязанными глазами}. \endnote{Источник: Richard Stallman, \enquote{EMACS: The Extensible, Customizable, Display Editor,} AI Lab Memo (1979), \url{http://www.gnu.org/software/emacs/emacs-paper.html}}.
To facilitate the process, AI Lab hackers had built a system that displayed both the text and the command string on a split screen. Despite this innovative hack, editing with TECO still required skill and planning.
Для упрощения работы хакеры Лаборатории ИИ изменили программу так, чтобы она делила экран на 2 части, в одной отображался текст, в другой -- командная строка. Но даже с этой удобной функцией работа в TECO была далека от комфортной.
TECO wasn't the only full-screen editor floating around the computer world at this time. During a visit to the Stanford Artificial Intelligence Lab in 1976, Stallman encountered an edit program named E. The program contained an internal feature, which allowed a user to update display text after each command keystroke. In the language of 1970s programming, E was one of the first rudimentary WYSIWYG editors. Short for ``what you see is what you get,'' WYSIWYG meant that a user could manipulate the file by moving through the displayed text, as opposed to working through a back-end editor program.''\endnote{See Richard Stallman, ``Emacs the Full Screen Editor'' (1987), \url{http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt}.}
TECO был не единственной программой с поддержкой полноэкранного редактирования. Когда Столлман посетил лабораторию информатики Стэнфорда в 1976 году, он увидел там редактор, который назывался просто Е. В нём была функция обновления экрана при нажатии на определённую клавишу. В мире программирования редактор Е был одним из первых, что работал по принципу \enquote{что ты видишь, то и получаешь} (WYSIWYG). Этот принцип позволял работать с файлом напрямую, а не через посредника, которому нужно отдавать команды. \endnote{Richard Stallman, \enquote{Emacs the Full Screen Editor} (1987)}.
Impressed by the hack, Stallman looked for ways to expand TECO's functionality in similar fashion upon his return to MIT. He found a TECO feature called Control-R, written by Carl Mikkelson and named after the two-key combination that triggered it. Mikkelson's hack switched TECO from its usual abstract command-execution mode to a more intuitive keystroke-by-keystroke mode. The only flaws were that it used just five lines of the screen and was too inefficient for real use. Stallman reimplemented the feature to use the whole screen efficiently, then
extended it in a subtle but significant way. He made it possible to attach TECO command strings, or ``macros,'' to keystrokes. Advanced TECO users already saved macros in files; Stallman's hack made it possible to call them up fast. The result was a user-programmable WYSIWYG editor. ``That was the real breakthrough,'' says Guy Steele, a fellow AI Lab hacker at the time.\endnote{\textit{Ibid.}}
Впечатлённый этим изящным хаком, Столлман по возвращении в МТИ задумался о том, чтобы улучшить TECO в похожем ключе. В коде редактора он нашёл функцию Control-R, написанную Карлом Миккельсоном, которая вызывалась нажатием одноимённых клавиш. Эта функция переключала TECO в более интерактивный режим, но ограничивалась только 5 строками, и потому не давала заметной разницы с обычным режимом. Столлман отредактировал функцию так, чтобы можно было использовать весь экран, и расширил её одной небольшой, но очень мощной возможностью задавать произвольные команды TECO на произвольные комбинации клавиш -- то есть, добавил в редактор так называемые \enquote{макросы}. У опытных пользователей TECO уже скопились файлы с самыми актуальными и полезными командами, так что Ричард в своём хаке сделал возможным подключать и эти файлы в качестве макросов. В результате получился полноценный WYSIWYG-редактор, который можно было ещё и программировать. \enquote{Это был прорыв}, -- говорит Гай Стил, один из тогдашних хакеров Лаборатории. \endnote{\textit{Ibid.}}
By Stallman's own recollection, the macro hack touched off an explosion of further innovation. ``Everybody and his brother was writing his own collection of redefined screen-editor commands, a command for everything he typically liked to do,'' Stallman would later recall. ``People would pass them around and improve them, making them more powerful and more general. The collections of redefinitions gradually became system programs in their own right.''\endnote{\textit{Ibid.}}
Столлман вспоминает, как внедрение макросов породило целый взрыв улучшений. \enquote{Каждый стремился автоматизировать свою работу наборами макросов. Ими постоянно обменивались и улучшали их, делая всё более мощными и универсальными. Наборы этих макросов мало-помалу становились самостоятельными системными программами}.\endnote{\textit{Ibid.}}
So many people found the macro innovations useful and had incorporated it into their own TECO programs that the TECO editor had become secondary to the macro mania it inspired. ``We started to categorize it mentally as a programming language rather than as an editor,'' Stallman says. Users were experiencing their own pleasure tweaking the software and trading new ideas.\endnote{\textit{Ibid.}}
Началась настоящая макросомания, даже сам редактор TECO стал восприниматься как придаток к макросам. \enquote{Мы уже считали его языком программирования, а не текстовым редактором}, -- рассказывает Столлман. Пользователи получали огромное удовольствие от написания макросов и их обсуждения. \endnote{\textit{Ibid.}}
Two years after the explosion, the rate of innovation began to exhibit inconvenient side effects. The explosive growth had provided an exciting validation of the collaborative hacker approach, but it had also led to incompatibility. ``We had a Tower of Babel effect,'' says Guy Steele.
Спустя пару лет начали проявляться негативные последствия неконтролируемого \enquote{макросного взрыва} -- в частности, огромное количество несовместимостей. \enquote{Это было вавилонское столпотворение}, -- говорит Гай Стил. По его словам, эти последствия угрожали основе хакерской этики -- коллективной работе над программами, когда каждый может открыть и улучшить программу любого другого хакера. \enquote{Иногда лучший способ показать кому-то, как надо написать тот или иной код -- просто сесть и написать его самому}, -- объясняет Стил.
The effect threatened to kill the spirit that had created it, Steele says. Hackers had designed ITS to facilitate programmers' ability to share knowledge and improve each other's work. That meant being able to sit down at another programmer's desk, open up a programmer's work and make comments and modifications directly within the software. ``Sometimes the easiest way to show somebody how to program or debug something was simply to sit down at the terminal and do it for them,'' explains Steele.
Возможность расширения функциональности через макросы стала мешать этому принципу. Стремясь облегчить свою работу, хакеры писали сложнейшие макросы для TECO, и чтобы начать работать за чужим терминалом, нужно было порой битый час сидеть вникать в то, что редактор, собственно, делает.
The macro feature, after its second year, began to foil this capability. In their eagerness to embrace the new full-screen capabilities, hackers had customized their versions of TECO to the point where a hacker sitting down at another hacker's terminal usually had to spend the first hour just figuring out what macro commands did what.
Это изрядно огорчало Ричарда, и он занялся решением проблемы. Он взял 4 разных комплекта макросов, проанализировал их и выстроил диаграмму популярности команд и их сочетаний. Также он начал наблюдать за работой других хакеров.
Frustrated, Steele took it upon himself to solve the problem. He gathered together the four different macro packages and began assembling a chart documenting the most useful macro commands. In the course of implementing the design specified by the chart, Steele says he attracted Stallman's attention.
\enquote{Он смотрел на мой экран из-за плеча и расспрашивал о моих действиях}, -- вспоминает Стил.
``He started looking over my shoulder, asking me what I was doing,'' recalls Steele.
Хотя наблюдения за чужой работой были в порядке вещей в Лаборатории, Стилу хорошо это запомнилось, потому что он был тихим замкнутым хакером и почти не общался со Столлманом. В итоге Ричард назвал работу Стила интересной и использовал её в своём решении.
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.
\enquote{Я обычно говорю, что первые 0,001 процента решения той проблемы -- моя заслуга, а Столлман лишь довёл дело до конца}, -- смеётся Стил.
``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.
Столлман дал и название новому проекту: Emacs, сокращение от \enquote{editing macros} или \enquote{редактирование макросами}. Название отражало эволюционный скачок, который случился двумя годами ранее при изобретении макросов. Нашлось в названии место и чисто техническим соображениям удобства -- на компьютерах Лаборатории не было программ, название которых начиналось бы на \enquote{е}, поэтому достаточно было ввести одну эту букву, чтобы автодополнение вызвало Emacs. В очередной раз хакерская жажда эффективности оставила свой след.\endnote{\textit{Ibid.}}
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 natural to reference the program with a single letter. Once again, the hacker lust for efficiency had left its mark.\endnote{\textit{Ibid.}}
Конечно, не все и не сразу перешли на Emacs. Некоторые пользователи продолжали работать в TECO и расширять его функциональность макросами, но многие всё-таки выбрали Emacs. Он обеспечивал унифицированную платформу, от которой можно было отталкиваться. К тому же, его функции можно было расширять без необходимости переписывать старые функции, что резко сокращало количество проблем с совместимостью.
Of course, not everyone switched to Emacs, or not immediately. Users were free to continue maintaining and running their own TECO-based editors as before. But most found it preferable to switch to Emacs, especially since Emacs was designed to make it easy to replace or add some parts while using others unchanged.
\enquote{С одной стороны, мы пытались создать единую систему команд, с другой -- не ограничивать её расширяемость, потому что программируемость была крайне важна для нас}, -- вспоминает Стил.
``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.
Но проблема несовместимости скоро снова дала о себе знать уже в других местах. Главной причиной её возвращения были тихие модификации кода отдельных экземпляров Emacs, о которых авторы не рассказывали остальным хакерам. В результате поведение этих экземпляров шло вразрез с поведением общей версии Emacs. Тогда Столлман решил внести в код специальную функцию, реализующую один из основных постулатов хакерской этики: пользователь получал право изменять код только в том случае, если он обязывался возвращать свои изменения в общую версию Emacs. Столлман назвал это \enquote{вступлением в коммуну Emacs}. Так же, как и TECO ранее, Emacs стал чем-то большим, чем просто компьютерной программой. Для Столлмана это был общественный договор. В документации 1981 года Ричард изложил его условия: \enquote{Emacs распространяется как общественный продукт, это значит, что все свои улучшения вы должны выслать мне для их внедрения и распространения в основной версии Emacs}.\endnote{Stallman (1979): \#SEC34.}
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 called this ``joining 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 a 1981 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.''\endnote{See Stallman (1979): \#SEC34.}
Оригинальный Emacs работал только на PDP-10, но скоро пользователи захотели работать в нём на других компьютерах. Снова произошёл взрывной рост, только теперь уже не макросов, а версий редактора, похожих на Emacs, с очень разным уровнем совместимости. Правила коммуны Emacs на них не распространялись, потому что те редакторы были написаны с нуля. Некоторые из них в названии иронично обыгрывали название оригинала: Sine (\enquote{Sine is not Emacs} или \enquote{Sine это не Emacs}), Eine (\enquote{Eine is not Emacs}), и даже Zwei (\enquote{Zwei was Eine initially} или \enquote{Zwei поначалу был Eine}). Оригинальный Emacs был полностью программируемым, но некоторые клоны предоставляли лишь ограниченный набор команд без возможности расширения, такие версии назывались \enquote{эрзац-Emacs}. Таким был Mince (\enquote{Mince is Not Complete Emacs} или \enquote{Mince это не совсем Emacs}).
The original Emacs ran only on the PDP-10 computer, but soon users of other computers wanted an Emacs to edit with. The explosive innovation continued throughout the decade, resulting in a host of Emacs-like programs with varying degrees of cross-compatibility. The Emacs Commune's rules did not apply to them, since their code was separate. 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). A true Emacs had to provide user-programmability like the original; editors with similar keyword commands but without the user-programmability were called ``ersatz Emacs.'' One example was Mince (Mince is Not Complete Emacs).
В то время как Ричард разрабатывал Emacs в Лаборатории, хакерское сообщество потрясали тревожные известия. В 1979 году Брайан Рид встроил \enquote{тайм-бомбы} в Scribe, чтобы воспрепятствовать свободной раздаче редактора, и это ужаснуло Столлмана. \enquote{Он называл это самым фашистским поступком, который он только видел в своей жизни}, -- вспоминает сам Рид. Даже после того, как благодаря усилиям Рида появилась иерархия \textit{alt} в Usenet, поступок 1979 года продолжал омрачать его репутацию, по крайней мере, в глазах Столлмана. \enquote{Он говорил, что все программы должны быть бесплатными, и что взимание денег за ПО это преступление против человечества}.\endnote{В интервью 1996 года интернет-журналу \textit{MEME} Столлман назвал историю вокруг Scribe раздражающей, и даже не захотел называть Рида по имени. \enquote{Проблема в том, что никто не осудил и не наказал этого студента за то, что он сделал, -- сказал Столлман, -- в результате другие люди стали брать его поступок за пример}. \textit{MEME} 2.04, \url{http://memex.org/meme2-04.html}.}
While Stallman was developing Emacs in the AI Lab, there were other, unsettling developments elsewhere 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 co-creator of the Usenet \textit{alt} hierarchy, 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.''\endnote{In a 1996 interview with online magazine \textit{MEME}, Stallman cited Scribe's sale as irksome, but declined 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 \textit{MEME} 2.04, \url{http://memex.org/meme2-04.html}.}
Столлман был не в силах помешать действиям Рида, но он мог бороться с другими формами поведения, которые противоречили хакерской этике. Будучи главным сопровождающим разработки Emacs, Ричард начал вовсю пользоваться своим положением для продвижения своих идей. На последнем этапе долгого конфликта хакеров с управляющими Лаборатории, когда дело дошло до реального внедрения систем безопасности с паролями, Столлман забастовал, отказываясь раздать этим сотрудникам последнюю версию Emacs, пока они не откажутся от своих намерений. \endnote{Steven Levy, \textit{Hackers} (Penguin USA [paperback], 1984): 419.} Это был скорее жест, чем реальное ограничение, потому что этим сотрудникам ничего не мешало самим скопировать и установить последнюю версию Emacs. Но посыл Ричарда был очевиден всем.
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 original Emacs, 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,'' refusing to send lab members the latest version of Emacs until they rejected the security system on the lab's computers.\endnote{See Steven Levy, \textit{Hackers} (Penguin USA [paperback], 1984): 419.} This was more gesture than sanction, since nothing could stop them from installing it themselves. But it got the point across: putting passwords on an ITS system would lead to condemnation and reaction.
\enquote{Многие на меня рассердились, говорили что я взял их в заложники, что я шантажирую их, и действительно так и было, -- рассказывает Столлман, -- я прибегнул к насилию над ними в ответ на их насилие надо мной}.\endnote{\textit{Ibid.}}
``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.''\endnote{\textit{Ibid.}}
Со временем Emacs стал платформой для продвижения хакерской этики. Уровень гибкости, заданный Столлманом, не только поощрял сотрудничество, но даже требовал его. Пользователи, которые отстранялись от сообщества Emacs, не получали важных изменений -- новых возможностей и исправлений ошибок. При этом история развития Emacs впечатляет. За 20 лет GNU Emacs научился быть электронной таблицей, базой данных, веб-браузером, личным психиатром, и даже простым текстовым редактором, и разработчики даже не думают удалять какие-то функции, заботливо перенося их в код новых версий. \enquote{Это наше видение идеального текстового редактора, -- говорит Столлман, -- его возможности восхищают и ужасают одновременно}.
Over time, Emacs became a sales tool for the hacker ethic. The flexibility Stallman had 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 of GNU Emacs (a second implementation started in 1984) have modified it 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 Sussman during the 1970s and would later assist Stallman as a charter board member 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.''\endnote{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:
Другие работники Лаборатории отзываются о редакторе куда милосерднее. Хэл Абельсон, аспирант МТИ, который работал с Сассменом в 70-х, и позже стал участником фонда свободного ПО, называет Emacs \enquote{совершенно гениальным творением}. Дав свободу программистам конструировать какие угодно функции, не нарушая работу системы, Столлман проложил путь к сложным программным проектам, над которыми работали огромные коллективы. \enquote{Структура редактора оказалась достаточно устойчивой, чтобы тысячи людей со всего мира развивали его согласно своим вкусам, -- сказал Абельсон, -- даже не знаю, бывало ли такое раньше.}\endnote{В этой главе я уделил больше внимания социальной значимости Emacs, нежели технической. Чтобы оценить уровень программной части, рекомендую прочитать заметку Столлмана 1979 года, особенно обратить внимание на раздел \enquote{Исследования в разработке программных инструментов} (\enquote{Research Through Development of Installed Tools} \#SEC27). Раздел не только понятен неспециалисту, но и показывает, как сильно связана политическая философия Столлмана с его философией программирования. Например:
\begin{quote}
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.
Функциональность Emacs невозможно было создать заранее продуманным проектированием, потому что такой подход достигает целей, которые видны только поначалу, и устанавливает априорный ценз на присутствие каких-то функций в программе. Ни я, ни кто-либо другой не мог заранее представить себе все возможности Emacs, их можно только увидеть по мере их появления в реальности. Emacs это бесконечный процесс улучшений.
\end{quote}}
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-triggered feature that reformatted Emacs' source code so that it was both more readable and took up less space, further bolstering the program's WYSIWYG 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.
Гай Стил выражает похожее мнение. Он помнит Столлмана как \enquote{гениального программиста, который способен был без устали и ошибок генерировать огромное количество кода}. Хотя их характеры во многом не сходились, они успели поработать вместе, и Стил получил хорошее представление об интенсивности программирования Ричарда. Однажды Стил задумал создать функцию \enquote{приятной печати} для Emacs, чтобы при нажатии некоторой комбинации клавиш она преображала исходный код в компактную форму. Функция заинтересовала и Столлмана.
``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.
\enquote{Утром мы сели за терминал, я за клавиатуру, а Столлман -- рядом, чтобы говорить мне что печатать}.
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.''
Около десяти часов подряд они занимались кодом, и за всё это время они не делали перерыва и не болтали о посторонних вещах. В итоге им удалось создать красивую функцию, которая занимала меньше 100 строк. \enquote{На клавишах были мои пальцы, но мне казалось, что мысли обеих наших голов перетекали на экран. Он говорил мне, что набирать, и я набирал}.
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 [that] it was a great experience, very intense, and that I never wanted to do it again in my life.''
Выйдя из здания Техносквера на улицу, Стил удивился наступившей темноте. Он привык работать в марафонском стиле, а в этот раз всё прошло как-то слишком быстро, слишком интенсивно. Это было полное отключение от окружающих раздражителей и погружение в задачу. Стил признаётся, что такое мощное мышление Столлмана одновременно восхищает и пугает его. \enquote{Я впервые в жизни работал настолько интенсивно, почти яростно, и для меня это чересчур. Не хотелось бы снова через это пройти}.
\theendnotes
\setcounter{endnote}{0}