писать программы. Мне это нравилось. Я очень хорошо освоил отладку и делал ее для других, если ничто больше не помогало. Стандартной таксой была бутылка пива. Дальше все зависело от сложности - двухбутылочная задача, трехбутылочная задача и так далее.
Сейбел: То есть сколько человек должен был вам за отладку его программы - две, три бутылки?
Армстронг: Да. Исправляя ошибки, я обычно читал программу и говорил: “Тут можно бы сделать и попроще”, - и переписывал ее. Меня поражало, что народ пишет такие сложные программы. Я понимал, как обойтись пятью строчками, а другие писали их десятками! И я удивлялся: как можно не видеть простого решения.
Но по-настоящему я занялся программированием после того, как стал бакалавром и решил, что буду писать диссертацию. И вот я начал трудиться над диссертацией по физике высоких энергий и присоединился к группе, которая работала с пузырьковой камерой. У них был компьютер Honeywell DDP- 516. Я мог работать с ним сам! Да, там были перфокарты, но я мог запускать программы - вставляешь карту, нажимаешь кнопку - трррр! - и машина тут же выдает ответ. Просто восторг! Я написал для этого компьютера шахматную программку.
Тогда применялась память на магнитных сердечниках, которые соединяли вместе пожилые тетеньки. Если вы заглядывали внутрь, то видели магнитики и кучу проводов. Страшно дорогая штука - двадцать дисков весом под пятнадцать кило, на которых умещалось мегабайт десять. И телетекстовый интерфейс, чтобы настукивать программы.
А потом появился один из первых дисплеев - можно было набирать программы и редактировать их. Фантастика! Никаких больше перфокарт. Помню, мы разговорились с сотрудником, который обслуживал компьютер, и я сказал: “Когда-нибудь такой будет у каждого”. А он мне в ответ: “Ты с ума сошел, Джо!” - “Почему?” - “Да потому, что это слишком дорого”.
Вот тогда я и научился программировать всерьез. Мой научный руководитель говорил: “Тебе надо бросить диссертацию по физике и заняться компьютерами, раз ты так их любишь”. Я возражал, что хочу закончить ее, если уж начал. Но он был прав, как видим.
Сейбел: Так вы написали диссертацию или нет?
Армстронг: Нет. У меня закончились деньги, и я поехал в Эдинбург. Когда я изучал физику, то, как и другие, занимался в физической библиотеке. В уголке там прятался стеллаж с компьютерными книгами. Среди них были четыре коричневых тома под названием “Machine Intelligence” (Машинный интеллект), изданные отделением машинного интеллекта Эдинбургского университета. Я в принципе изучал физику, но с жадностью поглощал эти книги и думал: “До чего же занятно!” Поэтому я написал Дональду Мичи, который возглавлял это отделение, о том, что все это мне очень интересно, и спросил, нет ли у него какой-нибудь работы. Мне пришел ответ. Мичи писал, что работы пока нет, но он был бы рад познакомиться, посмотреть, кто я такой.
Через несколько месяцев Мичи не то позвонил, не то написал мне, что в ближайший вторник будет в Лондоне и хотел бы встретиться со мной. Так как он пересаживался на эдинбургский поезд, то предлагал увидеться на вокзале. Мы встретились, и Мичи сказал: “Хм, здесь не очень-то поговоришь - пойдемте в паб”. Мы поболтали в пабе, и чуть позже он написал мне: “У меня в Эдинбурге есть место в лаборатории, не хотите ли поработать?” Я переехал в Эдинбург и стал помощником Мичи по исследовательской части. Вот так я бросил физику ради компьютерной науки.
Во время Второй мировой Мичи работал с Тьюрингом в Блетчли-парке, и ему достались все бумаги Тьюринга. У меня был стол в библиотеке Тьюринга, так что я сидел среди тьюринговских бумаг. Год я проработал в Эдинбурге. Потом все там рухнуло. Дело в том, что правительство поручило математику Джеймсу Лайтхиллу выяснить, как в Эдинбурге обстоят дела с искусственным интеллектом. Лайтхилл выяснил и заявил, что ничего коммерчески ценного из этого не вырастет.
Вообще, все это напоминало гигантский детский манеж. Я был членом-основателем Британской робототехнической ассоциации, и нам казалось, что все это - дело чрезвычайной важности. Но те, кто финансировал нашу работу, не хотели и слышать о роботах! Где-то около 1972 года финансирование прекратилось. Народ стал говорить: “Что ж, занятная была работа, теперь надо искать что-то другое”.
Итак, надо было возвращаться к физике. Я приехал в Швецию и стал заниматься физическими компьютерными программами в научной ассоциации EISCAT. Мой начальник, старше меня, пришел из IBM; я должен был разрабатывать спецификацию, аон- реализовывать ее. Мы спорили по этому поводу. Он говорил: “Плохо то, что у нас нет описания задания и подробной спецификации”. А я отвечал: “Так это же прекрасно, что нет описания, - можно самому определять задание для себя”. Через год он ушел, а я занял его место - место ведущего разработчика.
Я спроектировал то, что сейчас бы назвали прикладной операционной системой, то, что работает как надстройка над обычной ОС. К тому времени компьютеры уже заметно подешевели. У нас были норвежские NORD-10 - кажется, они задумывались для конкуренции с PDP-11.
Там я провел почти четыре года, а потом получил работу в Шведской космической корпорации, разработал еще одну прикладную операционную систему для управления “Викингом”, первым шведским спутником. Проект был интересный. Я работал на машине, названия которой не помню, но это был клон компьютера Amdahl. Только строковые редакторы, никаких полноэкранных. Все программы хранились в одном каталоге. Не больше десяти букв в имени файла, не больше трех в расширении. Плюс компилятор Фортрана или ассемблер - вот и вся система.
При этом я думаю, что все эти современные штуки с наворотами вряд ли делают вас продуктивней. Как работа может улучшиться при иерархической файловой системе? Как бы то ни было, программы создаются главным образом в голове. Мне кажется, что работа с такой довольно простой системой дисциплинирует мышление. Если все файлы надо складывать в один каталог, нужна строжайшая дисциплина. Если нет системы управления версиями, нужна строжайшая дисциплина. И если работать дисциплинированно, то, по-моему, нет особой нужды ни в иерархической файловой системе, ни в системе управления версиями. Они не решают главную проблему. Пожалуй, с ними удобнее работать вместе нескольким людям. Если же работать одному, то разницы я не вижу.
Кроме того, сейчас у нас что-то вроде избытка выбора. У меня имелся только Фортран - помнится, не было даже консольных скриптов. Командные файлы для запуска программ, компилятор Фортрана - и все! Ну и ассемблер, наверное, если кому-то он был нужен. Никакого мучительного выбора, как сейчас. Думаю, быть сегодня молодым программистом просто жутко: двадцать языков, десятки фреймворков и операционных систем - можно погибнуть, выбирая. А в то время - ничего подобного. Просто начинаешь работать, потому что язык и программы выбирать не приходится. Просто берешь и работаешь.
Сейбел: Разница еще и в том, что сегодня не понять, как устроена система сверху донизу. Проблема не только в выборе, но и в том, что не во всех используемых “черных ящиках” хочется разбираться.
Армстронг: Ну да. Если “черные ящик” работает неважно и надо что-то в нем подкручивать, то легче взять и написать все самому. А вот что точно не работает, так это повторное использование кода. С этим совсем плохо.
Сейбел: Вы создали не только Erlang, но и Open Telecom Platform - платформу для разработки приложений. Что вы скажете о ее многократном использовании?
Армстронг: В какой-то мере это возможно. Но возникает все та же проблема. Если эта платформа полностью решает вашу задачу, если какой-нибудь программист, ничего не знающий о структуре ОТР, посмотрит на нее через несколько лет и скажет: “Вот именно то, что мне нужно”, - отлично, вы уложились в эту меру повторного использования. Если же этого
Не так давно мне говорили: “Все это как-то искусственно, мы все время стараемся впихнуть код в этот ОТР”. Я отвечал: “Ну что ж, переделайте ОТР”. Но ведь этого не сделаешь. При этом фреймворк - всего лишь программа, довольно простая по устройству. Действительно простая. Я залезаю в нее, и она делает то, что нужно этим людям, после чего они соглашаются: “И правда, просто”. Но при этом заявляют: “Наши менеджеры не хотят, чтобы мы возились с фреймворком”. Ну так назовите это по-другому, и все.
Сейбел: А как по-вашему, реально ли на самом деле вскрыть все эти “черные ящики”, заглянуть внутрь, понять, как они работают, и приспособить их для своих нужд?