Мы говорили с ним о том, почему, по его мнению, функциональное программирование обещает изменить методы создания ПО, почему транзак-ционная память лучше приспособлена для параллельных программ, чем блокировка и переменные условия, и почему даже в Microsoft Research трудно исследовать вопрос о влиянии языка на эффективность работы программиста.
Сейбел:Когда вы научились программировать?
Пейтон-Джонс:В школе. Intel только что выпустила 4004 - первый в мире микропроцессор. Но у нас ни 4004, ни чего-нибудь похожего не было - любители в то время могли достать его лишь с большим трудом. Был только школьный компьютер IBM - странная машина, собранная из каких-то запчастей. Системы постоянного хранения данных не было, и программу всякий раз приходилось набирать с нуля.
Всего было 100 ячеек памяти, в каждой из которых, кажется, хранились восьмизначные десятичные числа. Там располагались и программа, и ваши данные. Искусство заключалось в том, чтобы уместить программу в эти 100 ячеек. Не помню, как именно я написал свою первую программу; мы с одним парнем все время торчали за этим компьютером. Мне тогда было пятнадцать - 1973 или 1974 год.
Освоив немного эту машину, мы выяснили, что в Суиндонском техническом колледже есть компьютер. Мы стали ездить туда в один из выходных на невероятно медленном автобусе - поездка занимала около часа. То был Elliot 803; он помещался в особой комнате в полудюжине белых шкафов размером с холодильник, и управляла им женщина-оператор в белом халате.
Скоро та женщина поняла, что мы умеем обращаться с компьютером, и стала оставлять нас работать одних. Там использовались бумажные перфоленты и телетайп, в машину вводилась перфолента с программой. Мы писали на Алголе, который стал моим первым высокоуровневым языком. Писалась программа на перфоленте и правилась на ней же. Если надо было что-то изменить, мы прогоняли ленту через телетайп, распечатывали новую, останавливали ее в нужном месте и печатали, что требовалось, - очень трудоемкий способ. Что-то вроде строкового редактора с физическим носителем информации. Вот такими были мои первые опыты программирования. Я загорелся этим делом.
Сейбел:В школе ведь не было никаких уроков.
Пейтон-Джонс:Конечно, нет! Совсем ничего, никаких компьютеров не было в программе.
Сейбел:То есть просто - “Эй, ребятки, вот вам компьютер, действуйте”.
Пейтон-Джонс:Именно так. Он помещался в большом шкафу, обычно закрытом. Но мы брали ключ, включали его - и вот вам дисплей, показывающий только то, что есть в регистрах, и десятичные номера - содержимое ячеек памяти. Вводишь программу, нажимаешь Go. И можно было пройти ее пошагово. Не было даже языка ассемблера за отсутствием ASCII-символов. В буквальном смысле слова машинный код, отображаемый при помощи десятичных чисел, даже не шестнадцатеричных.
Сейбел:Но экран-то был?
Пейтон-Джонс:Телевизионный экран. Единственное средство вывода информации.
Сейбел:А для ввода?
Пейтон-Джонс:Нечто вроде сенсорной клавиатуры, никаких механических кнопок - довольно сложное устройство. Надо было только коснуться кнопки. Всего их было десятка два.
Сейбел:Только для чисел?
Пейтон-Джонс:Да, и еще кнопки Go и Step. И еще - “показать данную ячейку памяти”. Все крайне примитивно, но оттого раззадоривало еще больше.
Сейбел:Раз так, выходит, программу надо было продумывать заранее, в мелочах, до того как вводить ее в машину.
Пейтон-Джонс:Сначала мы рисовали блок-схему, потом разбивали ее на отдельные инструкции, переводили инструкции в этот странный цифровой формат и вводили цифры. Программа состояла обычно из 800 цифр. Потом мы нажимали Go. Если везло, мы не ошибались ни в одной из этих 800 цифр, и все работало. Поэтому у нас уходило много времени: один смотрел на экран и проверял, другой говорил: “Переходи к следующей ячейке”.
Затем я поступил в Кембриджский университет; эра микропроцессоров только начиналась. В университете был компьютерный клуб. Там стояла большая машина под названием Phoenix с исключительно замысловатой системой учета ресурсов.
Было очень важно, в какое именно время ты пользовался компьютером. Тебе давали некоторое количество единиц машинной “валюты”, и чем больше памяти или времени у тебя уходило, тем больше их расходовалось. Соответственно, чем меньше ресурсов отнимала твоя программа, тем меньше ты тратил. Мы, зеленые студенты, которым этих единиц давали мало, просиживали там ночи напролет - после девяти вечера все стоило дешевле.
Читать дальше
Конец ознакомительного отрывка
Купить книгу