What I Worked On
Пол Грэм вспоминает, чем он занимался до колледжа вне школы — писал рассказы (которые сам считает плохими, без сюжета) и программировал. Первые программы он писал в 9 классе (в 13-14 лет) на школьном IBM 1401, который стоял в подвале младшей школы. Язык — ранняя версия Fortran, программы набивались на перфокартах. Грэм не понимал, что делать с этой машиной: входных данных не было, а математики для интересных вычислений вроде приближений числа π он ещё не знал. Самое яркое воспоминание — момент, когда он обнаружил, что программа может не завершаться: на машине без разделения времени это была не только техническая, но и социальная ошибка. Всё изменилось с появлением микрокомпьютеров: компьютер мог стоять прямо на столе и реагировать на нажатия клавиш в реальном времени.
February 2021
Февраль 2021
Before college the two main things I worked on, outside of school,
were writing and programming. I didn't write essays. I wrote what
beginning writers were supposed to write then, and probably still
are: short stories. My stories were awful. They had hardly any plot,
just characters with strong feelings, which I imagined made them
deep.
До колледжа вне школы я занимался в основном двумя вещами — писательством и программированием. Эссе я не писал. Я писал то, что тогда полагалось писать начинающим авторам, — да и сейчас, наверное, тоже: короткие рассказы. Рассказы у меня были ужасные. В них почти не было сюжета — только персонажи с сильными чувствами, что, как мне казалось, делало их глубокими.
The first programs I tried writing were on the IBM 1401 that our
school district used for what was then called "data processing."
This was in 9th grade, so I was 13 or 14. The school district's
1401 happened to be in the basement of our junior high school, and
my friend Rich Draves and I got permission to use it. It was like
a mini Bond villain's lair down there, with all these alien-looking
machines — CPU, disk drives, printer, card reader — sitting up
on a raised floor under bright fluorescent lights.
Первые программы я пробовал писать на IBM 1401, который наш школьный округ использовал для того, что тогда называлось «обработкой данных». Это был 9-й класс, мне было 13 или 14. Так вышло, что 1401 школьного округа стоял в подвале нашей младшей средней школы, и мы с моим другом Ричем Дрейвсом получили разрешение им пользоваться. Там было как в мини-логове бондовского злодея: все эти инопланетного вида машины — CPU, дисковые накопители, принтер, считыватель карт — стояли на приподнятом полу под ярким светом люминесцентных ламп.
The language we used was an early version of Fortran. You had to
type programs on punch cards, then stack them in the card reader
and press a button to load the program into memory and run it. The
result would ordinarily be to print something on the spectacularly
loud printer.
Язык, которым мы пользовались, был ранней версией Fortran. Программы приходилось набивать на перфокартах, потом складывать их стопкой в считыватель и нажимать кнопку, чтобы загрузить программу в память и запустить. Обычно результатом было что-то напечатанное на оглушительно громком принтере.
I was puzzled by the 1401. I couldn't figure out what to do with
it. And in retrospect there's not much I could have done with it.
The only form of input to programs was data stored on punched cards,
and I didn't have any data stored on punched cards. The only other
option was to do things that didn't rely on any input, like calculate
approximations of pi, but I didn't know enough math to do anything
interesting of that type. So I'm not surprised I can't remember any
programs I wrote, because they can't have done much. My clearest
memory is of the moment I learned it was possible for programs not
to terminate, when one of mine didn't. On a machine without
time-sharing, this was a social as well as a technical error, as
the data center manager's expression made clear.
1401 ставил меня в тупик. Я не мог понять, что с ним делать. И, если оглянуться назад, многого я с ним сделать и не мог. Единственной формой ввода в программы были данные, хранящиеся на перфокартах, а никаких данных на перфокартах у меня не было. Оставалось только делать вещи, не требующие ввода, — например, считать приближения числа π, — но математики я знал недостаточно, чтобы сделать что-то интересное в этом духе. Так что неудивительно, что я не помню ни одной написанной мной программы: они и не могли многого делать. Самое чёткое воспоминание — момент, когда я узнал, что программа может не завершиться, потому что одна из моих не завершилась. На машине без разделения времени это была не только техническая, но и социальная ошибка, что ясно читалось по лицу заведующего вычислительным центром.
With microcomputers, everything changed. Now you could have a
computer sitting right in front of you, on a desk, that could respond
to your keystrokes as it was running instead of just churning through
a stack of punch cards and then stopping.
[1
С микрокомпьютерами всё изменилось. Теперь у тебя мог стоять прямо перед тобой, на столе, компьютер, который откликался на нажатия клавиш прямо во время работы, а не просто перемалывал стопку перфокарт и останавливался. [1