Скачок к универсальности

В первых системах письма для представления слов и понятий использовались стилизованные изображения — «пиктограммы». Такой символ, как, например, , мог обозначать «sun» (солнце), а — «tree» (дерево). Но ни одной системе не удалось даже близко подойти к тому, чтобы обзавестись пиктограммой для каждого слова соответствующего разговорного языка. А почему?
Изначально такого намерения просто не было. Письмо предназначалось для таких специальных целей, как учёт запасов и запись налогов. В дальнейшем появление новых применений письма могло потребовать более обширного словаря, но к тому времени писцы всё в большей степени осознавали, что проще добавлять в свою систему письма новые правила, нежели пиктограммы.

В некоторых системах письма, например, если слово звучало как последовательность из двух или более других слов, то можно было изобразить его пиктограммами этих слов. Если бы английский язык записывался пиктограммами, мы смогли бы написать слово «treason» (измена; схоже по звучанию с tree+sun) как . Звучание слова было бы передано не точно (как и его буквенное написание), но этого было бы достаточно, чтобы читатель, говорящий на языке и знающий это правило, понял, о чём речь.
После такого нововведения создавать новые пиктограммы, например, для «treason» было бы уже не так заманчиво. Ведь это трудная работа, причём не столько потому, что тяжело придумать запоминающуюся пиктограмму, хотя это действительно так, сколько потому, что, прежде чем использовать, нужно как-то сообщить её значение всем предполагаемым читателям. А это нелегко: если бы это было просто, то в самом письме было бы гораздо меньше необходимости. Там, где можно было применить правило, это оказывалось эффективнее: любой писец мог написать , и его бы понял даже читатель, который никогда этого слова раньше не видел.
Однако это правило было применимо не во всех случаях: с его помощью нельзя записать новые слова из одного слога, а также многие другие слова. По сравнению с современными системами письма это правило кажется грубым и неадекватным. Но оно уже несло в себе нечто важное, чего ни одна чисто пиктографическая система не могла достичь: оно приносило в систему письма слова, которые никто явным образом не добавлял. Это значит, что оно расширяло сферу применимости. А этому всегда есть объяснение. Подобно тому, как в науке, где одна простая формула может охватывать множество фактов, так и простое, легко запоминающееся правило может принести в систему письма много дополнительных слов, но только если оно отражает некую глубинную закономерность. Закономерность в данном случае состоит в том, что все слова в любом языке составляются всего из нескольких десятков «элементарных звуков», причём в каждом языке используется свой набор, отобранный из огромного множества звуков, которые может воспроизвести человек. Почему? Скоро мы к этому подойдём.
По мере совершенствования правил системы письма может быть преодолён важный порог, за которым система становится универсальной для соответствующего языка, то есть способной представить в нём любое слово. Возьмём, например, следующий вариант только что описанного мною правила: слова строятся не из других слов, а из их первых звуков. Таким образом, если бы английские слова записывались пиктограммами, то по новому правилу слово «treason» было бы записано пиктограммами слов «Tent», «Rock», «EAgle», «Zebra», «Nose»[28]. Благодаря такому маленькому изменению правил система стала бы универсальной. Считается, что первые алфавиты развивались из правил, подобных этому.
Универсальность, достигаемая с помощью правил, носит иной характер, чем универсальность законченного списка (такого как гипотетический полный набор пиктограмм). Одно отличие заключается в том, что правила могут быть гораздо проще, чем список. Отдельные символы также могут быть проще, потому что их меньше. Но и это ещё не всё. Поскольку правило основано на закономерностях языка, оно неявным образом кодирует эти закономерности и тем самым содержит в себе больше, чем просто список. В алфавите, например, содержатся знания о том, как звучат слова. Это позволяет иностранцу использовать алфавит, чтобы научиться говорить на данном языке, а с помощью пиктограмм он разве что научился бы писать. Правила также могут предусматривать использование флексий, таких как префиксы и суффиксы, без усложнения системы письма, и таким образом в письменных текстах будет закодировано больше информации о грамматической структуре предложений. Помимо этого, алфавитная система письма перекрывает не только каждое слово языка, но и каждое потенциальное слово, так что те слова, которым ещё предстоит появиться, уже имеют в ней своё место. Поэтому новые слова не будут на время ломать систему, напротив: она сама будет служить для порождения новых слов простым и децентрализованным способом.
Или по крайней мере она может для этого служить. Приятно было бы думать, что неизвестный писец, который создал первый алфавит, знал, что делает одно из величайших открытий в истории. Но он мог этого и не знать. А если знал, то ему, безусловно, не удалось передать свой энтузиазм остальным. Ведь на практике только что отмеченная мной сила универсальности в древние времена использовалась редко, даже когда была доступна. Хотя пиктографические системы были изобретены во многих обществах, а универсальные алфавиты действительно иногда развивались из них только что описанным мною способом, следующий «очевидный» шаг, а именно полный переход на алфавит и отказ от пиктограмм, практически никогда не делался. Алфавиты применялись только в особых целях, например, для написания редких слов или транслитерации иностранных имён. Некоторые историки считают, что люди постигли идею системы письма на базе алфавита лишь один раз за всю историю человечества: это сделали неизвестные предки финикийцев, которые затем распространили её по всему Средиземноморью, так что всякая когда-либо существовавшая алфавитная система письма либо происходит от финикийской, либо появилась под её влиянием. Но даже в финикийской системе не было гласных, что умаляет некоторые из упомянутых мной преимуществ. Гласные были добавлены греками.
Есть предположения о том, что писцы намеренно ограничивали использование алфавитов, потому что боялись потерять заработок из-за появления системы, слишком простой для изучения. Но это, наверно, слишком современная интерпретация ситуации. Я подозреваю, что ни о возможностях, ни о подвохах универсальности никто не задумывался вплоть до гораздо более поздней исторической эпохи. Тех древних новаторов заботили только специфические проблемы, с которыми они сталкивались, — им нужно было писать конкретные слова, и для этого кто-то из них придумал правило, которое оказалось универсальным. Такой подход может показаться слишком уж обывательским. Но в те времена так оно и было.
И на самом деле, по-видимому, в ранней истории во многих областях много раз повторялась ситуация, когда достигнутая универсальность вовсе не была основной целью, если к ней вообще кто-то стремился. Так получалось, что в результате небольшого изменения, сделанного с какой-то обывательской целью, система заодно становилась универсальной. Происходил скачок к универсальности.
Кроме письма, на заре цивилизации появились и записи чисел. Сегодня математики различают числа, которые представляют собой абстрактные сущности, и их запись — некие физические символы для представления чисел. Первыми были открыты именно они. Сначала считали с помощью «чёрточек» (|,||,|||,||||, …) или счётных единиц, например, камней, которые с доисторических времён использовались для учёта таких дискретных сущностей, как животные или дни[29]. Если каждую выпущенную из загона козу отмечать чёрточкой, а потом, когда коза возвращается, её перечёркивать, то когда все чёрточки окажутся перечёркнутыми, это будет означать, что все козы на месте.
Это универсальная система счёта. Но, аналогично уровням эмерджентности, у универсальности тоже есть иерархия. Следующий уровень после счёта «палочками» — счёт, в котором задействована специальная запись числа. В первом случае, отмечая, сколько коз пришло или ушло, человек думает просто «ещё одна, ещё одна и ещё одна», а считая их, он проговаривает про себя «сорок, сорок одна, сорок две…».
Только задним числом мы можем рассматривать «палочки» как систему счисления и называть её «унарной» («единичной»), и как таковая эта система непрактична. Например, даже простейшие операции с числами, представленными чёрточками, такие как сравнение, арифметические операции и даже просто копирование, влекут за собой повторение всего процесса. Если у вас было сорок коз, вы продали двадцать и отметили оба этих действия с помощью чёрточек, вам всё равно придётся произвести двадцать отдельных операций удаления, чтобы записи соответствовали действительности. Аналогично, чтобы проверить, совпадают ли две сходные на вид записи, пришлось бы вычерчивать их друг под другом и сличать. Поэтому люди начали совершенствовать систему. Наверно, раньше всего придумали просто группировать чёрточки — например, писать вместо ||||||||||. Так сравнивать числа и проводить арифметические операции стало проще, поскольку можно было записывать целые группы и сразу видеть, что отличается от . Позднее и для самих этих групп были подобраны более короткие условные символы: в древнеримской системе использовались символы типа I, V, X, , C, D, и CD для обозначения одного, пяти, десяти, пятидесяти, сотни, пяти сотен и тысячи. (Как видите, это не совсем те «римские цифры», которые мы используем сегодня.)
Это ещё один случай постепенного совершенствования, направленного на решение специфических, обывательских проблем. И снова, по-видимому, никто к большему и не стремился. Хотя добавлением простых правил можно было сделать систему гораздо более функциональной, и даже несмотря на то, что римляне действительно время от времени добавляли некоторые из таких правил, они делали это, не стремясь к универсальности и не достигая её. На протяжении нескольких столетий в этой системе правила были следующие.
— Размещённые рядом символы складываются. (Это правило унаследовано от системы подсчёта «палочек».)
— Символы записываются слева направо в порядке убывания их величины.
— Когда это возможно, смежные символы следует заменять одним, отражающим их суммарное значение.

(Правило вычитания, присутствующее в современной римской системе счисления, по которому IV означает четыре, было введено позже.) Второе и третье правило гарантируют единственность представления каждого числа, что сильно упрощает сравнение. Без этих правил могли бы существовать и XIXIXIXIXIX, и VXVXVXVXV, и никто не мог бы с первого взгляда сказать, что это одно и то же число.

За счёт применения универсальных законов сложения эти правила давали системе одно важное преимущество над подсчётом с помощью «палочек», а именно возможность производить арифметические операции. Например, возьмём числа семь (VII) и восемь (VIII). Согласно правилам поместить их друг за другом VIIVIII — всё равно что сложить их. Затем по правилам нужно переставить символы в порядке убывания их величины: VVIIIII. Затем нужно заменить две V на X и пять I на V. В результате получим XV, что является представлением числа пятнадцать. Но при этом происходит нечто новое, и дело не просто в сокращении записи: открыта и доказана абстрактная истина, связывающая между собой семь, восемь и пятнадцать, и при этом никто ничего не отмечал и не пересчитывал. Мы работали с самими числами, посредством их записей.
Когда я говорю, что арифметические операции совершались системой записи чисел, я вкладываю в это буквальный смысл. Конечно, физически эти преобразования производили люди, пользовавшиеся этой системой. Но для этого им сначала нужно было записать её правила у себя в голове, а затем выполнить их, как компьютер выполняет программу. Причём, как известно, именно программа диктует действия компьютеру, а не наоборот. Значит, процесс, которые мы называем «выполнением арифметических операций с римскими цифрами» также состоит в том, что римская система записи использует нас для совершения арифметических операций.
Римская система смогла выжить только за счёт того, что вынуждала людей совершать эти действия, другими словами, она добивалась того, что римляне копировали её из поколения в поколение: они считали её полезной и передавали своим потомкам. Как я сказал, знания — это информация, которая, физически закрепившись в подходящей среде, стремится там остаться.
Услышав, что римская система записи чисел подчиняет нас себе, чтобы размножиться и не прекратить своё существование, кто-то, наверно, может подумать, что люди низводятся до статуса рабов. Но это было бы заблуждением. Люди состоят из абстрактной информации, включая характерные идеи, теории, намерения, чувства и другие состояния души, которые характеризуют конкретное «я». Спорить с тем, что, когда мы находим римские цифры полезными, мы идём у них «на поводу», всё равно что протестовать против того, что мы ходим на поводу у наших намерений. Рассуждая таким образом, можно прийти к тому, что пытаться спастись от рабства — это тоже рабство. На самом же деле, когда я говорю, что подчиняюсь программе, которая меня же составляет, (или что я подчиняюсь законам физики), в слово «подчиняться» я вкладываю несколько иной смысл, чем раб. Эти два значения слова объясняют события, находящиеся на разных уровнях эмерджентности.
Вопреки тому, что иногда говорят, существовали и достаточно продуктивные способы умножения и деления римских чисел. Так, можно было узнать, что корабль, в трюме которого — XX ящиков, в каждом из которых V рядов по VII кувшинов, всего перевозит DCC кувшинов, и при этом длинных вычислений, подразумеваемых в этом числе, не потребуется. И можно было сразу сказать, что DCC меньше, чем DCCI. Таким образом, возможность управляться с числами без начертания и подсчёта «палочек» позволяла вычислять цены, зарплаты, налоги, проценты по кредиту и так далее. Кроме того, это было концептуальным продвижением, открывшим двери будущему прогрессу. Однако в том, что касается этих более сложных применений, система универсальной не была. Поскольку символа со значением, большим CD (одна тысяча), не было, все числа, начиная с двух тысяч, начинались с цепочки из нескольких CD, тем самым становясь всего лишь условными метками со значением тысячи. Чем больше их было в числе, тем больше для выполнения арифметических операций приходилось прибегать к старой системе меток (рассматривать множество одинаковых символов друг за другом).
Подобно тому, как добавлением пиктограмм можно было расширять словарь древней системы письма, добавлением символов можно было расширить диапазон системы записи чисел, что и делалось. Но в получающейся системе всегда был символ с самым большим значением, а значит, она не была универсальной в плане совершения арифметических операций без поштучного пересчёта.
Единственный способ освободить арифметику от «палочек» — использовать правила с универсальной сферой применимости. Как и с алфавитами, достаточно будет небольшого набора базовых правил и символов. В универсальной системе, которой все пользуются сегодня, десять символов, это цифры от 0 до 9, а своей универсальностью она обязана правилу, в соответствии с которым значение цифры зависит от её положения в числе. Например, цифра 2 означает два, если она сама по себе, но двести, если она присутствует в числе 204. В таких «позиционных» системах нужны «заполнители» разрядов, как, например, цифра 0 в числе 204, единственная функция которой — сдвинуть двойку в позицию, означающую «двести».
Эта система зародилась в Индии, но когда именно, неизвестно. Возможно, это случилось лишь в девятом веке, поскольку до этого она вроде как встречается только в нескольких неоднозначных документах. Так или иначе, её огромный потенциал для науки, математики, техники и торговли широко не осознавался. Примерно в то же время её взяли на вооружение арабские учёные, но в обиход в арабском мире она вошла только через тысячу лет. Любопытное отсутствие стремления к универсальности повторилось и в средневековой Европе: индийские цифры были переняты у арабов лишь несколькими учёными в десятом веке (и в результате были ошибочно названы «арабскими цифрами»), но в повседневное использование они вошли только столетия спустя.
Уже к 1900 году до нашей эры древние вавилоняне изобрели в сущности универсальную систему счисления, но и они вполне могли не задумываться об универсальности и даже вовсе о ней не знать. Это была позиционная система, но очень громоздкая по сравнению с индийской. В ней было 59 «цифр», каждая из которых записывалась как число в системе типа римской. Пользоваться ею для совершения арифметических операций с числами в повседневной жизни было ещё сложнее, чем римскими цифрами[30]. В этой системе также не было символа для нуля, а вместо заполнителей использовались пробелы. Изобразить ноль в конце строки было никак нельзя, эквивалента десятичной запятой тоже не было (это всё равно что в нашей системе числа 200, 20, 2, 0,2 и так далее все записывались бы как 2, и различить их можно было бы только по контексту). Всё это наводит на мысль, что при разработке системы задача добиться универсальности не была основной, и когда она была достигнута, её особо не оценили.
Возможно, понять эту странную закономерность позволит примечательный случай, произошедший в третьем веке до нашей эры с древнегреческим учёным и математиком Архимедом. В ходе своих исследований в области астрономии и чистой математики он столкнулся с необходимостью производить арифметические операции с достаточно большими числами, и ему пришлось изобрести свою собственную систему записи. Он отталкивался от греческой, с которой был знаком и которая была похожа на римскую[31], только в ней символ с наибольшим значением обозначался через M — 10 000 (один мириад). Диапазон системы уже был расширен правилом, предписывающим умножать на десять тысяч число, написанное над M. Например, двадцать обозначалось символом κ, а четыре — δ, и двадцать четыре мириада (240 000) можно было записать как .
Если бы только по этому правилу можно было создавать многоуровневые числа, чтобы означало бы 24 мириада мириадов, система стала бы универсальной. Но, очевидно, греки до этого так и не дошли[32]. И, что более удивительно, не дошёл и Архимед. Его система строилась на другой идее, напоминающей современное «экспоненциальное представление» (когда, скажем, два миллиона записываются как 2×106), только в степень возводилось не десять, а мириад мириадов (100 000 000). Но в этом случае требовалось, чтобы число, являвшееся показателем степени (в которую возводились сто миллионов), существовало в греческой системе. Другим словами, показатель степени не мог превышать сто миллионов или около того. Значит, эта конструкция иссякала после числа, которое мы бы записали как 10 800 000 000. Если бы не это дополнительное правило, у Архимеда получилась бы универсальная система, хотя и неоправданно неуклюжая.
Даже сегодня числа, больше 10 800 000 000, могут пригодиться разве что математикам, и то очень редко. Но вряд ли Архимед наложил своё ограничение из-за этого, потому что на этом он не остановился. Продолжив исследовать понятие чисел, он добавил ещё одно расширение, на этот раз получилась ещё более странная система с основанием 10 800 000 000. Но снова он разрешил возводить это число только в степени, не превышающие 800 000 000, устанавливая таким образом произвольный предел где-то после 106,4×1017.
Зачем? Сегодня кажется, что, накладывая ограничение на то, какие символы можно использовать в его числовой записи и в каких позициях, Архимед просто упрямствовал в своих заблуждениях. Для этого нет никакого математического оправдания! Но если бы Архимед захотел позволить применять свои правила без произвольных ограничений, он мог бы изобрести гораздо более удачную универсальную систему, просто убрав произвольные ограничения из существовавшей тогда греческой системы. (Несколькими годами позже математик Аполлоний придумал ещё одну систему записи чисел, которой точно так же не хватало универсальности. Такое впечатление, что в античном мире все намеренно её избегали!)
Вот что писал об индийской системе математик Пьер-Симон Лаплас (1749–1827): «Мы должны оценить грандиозность этого достижения, вспомнив, что до него не додумались Архимед и Аполлоний, два величайших ума античного мира». Но верно ли, что они не додумались до этого понятия? Может, они просто предпочли держаться от него подальше? Архимед должен был понимать, что метод расширения системы записи чисел, которым он воспользовался два раза подряд, можно продолжать до бесконечности. Но, возможно, он сомневался, что получившиеся в результате записи обозначали что-либо пригодное для разумного обсуждения. Действительно, одним из мотивов для всего этого начинания было желание опровергнуть идею, трюизм того времени, что песчинки на пляже сосчитать невозможно. И Архимед воспользовался своей системой, чтобы подсчитать, сколько песчинок понадобилось бы, чтобы заполнить всю небесную сферу. Это наводит на мысль, что ни у него, ни в древнегреческой культуре в целом, могло не быть в принципе понятия абстрактного числа, и для них такие записи могли относиться только к объектам, хотя бы и воображаемым. В этом случае универсальность была бы сложным для постижения свойством, что уж говорить о том, чтобы к ней стремиться. А может Архимед просто почувствовал, что если он хочет получить убедительный результат, то ему лучше не стремиться к бесконечной сфере охвата. Так или иначе, хотя с нашей точки зрения в системе Архимеда несколько раз «намечался» скачок к универсальности, он, очевидно, к этому не стремился.
А вот ещё более спорная версия. Самая большая польза от универсальности, за рамками тех обиходных задач, ради решения которых она достигается, состоит в том, что она может пригодиться для дальнейшего новаторства. Но новаторство непредсказуемо. Поэтому, чтобы оценить универсальность на момент её открытия, нужно либо просто ценить абстрактные знания сами по себе, либо ожидать от них непредвиденных выгод. В обществе, в котором перемены происходили редко, и то, и другое было бы довольно неестественно. Но всё перевернулось с приходом Просвещения, основная идея которого, как я говорил, в том, что прогресс и желаем, и достижим. А раз так, то это же можно сказать и про универсальность.
Как бы то ни было, с приходом Просвещения парохиальность и все произвольные исключения и ограничения стали рассматриваться как сомнительные по сути, причём не только в науке. Почему закон должен различать аристократа и обычного человека? Раба и хозяина? Женщину и мужчину? Философы Просвещения, такие как Локк, занялись освобождением политических институтов от произвольных правил и условностей. Другие пытались вывести нравственные принципы из универсальных моральных объяснений вместо того, чтобы просто закрепить их постулатами. Таким образом, своё место рядом с универсальными теориями материи и движения стали занимать объяснительные теории справедливости, законности и нравственности. Во всех этих случаях универсальность уже искали намеренно, как желаемое и даже необходимое свойство для того, чтобы идея была верной, а не просто как средство решения конкретной проблемы.
Скачком к универсальности, который сыграл важную роль на заре Просвещения, стало изобретение принципа печати наборными шрифтами. Он заключался в использовании отдельных кусочков металла, на каждом из которых выдавлен контур буквы алфавита. В более ранних формах печатания просто рационализировали письмо подобно тому, как римские цифры позволили рационализовать подсчёт «палочек»: каждую страницу гравировали на печатной пластине так, что все символы на ней можно было скопировать за раз. Но если есть набор подвижных литер, где каждая встречается по несколько раз, то больше не нужно возиться с металлообработкой. Просто берёшь и составляешь из литер слова и предложения. Для производства печатного шрифта не нужно было знать, какие документы будут с его помощью печататься и о чём в них будут сообщать: набор литер универсален.
И тем не менее наборные шрифты почти не изменили Китай, где они были изобретены в одиннадцатом веке — возможно, из-за обычного отсутствия интереса к универсальности или из-за того, что в китайской системе письма использовались тысячи пиктограмм, что уменьшало непосредственные преимущества универсальной системы печати. Но когда в пятнадцатом веке в Европе Иоганн Гутенберг заново придумал её в применении к алфавитному шрифту, это привело к дальнейшему лавинообразному прогрессу.
Здесь мы видим переход, типичный для скачка к универсальности: до него приходилось изготавливать специальные предметы для каждого документа, который нужно было напечатать, а после для этого просто приспосабливается (или настраивается, или программируется) универсальный объект, в данном случае печатный станок с наборным шрифтом. Сходным образом в 1801 году Жозеф-Мари Жаккар изобрёл шёлкоткацкий станок широкого применения, который теперь называют станком Жаккара. Больше не нужно было управлять вручную каждым рядом петель на каждом отдельном рулоне узорчатого шёлка. Достаточно было запрограммировать произвольный узор на перфорированных картах, служащих инструкцией для станка, который воспроизводил его любое количество раз.
Наиболее весомым среди таких достижений являются компьютеры, от которых сегодня зависит всё больше и больше технологий и которые имеют глубокое теоретическое и философское значение. Скачок к вычислительной универсальности должен был случиться в 1820-е годы, когда математик Чарльз Бэббидж изобрёл устройство, которое он назвал разностной машиной, — механический калькулятор, в котором десятичные знаки представлялись с помощью зубцов, каждый из которых можно было установить в одном из десяти положений. Исходное назначение машины было ограниченным: автоматизировать составление таблиц значений математических функций, таких как логарифмы и косинусы, которые активно использовались в навигации и инженерном деле. В то время эту работу выполняли армии клерков-вычислителей, которых по-английски называли словом «computer» (откуда, собственно, и произошло современное компьютер) и которые были известны частыми ошибками. Разностная машина совершала бы меньше ошибок уже потому, что арифметические правила закладывались в неё на этапе конструирования. Чтобы машина распечатала таблицу для заданной функции, её нужно было запрограммировать один раз, определив функцию через простые операции[33]. В отличие от этого, «людям-компьютерам» приходилось использовать как определение, так и общие правила арифметики (или, как было отмечено выше, правила использовали людей для своей реализации) тысячи раз для каждой таблицы, и каждый раз человек мог ошибиться.
К сожалению, несмотря на то, что Бэббидж вложил в этот проект огромные средства — как собственные, так и выделенные правительством Британии, он оказался таким плохим организатором, что так и не довёл свою разностную машину до завершения. Но его проект оказался вполне годным (за исключением нескольких тривиальных ошибок), и в 1991 году группа специалистов под руководством инженера Дорона Суэйда из Музея науки в Лондоне успешно построила работающую машину с помощью инженерных средств, доступных во времена Бэббиджа.
На фоне современных компьютеров и даже калькуляторов разностная машина Бэббиджа имела очень ограниченный набор действий. Но причина, по которой она вообще могла существовать, — в той закономерности, которая присуща всем математическим функциям, применяемым в физике, а значит, и в навигации и в инженерном деле. Эти функции называются аналитическими, и в 1710 году математик Брук Тейлор установил, что их можно аппроксимировать с произвольно высокой точностью, многократно используя сложение и умножение — операции, которые как раз и выполняет разностная машина. (Частные случаи были известны и до этого, но скачок к универсальности был обоснован Тейлором.) Таким образом, для решения узкой проблемы вычисления нескольких функций, таблицы которых были необходимы для последующих расчётов, Бэббидж создал калькулятор, универсально подходящий для вычисления аналитических функций. В нём использовалась и универсальность наборных шрифтов — в печатающем устройстве, похожем на пишущую машинку, — без чего не удалось бы полностью автоматизировать печатание таблиц.
Изначально у Бэббиджа не было представления о вычислительной универсальности. Тем не менее его разностная машина оказалась замечательно близка к ней — не по набору производимых вычислений, а по физическому устройству. Чтобы запрограммировать её для печати заданной таблицы, нужно привести в исходное состояние определённые зубцы. В конце концов Бэббидж понял, что данный этап программирования тоже поддаётся автоматизации: настройки можно заготавливать на перфокартах, как у Жаккара, а затем механически передавать на зубцы. Таким путём не только исключался главный остающийся источник ошибок, но и расширялся набор действий машины. Затем Бэббидж понял, что если бы машина могла пробивать новые карточки для дальнейшего использования в ней же и могла бы управлять тем, какую карту считывать следующей (скажем, беря их из пачки в зависимости от положения шестерёнок), то могло бы получиться нечто качественно новое: скачок к универсальности.
Эту усовершенствованную машину он назвал аналитической. Он и его коллега, женщина-математик, графиня Ада Лавлейс знали, что эта машина сможет вычислять всё, что могут «люди-компьютеры», и не только производить арифметические операции: она сможет решать алгебраические уравнения, играть в шахматы, сочинять музыку, обрабатывать изображения и так далее. Она стала бы тем, что сегодня называется универсальным классическим компьютером. (В главе 11, в которой речь пойдёт о квантовых компьютерах, работающих на ещё более высоком уровне универсальности, я объясню, почему приписка «классический» так важна.)
Однако ни эти учёные, ни кто-либо другой в течение ещё столетия не представлял себе, для чего будут сегодня чаще всего применяться вычисления, а именно Интернет, обработка текстов, поиск по базам данных, игры. Но есть ещё одно важное применение, которое они предвидели, — это научные предсказания. Аналитическая машина могла стать универсальным моделирующим устройством, способным предсказать поведение любого физического объекта с любой желаемой точностью с учётом соответствующих законов физики. Это та универсальность, о которой я говорил в главе 3, благодаря которой в физических объектах, непохожих друг на друга и подчиняющихся разным законам физики (как, например, мозг и квазар), могут проявляться одинаковые математические зависимости.
Бэббидж и Лавлейс были людьми Просвещения, и они понимали, что универсальность аналитической машины откроет новую эру технологий. Но даже при этом, несмотря на огромные усилия, им удалось заразить своим энтузиазмом лишь небольшую группу людей, которым тоже не удалось передать его дальше. И аналитическая машина осталась в истории как трагическая память о скачке, который мог бы произойти, но, к сожалению, не произошёл. Если бы они поискали другие варианты реализации, то могли бы заметить прекрасную возможность, которая уже ждала своего применения: электрические реле (переключатели, работающие от электрического тока). Это было одно из первых приложений фундаментальных исследований в области электромагнетизма, вот-вот должно было начаться массовое производство таких реле, что в итоге привело к технологической революции в телеграфии. Переработанная аналитическая машина с кодированием двоичных знаков по принципу включения/выключения тока и с использованием электрических реле для осуществления вычислений работала бы быстрее механического компьютера Бэббиджа, и её было бы дешевле и проще построить. (О двоичных числах уже хорошо знали. В семнадцатом веке математик и философ Готфрид Вильгельм Лейбниц даже предлагал использовать их для механических вычислений.) Так что компьютерная революция могла случиться на сто лет раньше. И благодаря технологиям телеграфа и печати, которые развивались параллельно, за ней вскоре последовала бы и интернет-революция. В своём романе «Машина различий»[34] (The Difference Engine) писатели-фантасты Уильям Гибсон и Брюс Стерлинг захватывающе описывают, как бы это могло быть. Журналист Том Стэндидж в своей книге «Викторианский Интернет» (Victorian Internet) утверждает, что уже в рамках телеграфной системы, даже без компьютеров, среди её операторов действительно существовало явление, похожее на Интернет, с «хакерами, сетевыми романами и свадьбами, чатами, горячими спорами в Сети… и так далее».
Бэббидж и Лавлейс также задумывались об одном применении универсальных компьютеров, которое до сих пор ещё не осуществлено, а именно о так называемом искусственном интеллекте. Поскольку человеческий мозг — это физический объект, подчиняющийся законам физики, а аналитическая машина — универсальное моделирующее устройство, то его можно запрограммировать так, чтобы оно думало так же, как может думать человек (хотя на это будет уходить очень много времени и запредельное количество перфокарт). Тем не менее Бэббидж и Лавлейс отрицали такую возможность. Лавлейс говорила, что «аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить всё то, что мы умеем ей предписать. Она может следовать анализу; но она не может предугадать какие-либо аналитические зависимости или истины»[35].
Впоследствии математик и пионер вычислительной техники Алан Тьюринг называл эту ошибку «возражением леди Лавлейс». Лавлейс недооценила не столько вычислительную универсальность, сколько универсальность законов физики. В то время наука практически ничего не знала о том, как устроен мозг с физической точки зрения. Теория эволюции Дарвина ещё не была опубликована, и преобладали сверхъестественные объяснения природы человека. Сегодня послаблений для той малой части учёных и философов, которые до сих пор считают, что искусственный интеллект недостижим, меньше. Например, философ Джон Серл рассматривает проект создания искусственного интеллекта в следующей исторической перспективе: на протяжении веков люди пытались объяснить разум техническим языком, используя сравнения и метафоры на основе сложнейших механизмов соответствующего времени. Сначала предполагалось, что мозг похож на чрезвычайно сложный набор шестерёнок и рычагов. Затем были гидравлические магистрали, паровые двигатели, телефонные коммутаторы, а сегодня, когда самой впечатляющей технологией считаются компьютеры, говорят, что мозг — это компьютер. Но это опять же не более чем сравнение, говорит Серл, и причин считать мозг компьютером не больше, чем паровым двигателем.
В действительности их больше. Паровой двигатель не является универсальным моделирующим устройством, а вот компьютер является, так что ожидать от него, что он сможет делать то же самое, что нейроны, — не метафора: это известное и проверенное свойство законов физики, какими мы их знаем. (И, кстати, из гидравлических контуров тоже можно сделать универсальный классический компьютер и из шестерёнок и рычагов, как показал Бэббидж.)
Как это ни парадоксально, но у возражения леди Лавлейс логика та же, что и у довода, который Дуглас Хофштадтер приводит в пользу редукционизма (глава 5), но Хофштадтер — один из активных современных сторонников того, что искусственный интеллект возможен. А всё потому, что оба опираются на ошибочное допущение о том, что низкоуровневые вычислительные шаги якобы не могут сложиться в высокоуровневое «Я», которое влияет на всё. Разница между ними в том, что они держатся противоположных альтернатив возникающей при этом дилеммы: Лавлейс ошибочно заключила, что искусственный интеллект невозможен, а Хофштадтер — что такого «Я» не существует.
Поскольку Бэббиджу не удалось ни самому построить универсальный компьютер, ни убедить других это сделать, первая подобная машина появилась лишь спустя сто лет. То, что происходило в этот промежуток времени, скорее напоминает древнюю историю универсальности: хотя счётные устройства, похожие на разностную машину, стали создаваться ещё до того, как Бэббидж сдался, его идею аналитической машины практически полностью игнорировали даже математики.
В 1936 году Тьюринг разработал исчерпывающую теорию универсальных классических компьютеров. Но он не собирался строить такой компьютер, а только хотел применять теорию абстрактно для изучения природы математических доказательств. И когда через несколько лет были сконструированы первые универсальные компьютеры, то опять в этом не было никакого особого намерения реализовать универсальность. Их построили в Британии и США во время Второй мировой войны для специфичных военных целей. Британские компьютеры под названием Colossus («Колосс»; в их создании принимал участие Тьюринг) использовались для взлома шифров; американский компьютер ENIAC был предназначен для решения уравнений, необходимых для наведения больших орудий. Оба были построены на электронных вакуумных лампах, которые работали как реле, но почти в сто раз быстрее. В то же самое время в Германии инженер Конрад Цузе собирал на релейных схемах программируемый калькулятор — так, как это должен был бы сделать Бэббидж. Во всех трёх применялись технологические решения, необходимые для универсального компьютера, но ни одно из них не было вполне универсальным по своей конфигурации. Машины Colossus применялись только для дешифрации, и после войны большая часть из них была разобрана. Машина Цузе была уничтожена в ходе бомбардировок Германии союзниками. А вот ENIAC’у судьба позволила совершить скачок к универсальности: после войны ему нашли массу применений, для которых он никогда не предназначался, таких как прогнозирование погоды и проект создания водородной бомбы.
В истории развития электронных технологий после Второй мировой войны преобладала миниатюризация, и в каждом новом устройстве реализовывались всё более и более микроскопические переключатели. Около 1970 года эти усовершенствования вызвали скачок к универсальности, когда несколько компаний независимо друг от друга создали микропроцессор, универсальный классический компьютер на одной кремниевой микросхеме. С этого момента разработчики любого устройства для обработки информации могли взять микропроцессор и настраивать его — программировать — под определённые задачи, которые устройство должно было выполнять. Сегодня стиральная машина, стоящая у вас дома, наверняка управляется компьютером, который можно было бы запрограммировать для решения задач астрофизики или обработки текстов, если бы у него были подходящие устройства ввода-вывода и достаточный объём памяти для хранения необходимых данных.
Удивительно, но в этом смысле (другими словами, если отбросить то, что связано со скоростью, ёмкостью памяти и устройствами ввода-вывода) «люди-компьютеры» девятнадцатого века, паровая аналитическая машина с её звонками и свистками, ламповые вычислительные машины времён Второй мировой войны, занимавшие целые комнаты, и современные суперкомпьютеры выполняют один и тот же набор вычислений.
Другая их общая черта — то, что все они цифровые: они работают с информацией в форме дискретных значений физических величин: к примеру, электронный переключатель может быть включён или выключен, а зубец шестерёнки находиться в одном из десяти положений. Широко распространённые когда-то альтернативные, «аналоговые», компьютеры, такие как логарифмическая линейка, в которых информация представляется в виде непрерывных физических переменных, сегодня практически не используются[36]. Дело в том, что современный цифровой компьютер можно запрограммировать так, что он сымитирует любое такое устройство и будет работать лучше практически во всех приложениях. В результате скачка к универсальности в цифровых вычислениях аналоговые компьютеры были забыты. И это было неизбежно, ведь универсального аналогового компьютера не существует.
Причина тому — необходимость исправления ошибок: ошибки, накапливающиеся в ходе длинных вычислений из-за неидеальных компонентов, тепловых флуктуаций, случайных внешних воздействий, сбивают аналоговые компьютеры с намеченного пути вычислений. Возможно, это прозвучит как незначительное или парохиальное суждение, но всё как раз наоборот. Без исправления ошибок весь процесс обработки информации, а значит, и создания знаний, будет неизбежно ограничен. Исправление ошибок относится к началу бесконечности.
К примеру, система подсчёта «палочек» универсальна, только если она цифровая. Представьте себе, что какие-нибудь древние пастухи попытались бы вычислить не количество голов, а общую длину стада. Выпуская козу из загона, они бы отматывали нитку длиной с козу. А потом, по возвращении коз, сматывали бы нитку обратно. Когда весь клубок оказывался бы смотанным, это означало бы, что все козы вернулись в загон. Но на деле из-за накопления ошибок измерения всегда либо оставалась бы лишняя часть нити, либо её не хватало. Любая заданная точность измерений предполагала бы максимальное число коз, которое можно надёжно подсчитать таким «аналоговым» способом. То же будет верно и для всех арифметических операций, производимых с помощью таких «палочек». Каждый раз, когда соединяли нити, представляющие несколько стад, или одну нить разрезали на две части, чтобы отметить разделение стада, когда её «копировали», отмеряя ещё одну такой же длины, появлялись бы ошибки. Их можно было бы сгладить, повторив каждую операцию много раз, а затем взяв среднюю длину. Но операции сравнения и копирования длин сами могут выполняться лишь с конечной точностью, и поэтому с их помощью нельзя сократить темп накопления ошибок в расчёте на один шаг, ниже этого уровня погрешности. Таким образом, появилось бы максимальное число последовательных операций, которые можно выполнить, прежде чем результат окажется бесполезен для заданной цели, а значит, аналоговые вычисления никогда не могут быть универсальными.
Нам же нужна система, которая принимает наличие ошибок как должное, но исправляет их при появлении — это случай того, что «проблемы неизбежны, но их можно решить» на самом низшем уровне эмерджентности, связанной с обработкой информации. В аналоговых вычислениях исправление ошибок сталкивается с основной логической проблемой, заключающейся в том, что невозможно сразу отличить значение с ошибкой от правильного, потому что согласно самой природе аналоговых вычислений каждое значение может оказаться правильным. Правильной могла быть любая длина нити.
А в вычислениях, которые ограничиваются целыми числами, это не так. В случае с верёвкой мы могли бы представлять целые числа как верёвку длиной в целые числа сантиметров. После каждого шага мы обрезаем или удлиняем верёвку до ближайшего сантиметра. Тогда ошибки перестанут накапливаться. Предположим, например, что эти измерения можно производить с допустимым отклонением в одну десятую сантиметра. Тогда после каждого шага все ошибки будут обнаружены и устранены, что исключит ограничение на число последовательных шагов.
Так что все универсальные компьютеры являются цифровыми; и во всех присутствует исправление ошибок согласно одной и той же базовой логике, только что мною описанной, хотя реализована она множеством различных способов. В вычислительных машинах Бэббиджа на весь континуум углов, под которыми может быть ориентировано зубчатое колесо, приходилось только десять различных значений. После такого перевода в цифровой вид зубцы могли автоматически исправлять ошибки: после каждого шага любой незначительный сдвиг в ориентации колеса от десяти идеальных положений немедленно исправлялся до ближайшего из них. Если бы значения присваивались всему континууму углов, то номинально каждое такое колесо смогло бы переносить (бесконечно) больше информации; но в действительности в отсутствие надёжного способа извлечения информации нельзя говорить о её хранении.
К счастью, то, что обрабатываемая информация должна быть цифровой, не умаляет универсальности цифровых компьютеров или законов физики. Если измерения длин коз в целых сантиметрах недостаточно для конкретной цели, используйте целое число десятых долей сантиметра — или миллиардных. То же верно и для всех других приложений: законы физики таковы, что поведение любого физического объекта — и это относится к любому другому компьютеру — можно смоделировать с помощью универсального цифрового компьютера с любой желаемой точностью. Нужно просто аппроксимировать непрерывно изменяющиеся величины достаточно мелкой сеткой дискретных.
Из-за необходимости исправления ошибок все скачки к универсальности происходят в цифровых системах. Именно поэтому в разговорных языках слова строятся из конечного набора элементарных звуков: речь невозможно было бы понять, если бы она была аналоговой. Невозможно было бы повторить или даже запомнить сказанные кем-то слова. И поэтому не важно, что универсальные системы письма не позволяют идеально представить аналоговую информацию, такую как тон голоса. Его никак нельзя идеально передать. По той же причине с помощью самих звуков можно представить лишь конечное число возможных значений. Например, люди различают только около семи уровней громкости звука. Это приближённо отражено в стандартном нотном письме, в котором есть около семи различных символов для громкости (такие как p, mf, f и так далее[37]). И по той же причине говорящие могут иметь в виду лишь конечное число возможных значений каждого высказывания.
Ещё одна поразительная связь между всеми этими столь различными скачками к универсальности состоит в том, что все они происходят на Земле. Вообще говоря, все известные скачки к универсальности происходили под покровительством человека, кроме одного, о котором я ещё не упоминал и из которого исторически появились все остальные. Он случился на заре развития жизни.
В современных организмах работает сложный и очень запутанный с химической точки зрения механизм воспроизведения генов. У большинства видов гены выступают в роли шаблонов для формирования цепочек аналогичных молекул, РНК. Последние затем действуют как программы, направляющие синтез составляющих организм химических соединений, главным образом ферментов, которые являются катализаторами. Катализатор — это своего рода строитель, он стимулирует изменение других химических соединений, но сам при этом не меняется. Эти катализаторы, в свою очередь, управляют всеми химическими процессами и регуляторными функциями в организме, а значит, определяют сам организм, включая — что особенно важно — процесс, при котором копируется ДНК. В рамках данного изложения нам не важно, как развился этот сложный механизм, но ради определённости я дам набросок того, как это могло произойти.
Около четырёх миллиардов лет назад, вскоре после того, как поверхность Земли охладилась достаточно, чтобы на ней могла конденсироваться жидкая вода, океаны перемешивались вулканами, метеоритами, штормами и приливами, которые были намного сильнее нынешних (поскольку Луна была ближе к Земле). В них также кипела химическая активность: постоянно образовывались и видоизменялись разнообразные молекулы — одни самопроизвольно, другие с помощью катализаторов. Случилось так, что один такой катализатор смог катализировать образование тех самых типов молекул, из которых строился и он сам. Этот катализатор ещё не был живым, но стал первым намёком на жизнь.
Он ещё не развился до катализатора чётко направленного действия, поэтому также ускорял образование и некоторых других химических соединений, включая вариации самого себя. И те из них, которые лучше других стимулировали своё собственное формирование (и замедляли саморазрушение), становилось более многочисленными по сравнению с другими вариациями. В свою очередь они тоже стимулировали воспроизводство вариаций самих себя, и так эволюция продолжалась.
Постепенно способность катализаторов стимулировать воспроизводство себя обрела устойчивость и достаточную специфичность, так что их стало можно называть репликаторами. Так эволюция порождала репликаторы, которые воспроизводили себя всё быстрее и надёжнее.
Различные репликаторы начали объединяться в группы, члены каждой из которых специализировались на вызывании одной части сложной сети химических реакций, совокупным результатом которых должно было стать создание большего числа копий всей группы. Такая группа уже представляла собой рудиментарный организм. К этому времени жизнь находилась на стадии, примерно аналогичной римским цифрам или печати с металлических пластин: каждый репликатор уже не был сам за себя, но универсальной системы, настроенной или запрограммированной на воспроизводство специфических веществ, ещё не было.
Самыми удачными репликаторами могли быть молекулы РНК. Они обладают собственными каталитическими свойствами, зависящими от точной последовательности составляющих их молекул (или оснований, похожих на основания ДНК). В результате процесс стал ещё менее похож на простой катализ и больше похож на программирование — на языке или генетическом коде, в котором основания выступали в качестве алфавита.
Гены — это репликаторы, которые можно интерпретировать как инструкции в генетическом коде. Геномы — это группы генов, зависящие друг от друга в плане репликации. Процесс копирования генома называется жизнью организма. Таким образом, генетический код — это тоже язык, используемый для задания организмов. В какой-то момент эта система перешла на репликаторы, состоящие из ДНК, которая более стабильна, чем РНК, и поэтому больше подходит для хранения больших объёмов информации.
Знание того, что произошло дальше, может скрыть от нас то, насколько это замечательно и загадочно. Изначально генетический код и механизм его интерпретации развивались в организмах наряду со всем остальным. Но настал момент, когда код перестал развиваться, а организмы — нет. В тот момент в системе кодировалась информация не более чем о примитивных одноклеточных созданиях. Однако практически все последующие организмы на Земле до сегодняшнего дня не только основываются на репликаторах в виде ДНК, но и используют один и тот же алфавит оснований, сгруппированных в «слова» из трёх оснований, лишь с небольшими вариациями значений этих «слов».
Это означает, что генетический код, рассматриваемый как язык для задания организмов, характеризуется феноменальной сферой охвата. Он развивался только до состояния, позволившего определять организмы без нервной системы, без возможности двигаться или прикладывать силу, без внутренних органов и органов чувств; организмы, образ жизни которых немногим отличался от синтеза своих собственных структурных составляющих с последующим делением пополам. И тем не менее сегодня с помощью того же самого языка задаётся «аппаратное и программное обеспечение» для бесчисленного множества способов поведения многоклеточных, для которых не было близких аналогов у тех примитивных организмов, — таких как возможность бегать, летать, дышать, спариваться, распознавать хищников и добычу. Он также задаёт такие технические приспособления, как крылья и зубы, и нанотехнологические, такие как иммунные системы, и даже мозг с его способностью разбираться в квазарах, разрабатывать с нуля другие организмы и удивляться своему существованию.
На протяжении всей своей эволюции генетического кода он демонстрировал гораздо меньшую сферу охвата. Возможно потому, что каждый последующий его вариант служил для задания лишь нескольких видов, очень похожих друг на друга. Так или иначе, часто должно было случаться так, что вид, заключавший в себе новое знание, задавался в новом варианте генетического кода. Но затем эволюция остановилась, причём тогда, когда сфера охвата уже была огромной. Почему так произошло? Не правда ли, похоже, что произошёл скачок к своего рода универсальности?
То, что случилось дальше, следовало той же самой грустной картине, описанной мною в других рассказах об универсальности: с тех пор как система достигла универсальности и перестала дальше развиваться, прошло более миллиарда лет, а с её помощью всё ещё создавались только бактерии. Это означает, что та сила, которой, как мы видим сейчас, обладала система, должна была лежать без дела дольше, чем когда-то из неживых предшественников развивалась сама система. Если в какой-то момент за этот миллиард лет внеземные цивилизации и посещали Землю, они бы не увидели никаких свидетельств того, что генетический код может задавать что-то сильно отличающееся от организмов, которые он определял в самом начале.
Широта охвата всегда имеет объяснение. Но в данном случае, насколько мне известно, это объяснение ещё не найдено. Если причина скачка широты охвата в том, что это был скачок к универсальности, то что такое универсальность? Предположительно генетический код — это не универсальное средство задания форм жизни, потому что он полагается на особые типы химических соединений, такие как белки. Мог ли он быть универсальным конструктором? Возможно. Иногда ему удаётся строить из неорганических материалов, таких как фосфат кальция в костях или магнитный железняк в системе ориентации в мозгу голубя. С его помощью биотехнологи уже производят водород и добывают уран из морской воды. Генетический код может запрограммировать организмы так, что они будут сооружать что-либо вне своих тел: птицы строят гнёзда, а бобры — плотины. Возможно, в генетическом коде можно описать организм, жизненный цикл которого будет включать постройку космического корабля с ядерной установкой. А может, и нет. Мне кажется, генетический код обладает не столь большой, но ещё не до конца понятной универсальностью.
В 1994 году Леонард Адлеман, специалист по компьютерной технике и молекулярной биологии, разработал и построил компьютер, состоящий из ДНК и ряда простых ферментов, и продемонстрировал, что он может производить некоторые сложные вычисления. В то время ДНК-компьютер Адлемана был, наверное, самым быстрым в мире. В дальнейшем стало ясно, что подобным образом можно построить универсальный классический компьютер. Отсюда мы знаем, что, какой бы ни была ещё универсальность ДНК-системы, она в течение миллиардов лет обладала вычислительной универсальностью, но до Адлемана её никто не использовал.
Загадочная универсальность ДНК как конструктора, возможно, была первой возникшей универсальностью. Но из всех различных её форм самой важной с физической точки зрения является специфическая универсальность людей, а именно то, что они являются универсальными объяснителями, что делает их также универсальными конструкторами. Влияние этой универсальности, как я уже говорил, поддаётся выражению лишь посредством полного спектра фундаментальных объяснений. Это также единственный тип универсальности, способный переступить через свои парохиальные истоки: универсальные компьютеры не могут быть по-настоящему универсальны без людей, которые будут неограниченно снабжать их энергией и обслуживать. То же верно и для всех остальных технологий. Даже жизнь на Земле в конце концов перестанет существовать, если люди не захотят этому помешать. Только люди могут надеяться, что сами обеспечат себе неограниченное будущее.