0

ПЕРВЫЙ СПУТНИК ЗЕМЛИ, ЧАРЛЬЗ МУР И ЯЗЫК FORTH⁠⁠

Чарльз Мур

Чарльз Мур

Машина небесной механики

Часть первая. Пчела

Октябрь 1957 года пах осенними яблоками и расплавленным тефлоном. Чарльз Мур в ту ночь ещё не знал, что история уже постучала в его дверь — просто стук этот был частотой двадцать мегагерц...

Он сидел в машинном зале, похожем на пчелиный улей, перегретый и гудящий. IBM 704 дышала лампами, как спящий кит. Сидел и смотрел на ленту самописца, которая ползла, ползла — и наконец дрогнула.

Национальная радиоастрономическая обсерватория США (NRAO)

Национальная радиоастрономическая обсерватория США (NRAO)

Сигнал. Пиликание. Чистое, ровное, чужое.

Первый искусственный спутник Земли, ПС-1 шёл по орбите со скоростью семь километров в секунду, а в пультовой стояла такая тишина, что было слышно, как щёлкает реле охлаждения.

Чарльз думал о том, что где-то наверху, в сотне километров над его головой, летит полированный шар весом с человека, собранный руками его ровесников с другого конца планеты, — и что этот шар поёт.

Бип - бип - бип...

Не «красный триумф», не «вызов», как писали газеты. Просто поёт. Однотонно, спокойно, как поёт провод под ветром.

И где-то между двумя оборотами этого сигнала — между двадцать третьим и двадцать четвёртым — в нём что-то замкнулось. Он позже не смог бы объяснить что. Возможно, это было ощущение несоразмерности: шар в высоте летит вокруг планеты, а здесь, на земле, три десятка самых умных людей планеты (как верили в это американцы) тратят недели, чтобы пересчитать его орбиту на машине, которая весит как грузовик и говорит с ними на языке, придуманном бухгалтерами...

— Чарли, ты чего? — спросил сосед.

— Думаю, что мы пишем программы как расшифровываем телеграммы, — ответил он. — Посимвольно. И каждый раз заново.

Сосед усмехнулся и вернулся к осциллографу. А Чарльз остался стоять — худой, в осенней рубашке с катышками, — и смотрел на осциллограмму пиликанья, как на рукопись неизвестной цивилизации.

Часть вторая. Стилус

Первый Спутник Земли. ПС-1. 1957 г., СССР

Первый Спутник Земли. ПС-1. 1957 г., СССР

Задача стояла арифметически скучная и человечески великая: по обрывкам наблюдений — пеленг, время, доплеровский сдвиг — вычислить элементы орбиты. Уточнить, спрогнозировать, когда спутник пройдёт над Кембриджем, над Лондоном, над атоллом в Тихом океане, где стоит человек с антеннами и радиотермосом...

IBM 704 это умела. Но она умела это на своём языке — на языке, где «сложить два числа» занимало перфокарту, а ночь обхода телескопа занимало две недели набивки колод...

Чарльз смотрел на колоды перфокарт — они лежали в шкафах, как гробы с внутриутробным содержимым, — и чувствовал то, что космонавт, наверное, чувствует, глядя на скафандр: это всё между мной и небом.

— Словарь, — сказал он однажды вслух, в пустом зале, когда машины ушли в ночную очередь за расчётами и стены гудели, как улей.

Идея была дикая по меркам времени: не писать программы как связки инструкций, а собирать их как речь. Слова.

Каждое слово — маленький, атомарный, проверенный один раз — и навсегда верный. Слова складываются в предложения, предложения — в текст. А машина не читает текст — машина исполняет его, слово за словом, как синхронный переводчик, идущий за послом страны.

Он назвал это потом «четвёртым» — Fourth — потому что он видел в этом новое, четвертое поколение языков для вычислителей. Но компьютер, где он это собрал, не позволял пяти букв в имени, и слово потеряло «у», став Forth — «вперёд».

Чарльз никогда не считал это ошибкой. Он говорил потом, что это и есть его суть: иди вперёд.

Часть третья. Ночь на паре электронных ламп

Теперь представим киношный кадр — тот самый, с замедленным временем, который так любят в сериалах: звенящая тишина, крупный план.

Ночь. Зал пуст.

Чарльз сидит перед машиной — не IBM, той, другой, поменьше, к которой ему доверили ключи. За окном — лето, кричат цикады. На столе: лист, карандаш, остывающий кофе в кружке с нацарапанной ладьёй.

Он пишет слово. Одно. Функцию, которой ещё не существует — но она ему нужна, и он пишет её так, как будто она уже есть. Это называется «программирование сверху вниз», но Чарльз думал об этом иначе: как о разговоре с Богом, только "богом", по отношению к машине, был он сам.

Сначала — большими словами: «посчитать орбиту». Потом он разбивает это слово на два поменьше. Потом ещё. И когда он спускается на самое дно — туда, где уже нет никого, кроме машины, — там остаются только атомы. Десяток атомов. Тонких, простых, как остов рыбьего скелета.

Он запускает — и орбита сходится за минуты. Не за ночи. За минуты.

Машина пиликает. Точно так же, как спутник.

И в этом пиликанье была правда, которую он потом пронесёт через всю жизнь, не улыбнувшись ни разу: программа — это не то, что ты пишешь. Это то, что ты говоришь.

Часть четвёртая. Медитация

Есть фильм, который позже будут смотреть его внуки, — там космонавты разговаривают с роботом, который учится шутить, и через чёрную дыру видно лицо дочери... И есть что-то общее между той картинкой и этой ночью 1958-го. Не в технологии — в темпе.

Потому что медитация — это не то, что делает монах. Медитация — это то, что делает инженер, когда он три часа не трогает клавиши, а в голове гоняет решение, как камешек по воде: гладко, гладко, гладко.

Чарльз медитировал. Он сидел и думал о том, что человек — существо, которое думает словами, а не гигантскими блоками. Что каждая попытка запрограммировать его «большими блоками» — это попытка заставить музыканта играть не нотами, а абзацами. Что все языки, вокруг, предлагают ему архитектуру собора, когда ему нужна свобода речи.

И однажды — ночью, в тишине, когда компьютер дышал рядом, как животное, — он понял главную вещь. Понял так просто, что на бумаге это заняло всего строчку:

Программа — это стек. Мир — это стек. Ты кладаешь слово — оно ложится. Ты берёшь слово — оно отдаётся. Всё остальное — декорации.

Он не был поэтом. Но в этот момент он был ближе к поэзии, чем весь отдел, в котором он работал.

Часть пятая. Radio telescope

Годы спустя, на другом континенте, на горе, среди радиотелескопов, которые слушали космос, как большие серебряные уши, Чарльз снова писал — но уже с помощницей, Элизабет, и уже не для себя.

Он держал её текст на экране, как ювелир держит камень, — и щурится.

— Слишком много слов, — сказал он.

— Это константа, Чарли.

— Нет, — сказал он. — Это три слова, которые могут быть одним.

Он замолчал. Часы шли. За окном темнело небо, и радиотелескоп медленно поворачивался на восток, ловя сигнал с того места, где когда-то пиликал тот, первый, советский спутник. Уже не существующий: он сгорел в атмосфере в январе 1958-го, четыре месяца спустя, как и было предсказано.

По сути — он умер так же тихо, как родился. Пиликанье оборвалось. Мир не заметил.

— Итак? — спросила Элизабет.

— Одно слово, — сказал Чарльз. — Запомни его. Оно понадобится нам через десять лет.

И это было правдой. Потому что слово Vocabulary, которое тогда родилось в маленьком зале на Kitt Peak, чтобы описать словари в Forth, потом стало фундаментом целого направления в программировании, которое впитало его идею: не строить здание — говорить. Не компилировать — интерпретировать. Не проектировать — разговаривать.

Kitt Peak

Kitt Peak

Часть шестая. Свобода

А теперь — финал. Тот самый, где картинка медленно расплывается, а музыка поднимается в верхний регистр, и хочется закрыть глаза, потому что красота через край.

Чарльз Мур уже старик.

Он сидит на веранде в доме, где все розетки в комнате зарастают паутиной, потому что настоящий компьютер у него в голове, а под ногами — пыль и солнце. Он рассказывал внучке племянника — маленькой девочке, которая держит в руках книжку с картинками, — про Forth.

— Это язык, — сказал он. — Он очень простой. Он не пытается тебя контролировать. Он не пытается предугадать. Он просто стоит рядом и говорит: «Ну? Что дальше?»

— И что дальше? — спросила девочка.

Чарльз посмотрел в окно, на небо. Там не было ничего — чистый, пустой, красивый космос. Но он смотрел туда так, будто там всё ещё пиликал тот самый сигнал — с той самой первой октябрьской ночи.

— А дальше, — сказал он, — ты делаешь то, что хочет машина. А она хочет то, что хочешь ты. И в этом всё.

Он еще жив и живет тихо — тихо, как и его спутник.

Не оставив ни одного патента, ни одного фонда, ни одной кафедры имени себя. Но каждый, кто сегодня пишет на Forth, — на Stack-based, на минимальном, на бестелесном, на удивительно живом языке, — сидит в его ночи 1958 года. Пьёт из его кружки. Слушает тот самый пиликающий сигнал...

Потому что свобода, как сказал бы Чарльз, — это не когда можно всё.

Свобода — это когда ничего лишнего.

Чарльз Мур, создатель системы Forth

Спасибо за Ваши дела, Мастер!

С уважением, Bereg Oldmyth

0
Автор поста оценил этот комментарий

IBM 704 это умела. Но она умела это на своём языке — на языке, где «сложить два числа» занимало перфокарту, а ночь обхода телескопа занимало две недели набивки колод...

В типичном применении перфокарт сложение двух чисел занимало перфокарту на любом языке высокого уровня. Одна строчка программы - одна перфокарта.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества