Шрифт:
Интервал:
Закладка:
В те времена сам процесс создания работающего компьютера требовал почти всех творческих ресурсов. Но вскоре обнаружилось, что настройка довольно сложна, подвержена ошибкам и очень обременительна. Она стала хвостом, который вилял собакой. Очевидным это кажется только сейчас, когда программы состоят из миллионов шагов, написанных сотнями программистов.
Но в то время пришлось разработать набор методов, позволявший формализовать процесс настройки и облегчить его, а для их обозначения требовалось короткое название. В архиве фон Неймана в Принституте есть документ, в котором впервые употребляется глагол «программировать». Указанную там дату можно считать днем рождения как термина «программирование», так и самого искусства программирования, новой технической дисциплины.
В служебной записке от 5 сентября 1945 года везде, где был бы уместен термин «программирование», фон Нейман еще использовал слово «настройка», заключая его в кавычки. Он пишет: «Я хочу еще раз подчеркнуть, что такая гибкая и высокоавтоматизированная система „настройки“ машины для решения [различных] задач абсолютно необходима для научных целей и ее следует обдумать». Как бы мы это ни называли, говорит он, это абсолютно необходимо.
В письме от 1 ноября, на всякий случай в кавычках, предлагается альтернатива слову «настройка»: «Точное электронное устройство, которое мы планируем, конечно, превзойдет его [ЭНИАК] по скорости и гибкости (универсальный характер), и его будет по крайней мере гораздо легче „настроить“, или „запрограммировать“». То есть, по его словам, это уже не будут переключатели и кабели, как в случае с ЭНИАК.
И наконец, буквально через пару недель, 19 ноября, «настройка» окончательно исчезает. Теперь это программирование безо всяких извиняющихся кавычек. Третий документ — протокол собрания в офисе участника проекта Владимира Зворыкина. «Код, приведенный в следующей таблице, представлен просто для того, чтобы доказать, что эту работу можно выполнить. Перечисленных операций достаточно для полного программирования». Именно тогда появился прообраз не только программирования, но и кодирования.
Команда фон Неймана, по-видимому, подразумевала, что программирование должно быть творческой частью работы, а кодирование — рутинной, «секретарской задачей». Сегодня программисты называют себя кодерами, и они пишут код. Они подразумевают творческий аспект вне зависимости от термина. Они знают, что рутинная часть работы теперь возложена на саму машину.
Итак, в конце 1945 года команда фон Неймана, а возможно, и сам фон Нейман первыми использовали слово «программирование» примерно в том же смысле, в котором мы его понимаем сегодня. Тьюринг вскоре тоже употребил этот термин в своей лекции в 1947 году, но упомянул его лишь несколько раз в ограниченном контексте. Впрочем, независимо от наименования, довольно быстро выяснилось, что программирование, творческий аспект — это сложная часть машинных вычислений и для него необходимо разработать отдельную научную дисциплину. Благодаря этому повсеместно возникли факультеты компьютерных наук.
Программирование — это способ создавать пиксели, изображающие вымышленные миры. Оно расширяет возможности Цифрового Света от простой фотофиксации миров до их создания — от простой съемки пикселей до их вычисления.
Мифы о компьютерах
[Это] становится заколдованным ткацким станком, где миллионы светящихся челноков ткут гаснущий узор, всегда осмысленный, но никогда не постоянный; изменчивая гармония узоров, складывающихся из узоров.
— Сэр Чарльз Шеррингтон. «Человек и его природа»
Следующая глава посвящена воплощению концепции универсальной вычислительной машины на практике — соревнованию по созданию первого компьютера. Прежде чем мы последуем дальше, давайте развеем три мифа о компьютерах: они не обязательно должны быть электронными, они не обязательно состоят из битов и не обязательно основаны на числах — даже на нулях и единицах.
Во-первых, компьютеры не всегда выглядели как те, которые вы видите: мобильный телефон, ноутбук, настольный компьютер, гигантский мэйнфрейм в крупной корпорации или суперкомпьютер в высокотехнологичном исследовательском центре. Рассмотренная ранее картонная карточка — хороший контрпример. Это тоже компьютер, и для моей книги он изготовлен из чернил, плотного картона и тонкого металла. Он определенно не электронный.
Есть популярный педагогический трюк, превращающий лекционную аудиторию со студентами в компьютер. Давайте масштабируем эту идею. Предположим, все жители США старше 12 лет выстроились в ряд. Эта шеренга станет лентой нашего компьютера — его памятью. Если нам понадобится ее увеличить, мы позовем несколько канадцев и мексиканцев. Предположим, у каждого человека есть пять шляп разных цветов. Эти головные уборы будут символами на нашей ленте. Шестым символом станет отсутствие шляпы, и оно же будет условием по умолчанию для всех, кроме нескольких человек. Мы выберем кого-нибудь, кто просканирует ленту. Когда я придумал этот пример, президентом был Барак Обама, так что мы сделаем его не ячейкой, а сканером нашей ленты. Дадим ему 24 правила машины Тьюринга — набор инструкций — для пяти цветов шляп, а не для цифр от 1 до 5 (и для отсутствия шляпы вместо пустой ячейки). Правила, как обычно, разделены на четыре набора, и каждый из них лежит в одном из карманов его джинсов, два спереди и два сзади. Итак, его карманы — это четыре состояния машины.
Обама начинает с человека в красной шляпе и применяет один из наборов правил — скажем, из правого переднего кармана. Человек, к которому он обращается, выполнит указанное действие — наденет шляпу другого цвета или снимет ее. Затем Обама перемещается влево или вправо на одного человека согласно тому же правилу. Затем он убирает один набор правил обратно в карман и достает другой, если текущее правило предписывает ему так сделать. И так далее. У нас получился компьютер, сделанный из людей, с карманами для разных состояний и шляпами в качестве символов. Он может вычислить что угодно, потому что делает то же самое, что и машина Тьюринга из картонной карточки, универсальный компьютер. Это просто разные аппаратные реализации одной и той же машины. Но это настоящий компьютер — и уж точно не электронный (и не числовой). Компьютер-карточка или его человеческий эквивалент также опровергают наше второе предубеждение относительно компьютеров — что они должны состоять из битов. Во второй главе мы уже упоминали, что у бита есть два состояния, как у выключателя, который пребывает или во включенном, или в выключенном
- Цифровой журнал «Компьютерра» № 98 - Коллектив Авторов - Прочая околокомпьтерная литература
- Грузовые автомобили. Освещение, сигнализация, контрольно-измерительные приборы - Илья Мельников - Техническая литература
- Журнал PC Magazine/RE №05/2008 - PC Magazine/RE - Прочая околокомпьтерная литература