What I Worked On
Пол Грэм вспоминает, чем он занимался до колледжа вне школы — писал рассказы (которые сам считает плохими, без сюжета) и программировал. Первые программы он писал в 9 классе (в 13-14 лет) на школьном IBM 1401, который стоял в подвале младшей школы. Язык — ранняя версия Fortran, программы набивались на перфокартах. Грэм не понимал, что делать с этой машиной: входных данных не было, а математики для интересных вычислений вроде приближений числа π он ещё не знал. Самое яркое воспоминание — момент, когда он обнаружил, что программа может не завершаться: на машине без разделения времени это была не только техническая, но и социальная ошибка. Всё изменилось с появлением микрокомпьютеров: компьютер мог стоять прямо на столе и реагировать на нажатия клавиш в реальном времени.
Февраль 2021
До колледжа вне школы я занимался в основном двумя вещами — писательством и программированием. Эссе я не писал. Я писал то, что тогда полагалось писать начинающим авторам, — да и сейчас, наверное, тоже: короткие рассказы. Рассказы у меня были ужасные. В них почти не было сюжета — только персонажи с сильными чувствами, что, как мне казалось, делало их глубокими.
Первые программы я пробовал писать на IBM 1401, который наш школьный округ использовал для того, что тогда называлось «обработкой данных». Это был 9-й класс, мне было 13 или 14. Так вышло, что 1401 школьного округа стоял в подвале нашей младшей средней школы, и мы с моим другом Ричем Дрейвсом получили разрешение им пользоваться. Там было как в мини-логове бондовского злодея: все эти инопланетного вида машины — CPU, дисковые накопители, принтер, считыватель карт — стояли на приподнятом полу под ярким светом люминесцентных ламп.
Язык, которым мы пользовались, был ранней версией Fortran. Программы приходилось набивать на перфокартах, потом складывать их стопкой в считыватель и нажимать кнопку, чтобы загрузить программу в память и запустить. Обычно результатом было что-то напечатанное на оглушительно громком принтере.
1401 ставил меня в тупик. Я не мог понять, что с ним делать. И, если оглянуться назад, многого я с ним сделать и не мог. Единственной формой ввода в программы были данные, хранящиеся на перфокартах, а никаких данных на перфокартах у меня не было. Оставалось только делать вещи, не требующие ввода, — например, считать приближения числа π, — но математики я знал недостаточно, чтобы сделать что-то интересное в этом духе. Так что неудивительно, что я не помню ни одной написанной мной программы: они и не могли многого делать. Самое чёткое воспоминание — момент, когда я узнал, что программа может не завершиться, потому что одна из моих не завершилась. На машине без разделения времени это была не только техническая, но и социальная ошибка, что ясно читалось по лицу заведующего вычислительным центром.
С микрокомпьютерами всё изменилось. Теперь у тебя мог стоять прямо перед тобой, на столе, компьютер, который откликался на нажатия клавиш прямо во время работы, а не просто перемалывал стопку перфокарт и останавливался. [1