Солдаты, приписанные к этой огромной машине, постоянно носились вокруг нее, скрипя тележками, доверху набитыми электронными лампами. Стоило перегореть хотя бы одной лампе, как ENIAC тут же вставал и начиналась суматоха: все спешно искали сгоревшую лампу. Одной из причин – возможно, и не слишком достоверной – столь частой замены ламп считалась такая: их тепло и свечение привлекают мотыльков, которые залетают внутрь машины и вызывают короткое замыкание. Если это правда, то термин «жучки» (bugs), под которым имеются в виду ошибки в программных и аппаратных средствах компьютеров, приобретает новый смысл.
Когда все лампы работали, инженерный персонал мог настроить ENIAC на какую-нибудь задачу, вручную изменив подключения 6000 проводов. Все эти провода приходилось вновь переключать, когда вставала другая задача. В решении этой проблемы основную заслугу приписывают Джону фон Нейману, американцу венгерского происхождения, блестящему ученому, известному многими достижениями – от разработки теории игр до вклада в создание ядерного оружия. Он придумал схему, которой до сих пор следуют все цифровые компьютеры. «Архитектура фон Неймана», как ее теперь называют, базируется на принципах, сформулированных им в 1945 году. В их число входит и такой: в компьютере не придется изменять подключения проводов, если все инструкции будут храниться в его памяти. И как только эту идею воплотили на практике, родился современный компьютер.
Сегодня «мозги» большинства компьютеров – дальние потомки того микропроцессора, которым мы с Полом так восхищались в семидесятых, а «рейтинг» персональных компьютеров зачастую определяется тем, сколько бит информации (переключателей – в нашем примере со светом) способен единовременно обрабатывать их микропроцессор и сколько у них байт (групп из восьми бит) памяти и места на диске. ENIAC весил 30 тонн и занимал большое помещение. «Вычислительные» импульсы бегали в нем по 1500 электромеханическим реле и 17000 электронным лампам. Он потреблял 150000 ватт электроэнергии и при этом хранил объем информации, эквивалентный всего лишь 80 символам.
К началу шестидесятых годов транзисторы начали вытеснять электронные лампы из бытовой электроники. Это произошло через десятилетие после того, как в Bell Labs открыли, что крошечный кусочек кремния способен делать то же, что и электронная лампа. Транзисторы – подобно электронным лампам – действуют как электрические переключатели, потребляя при этом намного меньше электроэнергии, в результате выделяя гораздо меньше тепла и занимая меньше места. Несколько транзисторных схем можно объединить на одной плате, создав тем самым интегральную схему (чип). Чипы, используемые в современных компьютерах, представляют собой интегральные схемы, эквивалентные миллионам транзисторов, размещенных на кусочке кремния площадью менее пяти квадратных сантиметров.
В 1977 году Боб Нойс (Bob Noyce), один из основателей фирмы Intel, в журнале Scientific American сравнил трехсотдолларовый микропроцессор с ENIAC, кишащим насекомыми мастодонтом. Крошка-микропроцессор не только мощнее, но и, как заметил Нойс, «в 20 раз быстрее, обладает большей памятью, в 1000 раз надежнее, потребляет энергии столько же, сколько лампочка, а не локомотив, занимает 1/30000 объема и стоит в 10000 раз дешевле. Его можно заказать по почте или купить в местном магазине».
Конечно, микропроцессор 1977 года теперь кажется просто игрушкой. Ведь сегодня во многих недорогих игрушках «сидят» более мощные компьютерные чипы, чем микропроцессоры семидесятых, с которых начиналась микрокомпьютерная революция. Но все современные компьютеры, каков бы ни был их размер или мощность, оперируют с информацией в виде двоичных чисел.
Двоичные числа используются для хранения текста в персональных компьютерах, музыки на компакт-дисках и денег в сети банковских автоматов. Прежде чем отправить информацию в компьютер, ее надо преобразовать в двоичный вид. А машины, цифровые устройства, возвращают информации ее первоначальную форму. Каждое такое устройство можно представить как набор переключателей, управляющих потоком электронов. Эти переключатели, обычно изготавливаемые из кремния, крайне малы и срабатывают под действием электрических зарядов чрезвычайно быстро – тем самым воспроизводя текст на экране персонального компьютера, музыку на проигрывателе компакт-дисков и команды банковскому автомату, который выдает Вам наличность.
Пример с выключателями ламп продемонстрировал, что любое число можно представить в двоичном виде. А вот как то же самое сделать с текстом. По соглашению, число 65 кодирует заглавную латинскую букву A, 66 – B и т.д. В компьютере каждое из этих чисел выражается двоичным кодом, поэтому заглавная латинская буква A (десятичное число 65) превращается в 01000001, а буква B (66) – в 01000010. Пробел кодируется числом 32, или 00100000. Таким образом, выражение «Socrates is a man» («Сократ есть человек») становится 136-разрядной последовательностью единиц и нулей.