Но мой переход к новой специализации неожиданно совпал с подъемом Кремниевой Долины и компьютерным бумом. Малочисленные специалисты в первых компаниях делали состояния в восьмидесятых, и я тоже неплохо заработал в первой компании, в которую устроился. Я встретил Джулию, и мы поженились, у нас появились дети. Все было прекрасно. Мы оба много зарабатывали, не особенно напрягаясь. Я перешел в другую компанию — на место с большей ставкой, большими приработками, большими возможностями. В девяностые я был на волне, работал в самой передовой области. К тому времени я перестал сам заниматься программированием и руководил разработкой новых программ. Все складывалось как будто само собой, мне не приходилось делать никаких особых усилий, чтобы добиться успеха. Я просто плыл по течению жизни. Мне никогда не приходилось самоутверждаться и кому-то что-то доказывать.
Так обо мне думала Эллен. Сам я воспринимал это совсем по-другому. В компаниях Кремниевой Долины была самая жестокая конкуренция за всю историю планеты. Каждый должен был работать по сотне часов в неделю. Постоянно приходилось гнать работу, чтобы не отстать от конкурентов. Время, отпущенное на разработку, постоянно урезалось. Сначала на разработку нового программного продукта или новой версии отводилось три года. Потом этот срок сократили до двух лет. Потом — до восемнадцати месяцев. Теперь на это отводится двенадцать месяцев, новую версию нужно выпускать каждый год. Если учесть, что на выявление и полное устранение дефектов уходит не меньше четырех месяцев, то на саму работу остается всего восемь. Восемь месяцев — на то, чтобы перелопатить миллионы строчек кода и убедиться, что они работают нормально.
Другими словами, Кремниевая Долина — не место для пассивных людей, и я никакой не пассивный. Я не сидел на заднице ни единой минуты, ни одного дня. И мне каждый день приходилось самоутверждаться и доказывать свою состоятельность — иначе я бы пропал.
Вот как я о себе думал. И я уверен, что прав я, а не Эллен.
Но кое в чем Эллен тоже права. В моей карьере долго держалась полоса удачи. Поскольку изначально я специализировался по биологии, это дало мне преимущество, когда начали делать компьютерные программы, имитирующие биологические системы. На самом деле были и такие программисты, которым приходилось метаться между компьютерными симуляторами и наблюдениями за животными в дикой природе, чтобы применить уроки, почерпнутые из одного, в другом.
Более того, я занимался биологией популяций — наукой о группах живых существ. А компьютерная наука развивалась в направлении все более массивного использования параллельных сетевых структур — программирования популяций самостоятельных разумных агентов. Чтобы разбираться с популяциями агентов, необходим особый склад мышления. А я много лет учился думать такими категориями.
Поэтому я прекрасно соответствовал требованиям, которые предъявлялись к специалистам в новых областях программирования. И я многого достиг в этой области. Я оказался в правильное время в правильном месте.
Это действительно была правда.
Агентно-базированные программы, которые моделировали поведение биологических популяций, приобретали все большее значение в реальном мире. Например, мои собственные программы, имитирующие пищевое поведение популяции муравьев, использовались для регулирования работы больших коммуникационных сетей. Наши программы, основанные на модели поведения рабочих термитов в колонии, применялись для контролирования термостаза в небоскребах. Очень близки к этому были программы, моделирующие генетический отбор, и они применялись в очень многих областях. Например, была такая программа — свидетелю в суде показывали портреты девяти лиц и спрашивали, кто из них больше всего похож на преступника (причем преступника среди них не было), потом показывали еще девять лиц и снова предлагали выбрать самого похожего. И после многократных показов разных лиц, на основе тех портретов, которые выбирал свидетель, компьютерная программа постепенно синтезировала гораздо более адекватное изображение преступника, чем могли бы нарисовать полицейские художники по словесному описанию. Свидетелям не нужно было говорить, почему именно они выбрали то или иное лицо, свидетели просто выбирали, а программа обрабатывала данные.
А потом биотехнологические компании обнаружили, что не могут успешно создавать новые протеины, потому что протеины имели тенденцию сопоставляться случайным образом. Поэтому теперь новые протеины «эволюционировались» с помощью программ генетической селекции. Все эти процедуры стали обычными и привычными всего за несколько последних лет. Возможности таких программ все больше расширялись, их значение постоянно возрастало.
Поэтому — да, я действительно оказался в правильное время в правильном месте. Но только я не пассивный. Мне просто повезло.
Я еще не помылся и не побрился. Я пошел в ванную, стянул футболку и стал рассматривать себя в зеркале. И поразился тому, какой рыхлый у меня живот. А ведь я этого даже не замечал. Конечно, мне уже сорок лет, и, если честно, в последнее время я мало занимался спортом. Не потому, что у меня депрессия. Я все время был занят с детьми и все время сильно уставал. Мне просто в голову не приходило заняться физкультурой.
Я смотрел на свое отражение в зеркале и думал — неужели Эллен права?
Со знаниями по психологии есть одна проблема — их невозможно применить к себе самому. Люди могут быть невероятно проницательными в отношении своих друзей, родственников, детей. Но в себе самих они разобраться не могут. Те же самые люди, которые хладнокровно и трезво смотрят на окружающий мир, о себе самих могут только фантазировать. Психология не срабатывает, когда ты смотришь в зеркало. Насколько мне известно, этому странному явлению нет объяснения.
Лично я всегда думал, что разгадка кроется в компьютерном программировании, в процедуре, которая называется рекурсия. Рекурсия означает, что программу как бы зацикливают на самой себе, заставляя использовать только ту информацию, которая содержится в ней самой, много раз, пока не будет получен какой-то результат. Рекурсия используется, например, в алгоритмах сортировки данных. Но это нужно делать осторожно, потому что существует риск бесконечного регресса. Бесконечный регресс — это компьютерный аналог зеркальной комнаты, где зеркала отражаются в зеркалах и получается бесконечное множество отражений. Программа продолжает работать, повторяя один и тот же процесс, но ничего не происходит, никакого результата не получается. И машина зависает.
Я всегда думал, что нечто подобное происходит, когда человек пытается обратить свой внутренний психологический аппарат на самого себя. Мозг зависает. Мыслительный процесс продолжается, снова и снова повторяя одни и те же действия, но никаких выводов не получается. Да, наверное, это действительно так и есть — ведь известно, что о самом себе человек может думать бесконечно. Некоторые думают немного иначе. Однако люди, как правило, никогда не меняются в результате интенсивного самоанализа. И не начинают лучше себя понимать. Очень редко случается, что таким образом человек узнает о себе что-то новое.
Как видно, нужен кто-то другой, чтобы сказать тебе, кто ты такой, или подержать перед тобой зеркало. Если задуматься, это кажется очень странным.
А может, и нет.
В отношении искусственного интеллекта давно существует вопрос, способна ли программа осознать саму себя? Большинство программистов считают, что это невозможно. Потому что даже у людей ничего не получается, как бы ни пытались они это сделать.
Но есть и более фундаментальная версия подобного вопроса, философский вопрос — может ли машина понять, что она делает? Некоторые считают, что это тоже невозможно. Машина не может осознать себя по той же причине, по какой мы не можем укусить свои собственные зубы. И, похоже, это в самом деле правда. Человеческий мозг — самая сложная структура в известной вселенной, но мозги все-таки очень мало знают о самих себе.