ПЕРВЫЙ СПУТНИК ЗЕМЛИ, ЧАРЛЬЗ МУР И ЯЗЫК FORTH
Машина небесной механики
Часть первая. Пчела
Октябрь 1957 года пах осенними яблоками и расплавленным тефлоном. Чарльз Мур в ту ночь ещё не знал, что история уже постучала в его дверь — просто стук этот был частотой двадцать мегагерц...
Он сидел в машинном зале, похожем на пчелиный улей, перегретый и гудящий. IBM 704 дышала лампами, как спящий кит. Сидел и смотрел на ленту самописца, которая ползла, ползла — и наконец дрогнула.
Сигнал. Пиликание. Чистое, ровное, чужое.
Первый искусственный спутник Земли, ПС-1 шёл по орбите со скоростью семь километров в секунду, а в пультовой стояла такая тишина, что было слышно, как щёлкает реле охлаждения.
Чарльз думал о том, что где-то наверху, в сотне километров над его головой, летит полированный шар весом с человека, собранный руками его ровесников с другого конца планеты, — и что этот шар поёт.
Бип - бип - бип...
Не «красный триумф», не «вызов», как писали газеты. Просто поёт. Однотонно, спокойно, как поёт провод под ветром.
И где-то между двумя оборотами этого сигнала — между двадцать третьим и двадцать четвёртым — в нём что-то замкнулось. Он позже не смог бы объяснить что. Возможно, это было ощущение несоразмерности: шар в высоте летит вокруг планеты, а здесь, на земле, три десятка самых умных людей планеты (как верили в это американцы) тратят недели, чтобы пересчитать его орбиту на машине, которая весит как грузовик и говорит с ними на языке, придуманном бухгалтерами...
— Чарли, ты чего? — спросил сосед.
— Думаю, что мы пишем программы как расшифровываем телеграммы, — ответил он. — Посимвольно. И каждый раз заново.
Сосед усмехнулся и вернулся к осциллографу. А Чарльз остался стоять — худой, в осенней рубашке с катышками, — и смотрел на осциллограмму пиликанья, как на рукопись неизвестной цивилизации.
Часть вторая. Стилус
Задача стояла арифметически скучная и человечески великая: по обрывкам наблюдений — пеленг, время, доплеровский сдвиг — вычислить элементы орбиты. Уточнить, спрогнозировать, когда спутник пройдёт над Кембриджем, над Лондоном, над атоллом в Тихом океане, где стоит человек с антеннами и радиотермосом...
IBM 704 это умела. Но она умела это на своём языке — на языке, где «сложить два числа» занимало перфокарту, а ночь обхода телескопа занимало две недели набивки колод...
Чарльз смотрел на колоды перфокарт — они лежали в шкафах, как гробы с внутриутробным содержимым, — и чувствовал то, что космонавт, наверное, чувствует, глядя на скафандр: это всё между мной и небом.
— Словарь, — сказал он однажды вслух, в пустом зале, когда машины ушли в ночную очередь за расчётами и стены гудели, как улей.
Идея была дикая по меркам времени: не писать программы как связки инструкций, а собирать их как речь. Слова.
Каждое слово — маленький, атомарный, проверенный один раз — и навсегда верный. Слова складываются в предложения, предложения — в текст. А машина не читает текст — машина исполняет его, слово за словом, как синхронный переводчик, идущий за послом страны.
Он назвал это потом «четвёртым» — Fourth — потому что он видел в этом новое, четвертое поколение языков для вычислителей. Но компьютер, где он это собрал, не позволял пяти букв в имени, и слово потеряло «у», став Forth — «вперёд».
Чарльз никогда не считал это ошибкой. Он говорил потом, что это и есть его суть: иди вперёд.
Часть третья. Ночь на паре электронных ламп
Теперь представим киношный кадр — тот самый, с замедленным временем, который так любят в сериалах: звенящая тишина, крупный план.
Ночь. Зал пуст.
Чарльз сидит перед машиной — не IBM, той, другой, поменьше, к которой ему доверили ключи. За окном — лето, кричат цикады. На столе: лист, карандаш, остывающий кофе в кружке с нацарапанной ладьёй.
Он пишет слово. Одно. Функцию, которой ещё не существует — но она ему нужна, и он пишет её так, как будто она уже есть. Это называется «программирование сверху вниз», но Чарльз думал об этом иначе: как о разговоре с Богом, только "богом", по отношению к машине, был он сам.
Сначала — большими словами: «посчитать орбиту». Потом он разбивает это слово на два поменьше. Потом ещё. И когда он спускается на самое дно — туда, где уже нет никого, кроме машины, — там остаются только атомы. Десяток атомов. Тонких, простых, как остов рыбьего скелета.
Он запускает — и орбита сходится за минуты. Не за ночи. За минуты.
Машина пиликает. Точно так же, как спутник.
И в этом пиликанье была правда, которую он потом пронесёт через всю жизнь, не улыбнувшись ни разу: программа — это не то, что ты пишешь. Это то, что ты говоришь.
Часть четвёртая. Медитация
Есть фильм, который позже будут смотреть его внуки, — там космонавты разговаривают с роботом, который учится шутить, и через чёрную дыру видно лицо дочери... И есть что-то общее между той картинкой и этой ночью 1958-го. Не в технологии — в темпе.
Потому что медитация — это не то, что делает монах. Медитация — это то, что делает инженер, когда он три часа не трогает клавиши, а в голове гоняет решение, как камешек по воде: гладко, гладко, гладко.
Чарльз медитировал. Он сидел и думал о том, что человек — существо, которое думает словами, а не гигантскими блоками. Что каждая попытка запрограммировать его «большими блоками» — это попытка заставить музыканта играть не нотами, а абзацами. Что все языки, вокруг, предлагают ему архитектуру собора, когда ему нужна свобода речи.
И однажды — ночью, в тишине, когда компьютер дышал рядом, как животное, — он понял главную вещь. Понял так просто, что на бумаге это заняло всего строчку:
Программа — это стек. Мир — это стек. Ты кладаешь слово — оно ложится. Ты берёшь слово — оно отдаётся. Всё остальное — декорации.
Он не был поэтом. Но в этот момент он был ближе к поэзии, чем весь отдел, в котором он работал.
Часть пятая. Radio telescope
Годы спустя, на другом континенте, на горе, среди радиотелескопов, которые слушали космос, как большие серебряные уши, Чарльз снова писал — но уже с помощницей, Элизабет, и уже не для себя.
Он держал её текст на экране, как ювелир держит камень, — и щурится.
— Слишком много слов, — сказал он.
— Это константа, Чарли.
— Нет, — сказал он. — Это три слова, которые могут быть одним.
Он замолчал. Часы шли. За окном темнело небо, и радиотелескоп медленно поворачивался на восток, ловя сигнал с того места, где когда-то пиликал тот, первый, советский спутник. Уже не существующий: он сгорел в атмосфере в январе 1958-го, четыре месяца спустя, как и было предсказано.
По сути — он умер так же тихо, как родился. Пиликанье оборвалось. Мир не заметил.
— Итак? — спросила Элизабет.
— Одно слово, — сказал Чарльз. — Запомни его. Оно понадобится нам через десять лет.
И это было правдой. Потому что слово Vocabulary, которое тогда родилось в маленьком зале на Kitt Peak, чтобы описать словари в Forth, потом стало фундаментом целого направления в программировании, которое впитало его идею: не строить здание — говорить. Не компилировать — интерпретировать. Не проектировать — разговаривать.
Часть шестая. Свобода
А теперь — финал. Тот самый, где картинка медленно расплывается, а музыка поднимается в верхний регистр, и хочется закрыть глаза, потому что красота через край.
Чарльз Мур уже старик.
Он сидит на веранде в доме, где все розетки в комнате зарастают паутиной, потому что настоящий компьютер у него в голове, а под ногами — пыль и солнце. Он рассказывал внучке племянника — маленькой девочке, которая держит в руках книжку с картинками, — про Forth.
— Это язык, — сказал он. — Он очень простой. Он не пытается тебя контролировать. Он не пытается предугадать. Он просто стоит рядом и говорит: «Ну? Что дальше?»
— И что дальше? — спросила девочка.
Чарльз посмотрел в окно, на небо. Там не было ничего — чистый, пустой, красивый космос. Но он смотрел туда так, будто там всё ещё пиликал тот самый сигнал — с той самой первой октябрьской ночи.
— А дальше, — сказал он, — ты делаешь то, что хочет машина. А она хочет то, что хочешь ты. И в этом всё.
Он еще жив и живет тихо — тихо, как и его спутник.
Не оставив ни одного патента, ни одного фонда, ни одной кафедры имени себя. Но каждый, кто сегодня пишет на Forth, — на Stack-based, на минимальном, на бестелесном, на удивительно живом языке, — сидит в его ночи 1958 года. Пьёт из его кружки. Слушает тот самый пиликающий сигнал...
Потому что свобода, как сказал бы Чарльз, — это не когда можно всё.
Свобода — это когда ничего лишнего.
Спасибо за Ваши дела, Мастер!
С уважением, Bereg Oldmyth







