Читаем Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию полностью

Фон Нейман, который стал консультантом команды ENIAC, выдвинул идею о том, что компьютерная программа должна быть сохранена в той же памяти, что и исходные данные, и тогда программу можно будет легко модифицировать во время работы. Его деятельность в команде Пенна началась с первой недели сентября 1944 года, когда Мокли и Эккерт в деталях объяснили ему устройство машины и поделились своими мыслями о конструкции следующей версии, в которой будет «одно устройство хранения с адресуемыми ячейками», которое будет служить в качестве устройства для хранения и исходных данных, и команд программы. На той же неделе Голдстайн изложил эту идею в письме к своему армейскому командиру: «Мы предлагаем централизованное программируемое устройство, в котором стандартные программы хранятся в закодированном виде в тех же типах устройств хранения информации, которые были предложены ранее»[201].

Серия встреч фон Неймана с командой ENIAC, и в особенности четыре официальных совещания, которые он провел с ними весной 1945 года, оказались настолько важными, что протоколы этих встреч были сброшюрованы в отдельную книжицу под названием «Встречи с фон Нейманом». На совещаниях он вышагивал перед доской и руководил обсуждением в духе сократического диалога, впитывал идеи, пропускал через себя, очищал их, а затем выписывал на доске. «Он стоял в передней части комнаты, как профессор, консультирующийся с нами, — вспоминала Джин Дженнингс. — Мы ставили перед ним возникшую у нас конкретную проблему и всегда очень старались, чтобы проблема была фундаментальной, а не только технической»[202].

Фон Нейман был открытым человеком, но его интеллектуальное превосходство подавляло людей. Когда он утверждал что-то, редко кто отваживался возразить. Но Дженнингс иногда решалась. Однажды она поспорила с одним из его утверждений, и все в зале посмотрели на нее с удивлением. Но фон Нейман сделал паузу, склонил голову, а затем согласился с ее точкой зрения. Он умел хорошо слушать и к тому же мастерски умел притворяться застенчивым, что располагало к нему людей[203]. «В нем было удивительное сочетание черт характера блестящего человека, который осознает, что он выдающийся, и удивительной скромности и застенчивости, проявлявшихся при изложении им своих идей другим людям, — вспоминала Дженнингс. — Он был очень беспокойным, все время расхаживал по комнате, но когда он рассказывал о своих идеях, казалось, будто он извиняется за несогласие с вами или будто обдумывает лучшую идею».

Фон Нейман был особенно силен в разработке фундаментальных основ программирования, которое было все еще плохо определенным ремеслом, не очень изменившимся за век — с тех пор, как Ада Лавлейс описала последовательность операций для генерации чисел Бернулли на аналитической машине. Он понял, что создание элегантного набора инструкций — алгоритма — требовало как строгой логики, так и точности выражения. «Он очень тщательно разъяснял, почему нужно написать данную конкретную команду или почему мы могли бы обойтись без команд, — рассказывала Дженнингс. — Тогда я впервые осознала важность командных кодов, логики, на основании которой они строятся, и элементов, которые должны входить в полный набор команд. Я заметила, что фон Нейман, как и другие гении, обладал способностью выбрать в каждой конкретной проблеме нечто определяющее, то, что действительно было самым важным»[204]. В этом проявлялся его мощный талант, побуждавший его докапываться до сути каждой новой идеи.

Фон Нейман понимал, что они не просто усовершенствуют ENIAC для быстрого перепрограммирования. Они выполняли более важную задачу — воплощали идею Ады о создании машины, которая могла выполнять любую логическую задачу, заданную набором любых символов. «Компьютер с сохраняемыми программами, замысел которого принадлежал Алану Тьюрингу, а реализация — Джону фон Нейману, сломал различие между числами, которые описывают данные, и числами, которые описывают программы, — писал Джордж Дайсон. — Наша Вселенная уже никогда не будет прежней»[205].

Кроме того, фон Нейман быстрее, чем его коллеги, понял важность объединения данных и программных команд в одном и том же устройстве памяти. Память может быть стираемой — той, что мы сейчас называем памятью с оперативной записью и считыванием. Это означает, что сохраненные команды могут быть изменены не только в конце цикла, но в любой момент работы программы. Компьютер сам может изменить свою программу, основываясь на полученных результатах. Для облегчения этой процедуры Фон Нейман придумал язык программирования с переменным адресом ячейки памяти, который позволял легко менять команды во время выполнения программы[206].

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже