Сейбел:
“Науки об электричестве” - это то, что в Америке называется “Электротехника”?Пейтон-Джонс:
Совершенно верно. Мой школьный приятель Томас Кларк тоже учился в Кембридже. Мы с ним собирали компьютеры. Покупаешь микропроцессор, много транзисторов серии 7400 и соединяешь их проводами. Большой проблемой оставались принтеры и экраны. С ними было трудно.Сейбел:
Стоили очень дорого.Пейтон-Джонс:
Да, очень дорого. Части электрической схемы студент еще мог купить, но принтеры... Это были большие линейные принтеры размером с холодильник. Внутри было много механических частей, так что эти устройства оказывались нам не по карману. И еще устройства для хранения данных, любые. Поэтому мы старались обходиться клавиатурой, экраном, ну, еще простенький лентопротяжный механизм.Сейбел:
Значит, в 1976-1979 годах вы собирали компьютеры из подручных средств. Но ведь как раз в это время выпустили Altair.Пейтон-Джонс:
Да. Самоделки уже выходили из моды. Но нам просто нравилось все это.С этими нашими машинами была еще одна сложность — программы. Самое продвинутое, что можно было загрузить, - конвеевская игра “Life” (Жизнь). Она работала прекрасно. Но что-то серьезное, вроде языка программирования, требовало слишком много работы - у нас были крохотные постоянные хранилища данных. Ну и, кроме того, все писалось в шестнадцатеричном коде, никакого ассемблера.
Сейбел:
Машинный код в чистом виде.Пейтон-Джонс:
Конечно, большой компьютер Кембриджа понимал BCPL, и мы писали много программ на BCPL. Еще мы начали писать компилятор для языка, который сами изобрели, но забросили - слишком сложно выходило. То были два мира, которые не сообщались между собой. С одной стороны, мы писали компиляторы для большого компьютера на высокоуровневом языке, с другой - возились с железом.Сейбел:
Помните вашу первую интересную программу?Пейтон-Джонс:
Программа для извлечения 24-значных квадратных корней и помещения их в 99 ячеек памяти - это еще для школьного компьютера.Сейбел:
И одна оставалась в запасе!Пейтон-Джонс:
Правильно. Что-то вроде метода Ньютона-Рафсона для квадратных корней. Я страшно гордился этим. Что же было потом? Потом, наверное, тот самый компилятор, который мы забросили, на BCPL. Мы многое с ним связывали и разрабатывали его детально. Системы типизации не было, так что у нас имелись только громадные листы распечаток с картинками, схемами и стрелками.Сейбел:
В BCPL не было системы типизации?Пейтон-Джонс:
Нет. Поэтому мы рисовали типы на больших листах бумаги и ставили стрелки. Это и была наша система типизации. Программа оказалась слишком большой для наших возможностей, мы ее так и не закончили.Сейбел:
Вы извлекли уроки из этой неудачи?Пейтон-Джонс:
Я впервые понял, что если пишешь очень большую программу, то она просто не умещается у тебя в голове. До того все, что я писал, целиком помещалось в голове без особых проблем. И вот тогда я сделал первую попытку создать долговременную документацию.Сейбел:
Но даже ее оказалось недостаточно?Пейтон-Джонс:
Ну, у нас были и другие заботы - надо было получать степень бакалавра. А компьютерами мы занимались по вечерам и ночью.Сейбел:
Что вам не нравится в том, как вы учились программированию?Пейтон-Джонс:
Никто меня этому не учил. Но не уверен, что это большой пробел. Самый большой пробел - то, что я на глубинном уровне так и не приобрел познаний в объектно-ориентированном программировании. Нет, я знаю, конечно, как писать объектно-ориентированные программы. Но делать это в большом масштабе - дело совсем другое. Если писать большие программы, использовать сложным образом разные иерархии классов, создавать фреймворки - вот тогда приходит глубинное понимание. Это не то же самое, что прочесть книгу.Я считаю это пробелом, так как не могу авторитетно высказываться насчет того, что можно и чего нельзя делать в объектно-ориентированном программировании. Я всегда очень осторожен в своих высказываниях, особенно стараюсь не говорить отрицательно об императивном программировании - это невероятно сложная и богатая парадигма программирования. Но жизнь сложилась так, что мне ни разу не пришлось в течение нескольких лет писать большие программы на C++. Так приобретаются глубинные познания на уровне рефлексов, и у меня их нет.
Сейбел:
Что было после Кембриджа?Пейтон-Джонс:
Я подумал: “Надо бы поработать с компьютерами”. И я год занимался послеуниверситетской подготовкой по компьютерным наукам; это мое единственное официальное образование в компьютерной области.Сейбел:
Что-то вроде магистратуры?Пейтон-Джонс:
Что-то вроде магистратуры. То был очень полезный для меня год. Думаю, это примерно соответствовало сегодняшней степени бакалавра по компьютерным наукам, но было рассчитано на студентов, которые начинают с нуля.