Наука и одержимый программист
Существует разница между машинами, имеющими реальное физическое воплощение и предназначенными для преобразования обычного вида энергии в другой, и абстрактными, т. е. машинами, существующими лишь в качестве идей. Законы, олицетворяемые машинами первого типа, должны представлять собой некоторое подмножество законов, которым подчиняется реальный мир. Законы, определяющие поведение абстрактных машин, не обязательно должны быть связаны подобными ограничениями. Можно, например, создать абстрактную машину, внутренние сигналы которой распространяются по ее компонентам со скоростями, большими скорости света, что явно противоречит законам физики.
То обстоятельство, что реально такую машину построить нельзя, не препятствует исследованию ее поведения. Оно может быть предметом размышлений и даже поддается имитации на вычислительной машине. (Действительно, Центр исследований в области образования [Прим. перев.: Education Research Center] Массачусетского технологического института создал фильмы (они воспроизводятся вычислительной машиной), позволяющие зрителям наблюдать мир, в котором транспортные средства движутся с физически невозможными скоростями.) Воображение человека должно преступать пределы физических законов хотя бы для того, чтобы оказаться способным постичь эти законы.
Вычислительная машина реализована физически, поэтому она не может нарушать физические законы. Однако она не характеризуется полностью проявляемым ею взаимодействием с реальным миром. Электроны сливаются в машине в потоки, ее ленты движутся и лампочки мерцают - все это, несомненно, происходит в строгом соответствии с законами физики, а направления электронных рек, протекающих в вычислительной машине, определяются открытием и закрытием вентильных схем, т. е. физическими событиями. Игра же, которую разыгрывает вычислительная машина, определяется системами идей, диапазон которых ограничивается только пределами воображения человека, физические границы для событий, происходящих внутри вычислительной машины на электронном и механическом уровнях, с точки зрения этой игры несущественны - точно так же, как и то, насколько крепко шахматист сжимает своего слона или как быстро он передвигает его по доске.
Следовательно, работа вычислительной машины под управлением хранимой программы обособляется от реального мира так же, как и всякая абстрактная игра. Шахматная доска, 32 шахматные фигуры и правила игры в шахматы образуют мир, совершенно независимый от любого другого мира. То же самое происходит и в случае вычислительной машины, снабженной наставлением по эксплуатации. Шахматист, сделавший плохой ход, не может оправдать свою ошибку ссылками на некий эмпирический факт, который он не мог знать, а если бы знал, пришел бы к лучшему решению. И программист, чья программа проявляет себя не так, как он предполагал, тоже не может искать ошибку за пределами созданной им самим игры. Он мог неправильно истолковать инструкции по работе с вычислительной системой или неправильно понять особенности своей вычислительной системы так же, как начинающий шахматист мог неправильно истолковать, скажем, правила рокировки.
Однако никакие данные из мира, внешнего по отношению к используемой им вычислительной системе, вообще не могут иметь отношения к поведению того мира, который он создал. Отказа вычислительной машины вести себя точно в соответствии с намерениями программиста нельзя даже приписать исключительно какому-то ограничению, свойственному именно данной вычислительной машине. В сущности, любая вычислительная машина общего назначения является некоторой разновидностью универсальной машины, способной в принципе делать все, что способна делать любая другая вычислительная машина общего назначения. В таком очень существенном смысле любая конкретная вычислительная машина общего назначения не имеет ограничений, свойственных исключительно ей.
Таким образом, вычислительная машина представляет собой поле для игры, на котором можно разыграть любую игру, созданную вашим воображением. Можно создавать миры, в которых нет силы тяжести или два тела притягиваются друг к другу не в соответствии с ньютоновым законом обратной пропорциональности квадрату расстояния, а по закону обратной пропорциональности кубу (или n-й степени) расстояния, или миры, в которых время скачет туда и обратно, а рисунок этой пляски может быть таким сложным или примитивным, как нам заблагорассудится. Можно вообразить общества с такой экономикой, где цены на товары, имеющиеся в изобилии, растут, а когда товаров становится мало, падают, или общества, в которых лишь союзы "мужчин" в состоянии производить потомство. Короче говоря, можно самим писать пьесы и ставить их в театре, свободном от любых ограничений. И, что важнее всего, для этого необходимо знать лишь то, что можно непосредственно получить из описания соответствующей вычислительной системы или построить собственным воображением.
Рассмотрим для сравнения процесс разработки схемы вычислительного устройства. Соответствующий сумматор можно построить для машины с базовым временем цикла, например в одну микросекунду, т. е. для машины, совершающей ежесекундно миллион циклов (пар), включающих рабочее состояние и состояние покоя. Допустим, что подобный сумматор построен и установлено, что он функционирует правильно. Допустим также, что разработчики сумматора установили его затем на машине, работающей в десять раза быстрее ходной машины, т. е. включающейся и выключающейся 10 млн. раз в секунду, и предположим, что в новых условиях сумматор не работает. В чем может быть причина отказа? И, что важнее, к каким источникам знаний может оказаться необходимым обратиться, чтобы правильно диагностировать его? Правила игры, задаваемые
абстрактными уравнениями, которые определяют поведение вентильных схем И, ИЛИ и НЕТ, и схемой сумматора, здесь явно недостаточны. В абстрактной конструкции сумматора ничего не изменилось. Согласно нашей гипотезе изменилась только скорость, с которой сумматор вынужден работать.
Таким образом, отказы функционирования сумматора должны вызываться переходом к новой скорости. Чтобы установить, каким образом восстановить работоспособность сумматора или, в конце концов, выяснить,
возможна ли вообще физически работа любого устройства с такой высокой скоростью, следует использовать соответствующие физические знания. Этот пример, хотя и упрощенный, но не нереальный, и поэтому на нем стоит остановиться несколько подробнее. Почти каждому известно, что струны скрипки (а также и другие объекты) обладают собственной (или резонансной) частотой колебаний. Например, собственная частота струны А [Прим. перев.: Струна А - струна скрипки, высота настройки которой соответствует звуку "ля" первой октавы. В системе слогового названия звуков через "А" обозначается тон звукоряда, имеющий слоговое название "ля"] равна 435 колебаниям в секунду. Если две струны А находятся рядом и одна из них начала колебаться с собственной частотой из-за того, что ее коснулись, то другая струна также начнет колебаться (естественно, с такой же частотой). Если же первая струна будет вынуждена совершать колебания с некоторой частотой, отличающейся от ее резонансной, то, несмотря на то, что обе струны имеют строй "А", вторая струна не будет колебаться. В сущности, струны представляют собой одновременно передающие и приемные антенны на собственной акустической частоте.
Имея это в виду, допустим, что двое детей, живущих на одной улице напротив друг друга, смастерили систему сигнализации из двух параллельных струн, расположенных поперек улицы и соединяющих их дома. При появлении отца вызываются колебания одной струны, а другая струна должна сигнализировать о появлении матери. Если, однако, одна струна колеблется с собственной частотой, то со второй происходит то же. В результате система не сможет выполнять предписанные ей функции: она не будет сигнализировать о появлении только одного из родителей.
В этом смысле электрические схемы похожи на акустические системы, хотя соответствующие частоты намного выше тех, на которых оперируют их акустические аналоги. Электрические схемы, в частности, имеют собственные (резонансные) частоты. Многие из них можно настроить на резонанс на специально подобранных частотах, чтобы, например, они работали в качестве антенн радиовещательных станций. Домашние радиоприемники снабжены подобным образом настраиваемыми контурами, выполняющими функции приемных антенн. Прискорбным недостатком нашего сумматора считается следующее: хотя ни один из его контуров не резонирует так, чтобы между ними оказались возможными прием и передача сигналов, когда они работают на частоте 1 млн. Гц/с, они действительно работают как передающие и приемные антенны на более высоких рабочих частотах. Поэтому они вносят путаницу в информацию, для обработки которой созданы.
Инженеры-электрики, получившие необходимую подготовку, естественно, знакомы с теорией, которая объясняет подобные явления. Другие устанавливают причину отказа на основе предыдущего опыта. Инженер же, не обладающий ни теоретическими знаниями, ни опытом, никогда не сможет обнаружить причину отказа, пользуясь только дедуктивной логикой. Он попытается исправить схему, действуя ремесленнически наугад, либо получив помощь со стороны, либо проведя заново все исследование, выполненное таким человеком, как Генрих Герц, первооткрыватель электромагнитного излучения - явления, о котором идет речь. Мы считаем работу Герца творческой именно потому, что она заключалась в наблюдении явлений, еще не упоминавшихся ни в одном из имевшихся в то время руководств, и потому, что из наблюдения частностей он вывел обшие закономерности. Этот путь прямо противоположен дедукции.
Инженер безоговорочно погружен в реальный мир. Его творчество ограничено законами этого мира; он, в конце концов, может делать только то, что соответствует этим законам. Но он обречен заниматься своим делом в каком-то подобии кафкианского замка, который даже в принципе покинуть нельзя. Дело в том, что у него нет полного плана, указывающего, какие "комнаты" существуют в этом мире, какие "двери" их соединяют и как эти двери открываются. Когда какое-то устройство, созданное инженером, не работает, он не всегда знает или может установить при помощи только собственных рассуждений, находится ли он на пороге успеха, и лишь его грубые ошибки помешали ему преодолеть этот порог, либо он попал в безысходный тупик. Тогда он вынужден обращаться к своим учителям, коллегам, книгам, чтобы они сообщили или хотя бы
намекнули на рецепт, который заставит его равнодушного партнера (природу) вывести его из тупика и указать дальнейший путь.
Программист вычислительных машин - творец миров, в которых он сам является единственным законодателем (так же, как и создатель любой игры). Но миры практически неограниченной сложности можно создавать в форме программ для вычислительных машин. Более того (и именно это является решающим моментом) определенные и построенные подобным образом системы исполняют собственные запрограммированные сценарии. Они охотно следуют этим законам и совершенно определенно демонстрируют свое послушание. Ни один драматург, режиссер или император, сколь бы могущественны они ни были, никогда не могли пользоваться столь абсолютной властью на театральных подмостках или поле брани и командовать такими неуклонно послушными актерами или войсками.
Было бы поразительно, если бы замечание лорда Актона, что власть разлагает, оказалось бы неприменимо к случаю, когда всемогущество достижимо столь просто. На самом деле оно применимо. Разложение, порождаемое всемогуществом программиста вычислительной машины, проявляется в форме, поучительной для сферы, значительно более обширной, чем мир вычислительной техники. Чтобы оценить его, придется обратиться к примеру психического расстройства, хотя и очень давно известного, но, по-видимому, преобразовавшегося благодаря вычислительным машинам в новую разновидность - манию программирования.
Где бы ни организовывались вычислительные центры - в бесчисленных местах в Соединенных Штатах, так же, как фактически во всех промышленных районах мира,-можно наблюдать блестящих молодых людей, всклокоченных, часто с запавшими, но сияющими глазами, которые сидят за пультами управления вычислительных машин, сжав в напряжении руки в ожидании возможности пустить в ход свои пальцы, уже занесенные над кнопками и клавишами, приковывающими их внимание так же, как брошенная игральная кость приковывает взгляд игрока. Если они не находятся в таком трансе, то часто сидят за столами, заваленными машинными распечатками, которые они сосредоточенно изучают подобно людям, одержимым постижением кабалистического текста. Они работают чуть ли не до полного изнеможения, по 20-30 часов подряд. Еду, если только они о ней заботятся, им приносят (кофе, кока-кола, бутерброды). Если возможно, они спят около вычислительной машины на раскладушках, но всего несколько часов, а затем-снова за пульт управления или к распечаткам. Их измятая одежда, немытые и небритые физиономии, нечесаные волосы-все свидетельствует о том, что они не обращают внимания ни на свое тело, ни на мир, в котором живут. Они существуют, по крайней мере когда они так увлечены, лишь в связи с вычислительными машинами и ради них. Они - "машинные наркоманы", одержимые программисты. Это явление наблюдается во всем мире.
Как же отличить одержимого программиста от просто преданного своему делу трудолюбивого программиста-профессионала? В первую очередь, на основе того, что обычный профессиональный программист занимается задачей, требующей решения, а одержимый программист рассматривает задачу в основном в качестве предлога для обращения к вычислительной машине. Профессиональный программист, как правило, обсуждает с другими свои проблемы, связанные с содержанием задачи и техникой программирования, Обычно он проделывает обширную подготовительную работу (построение блок-схемы, написание программы) прежде, чем приступить к работе собственно с вычислительной машиной. Его сеансы работы с вычислительной машиной бывают сравнительно непродолжительными и он даже перепоручает кому-нибудь работу за пультом управления. Он создает свои программы неторопливо и систематически. Если что-то не получается, он значительную часть времени проводит не возле вычислительной машины, а тщательно продумывает гипотезы, объясняющие отказы, и планирует эксперименты, позволяющие эти гипотезы проверять. И снова сам процесс выполнения программы на машине он может доверить, кому-то. Он способен, ожидая результатов от ЭВМ, заниматься другими аспектами своей работы, например документированием уже законченной части. Когда, наконец, он завершит программу, которую должен был разработать, программист в состоянии составить ее точное описание и перейти к другим проблемам.
Профессионалы считают программирование средством достижения цели, а не целью как таковой. Они удовлетворены решением содержательной задачи, а не тем, что вычислительная машина подчиняется их воле. Обычно одержимый программист - превосходный "технарь", отлично во всех подробностях знающий вычислительную машину, на которой работает, ее периферийное оборудование, операционную систему и т. п. Часто его терпят в вычислительном центре благодаря его знанию системы и умению быстро, скажем, за один или два сеанса по 20 ч писать небольшие вспомогательные системные программы. Со временем вычислительный центр и в самом деле мог бы использовать ряд его программ.
Однако, поскольку одержимого программиста едва ли можно побудить заниматься чем-либо кроме программирования, он почти никогда не документирует свои программы после того, как кончает ими заниматься. Центр может попасть в зависимость от него в том, что касается обучения использованию и эксплуатации написанных им программ, структура которых вряд ли кому-нибудь кроме него понятна. Его положение несколько напоминает статут служащего банка, которого, хотя он ничем особенно не занимается, держат на работе потому, что он один знает комбинации замка сейфа. Основные интересы одержимого программиста связаны не с маленькими программами, а с очень большими, очень "престижными" программными системами.
Обычно системы, за создание которых он принимается и над которыми лихорадочно работает иногда месяц, два или три, имеют чрезвычайно претенциозные, но исключительно нечетко сформулированные цели. Вот несколько примеров таких честолюбивых замыслов: новые машинные языки, облегчающие связь человека с вычислительной машиной; универсальная система, поддающаяся обучению любой настольной игре; система, которая облегчает специалистам в области вычислительной техники создание сверхсистем (самая любимая задача. Для многих таких проектов характерно, что программист может долго считать, будто для ихвыполнения достаточно лишь знаний в области вычислительных машин, программирования и тому подобных предметов. Такими знаниями он, конечно, обладает в изобилии. На самом деле работы такого рода часто прекращаются именно в тот момент, когда они теряют свой чисто "кровосмесительный" характер, т. е. программирование приходится прервать для того, чтобы получить информацию из мира вне пределов вычислительной техники. В отличие от профессионала одержимый программист не может заниматься другими задачами, даже тесно связанными с его программой, в те периоды, когда он непосредственно не работает на машине. Он с трудом переносит разлуку с машиной. Если же волею обстоятельств ему приходится с ней расстаться, то по крайней мере с ним остаются его распечатки. Он штудирует их, рассказывает о них всякому, кто
согласен его выслушивать, хотя, естественно, никто разобраться в них не в состоянии.
Действительно, когда он охвачен своей манией, он не может говорить ни о чем, кроме своей программы. Но единственный момент, когда он счастлив, время, проведенное за пультом управления вычислительной машины. И тогда он не станет беседовать ни с кем, кроме машины. Скоро мы узнаем, о чем они беседуют. Одержимый программист посвящает работе над своими великими проектами столько времени, сколько ему удается. "Работать" - это, однако, не то слово, которое он использует; то, что он делает, он называет "хакированием". "То hack", согласно словарю, - это "рассекать беспорядочно, неумело или без определенной цели; кромсать с помощью или как бы посредством многократных ударов какого-либо рубящего инструмента" [Прим. перев.: Явление, о котором пишет здесь автор, не проявляется в советских вычислительных центрах в такой крайней степени, хотя для части программистов, действительно, очень характерно пренебрежение к документированию программ и особенно оповещению других о вносимых ими постоянно или время от времени изменениях.
Поэтому, насколько нам известно, в отечественном программистском жаргоне соответствующее понятие отсутствует. Поэтому нам, к сожалению, при передаче этого термина пришлось прибегнуть к транслитерации. Так возникли "хакирование" и "хакер" (кстати, в английском языке последний также является неологизмом)]. Я уже отмечал, что одержимый программист, или хакер, как он сам себя называет, обычно превосходный "технарь". Казалось бы, он не действует "неумело", как это указывается в определении. Однако определение справедливо здесь в том более глубоком смысле, что хакер "действует без определенной цели"; он не в
состоянии поставить перед собой ясно сформулированную долгосрочную цель и выработать план ее достижения, поскольку он обладает лишь умением, но не знанием. Он не располагает ничем, что он мог бы анализировать или синтезировать; короче говоря, у него нет предмета для построения теорий. Его мастерство, таким образом, бесцельно, даже беспредметно. Оно просто не имеет никакого отношения к чему-нибудь, кроме того инструмента, с помощью которого оно может быть реализовано. Его мастерство напоминает искусство переписчика в монастыре, хотя и неграмотного, но первоклассного каллиграфа.
Следовательно, все эти великолепные проекты должны неизбежно сопровождаться иллюзиями, а именно иллюзиями грандиозности. Он создаст одну грандиозную систему, в рамках которой все остальные специалисты будут потом писать свои системы (Следует отметить, что не все хакеры страдают патологией одержимого программиста, В самом деле, если бы не эта в высшей степени творческая работа людей, гордо называющих себя хакерами, немногие из сегодняшних изощренных вычислительных систем с разделением времени, трансляторов машинных языков, систем машинной графики и так далее вообще существовали бы.)
Конечно, можно создавать системы программирования без плана и без знания, не говоря уже о понимании соответствующих глубоких структурных проблем так же, как можно "хакировать" дома, города, системы плотин и национальную экономическую политику. По мере того как созданные подобным образом системы начинают разрастаться, они также становятся все более неустойчивыми. Если одна из функций такой системы
начинает выполняться непредписанным образом, то можно найти временное решение, обеспечивающее устранение явной неисправности. Когда же нет общей теории для системы в целом, последняя представляет собой лишь более или менее хаотическую совокупность подсистем, взаимное влияние которых на поведение друг друга можно обнаружить только частично и с помощью эксперимента. Часть времени, проводимого за пультом управления, хакер посвящает наращиванию новых подсистем на уже сформированную им структуру (он называет их "новыми средствами"), а остальное время - попыткам найти объяснения неправильного функционирования уже влюченных в систему подструктур. Вот о чем он беседует с вычислительной машиной.
Психологическая ситуация, в которой оказывается предающийся подобным занятиям одержимый программист, в основном определяется следующими двумя явно противоположными обстоятельствами:
1) он считает, что может заставить ЭВМ делать все, что он хочет;
2) вычислительная машина постоянно предоставляет ему
неопровержимые свидетельства его неудач. И это - позор для него. Здесь нет выхода. Инженер может смириться с тем, что есть вещи, которые он не знает. Программист же действует в мире, созданном исключительно им самим. Вычислительная машина бросает вызов его могуществу, а не знаниям. Возбуждение программиста достигает наивысшего, лихорадочного уровня тогда, когда он сталкивается с самой неясной ошибкой: все должно работать, но вычислительная машина тем не менее ведет себя позорно, не так, как следует, причем в самых таинственных, явно не связанных между собой (проявлениях. Именно в таких ситуациях система, созданная самим программистом, показывает, что у нее есть своя собственная жизнь и она определенно выходит из-под его контроля. Это та самая ситуация, когда идея о том, что вычислительную машину можно "заставить делать все, что угодно", становится очень уместной и реальной. Дело в том, что в этих обстоятельствах артефакт неправильного функционирования порожден самим программистом. Ложное поведение может быть, как мы уже указывали, исключительно следствием того, что сделано самим программистом. А это он, вероятно, в состоянии понять, устранить и переделать таким образом, чтобы
результат в большей степени соответствовал его целям.
Соответственно он приходит в неистовство и развивает бешеную активность, когда ему кажется, что наконец он нашел источник неприятностей. Если в этот момент время его работы за пультом подходит к концу, то он подвергает свою программу ужасному риску, внося в нее одно за другим в течение минут или даже секунд серьезные изменения, не заботять о таких "пустяках", как регистрация этих изменений, и умоляя дать ему еще минутку. В таких условиях он может очень быстро и фактически безвозвратно погубить результаты многих недель собственного труда. Если же ему удается обнаружить глубоко спрятанную ошибку, которая действительно отвечает за значительную долю неправильного функционирования, его радость неописуема. Он испытывает трепет, видя, как до того умиравшая программа неожиданно возвращается к жизни (по-другому это не назовешь). Когда обнаруживается и исправляется какая-то глубинная ошибка, многие отдельные части программы, не дававшие до тех пор ничего, кроме чего-то совершенно невразумительного, мгновенно становятся покладистыми и выдают предписанные результаты. У диагноста есть основания быть довольным и даже гордиться, если ошибка действительно коренилась где-то глубоко в системе.
Но гордость и воодушевление одержимого программиста очень быстротечны. Его успех заключается в том, что он продемонстрировал вычислительной машине, кто здесь хозяин. И показав, что он может заставить ее сделать то, что было ей предписано, он немедленно решает добиться от нее большего. В результате весь цикл начинается сначала. Программист начинает "улучшать" свою систему, скажем, увеличивая ее быстродействие, вводя дополнительные "новые средства" или упрощая ввод данных в систему и вывод их из нее. Модификация работающей программы неизбежно приводит к выходу из строя ряда ее подструктур; в конечном счете они представляют аморфную совокупность процессов, взаимодействие которых имеет в сущности случайный характер. Его явные попытки улучшить и перевести на новый, более высокий уровень свое произведение представляют собой на самом деле подлинное нападение на него же, единственный результат которого - возобновление борьбы одержимого программиста с вычислительной машиной.
Если же подрыв собственной работы программиста предотвращается, например, административным решением, то он впадает в депрессию, мрачнеет, перестает интересоваться чем бы то ни было вокруг. Лишь новая возможность поработать на машине может поднять его дух. Следует подчеркнуть, что нарисованный мною портрет наверняка опознают в любой точке мира, где есть вычислительная машина. Он воплощает разновидность психопатологии, значительно менее расплывчатую, чем, например, слабо выраженные формы шизофрении или паранойи. В то же время это чрезвычайно сильно выраженная форма расстройства, поразившая большую часть нашего общества.
Как же следует относиться к этому наваждению? В первую очередь необходимо убедиться в том, что это действительно мания. Обычно стремление достичь удовлетворения вызывает поведение, для которого характерны пристрастность и самопроизвольность. Удовлетворение подобных желаний вызывает удовольствие. Поведение одержимого программиста вынужденное; в том, как он себя ведет, мало самопроизвольности, и удовлетворение его номинальных желаний не вызывает у него удовольствия. У вычислительной машины он ищет не удовольствия, а ободрения, Аналогией с психопатологией такого рода является неумолимая и неосознанная тяга к утешению, характерная для одержимого игрока.
Одержимый игрок также четко отличается от профессионального игрока. Последний в некотором важном смысле вообще не игрок. (Можно не учитывать шулеров и профессиональных мошенников, поскольку ни те, ни другие не являются явно игроками.) Так называемый профессиональный игрок - это, в сущности, специалист по прикладной статистике и, возможно, по прикладной психологии. Его доходы почти не зависят от удачи. Он знаком с приложениями теории вероятностей и использует ее для подсчета своих шансов, а затем разыгрывает эти шансы в таких комбинациях и совокупностях, которые позволяют ему прогнозировать доход на период, скажем, в год с почти математической точностью. Это не азартная игра.
Существуют также люди, играющие в азартные игры, но не являющиеся ни профессиональными, ни одержимыми игроками. Для одержимого игрока игра - это все. Даже выигрыш менее важен, чем сама игра. Он счастлив, так сказать, только тогда, когда находится за игорным столом. Всякий, работавший в вычислительном центре или в казино, двери которых к ночи закрываются, узнает сцену, описанную Ф. М. Достоевским, который сам был страстным игроком, в "Игроке": "В одиннадцатом часу у игорных столов остаются настоящие, отчаянные игроки, для которых на водах существует только одна рулетка, которые и
приехали для нее одной, которые плохо замечают, что вокруг них происходит, и ничем не интересуются во весь сезон, а только играют с утра до ночи и готовы были бы играть, пожалуй, и всю ночь до рассвета, если б можно было. И всегда они с досадой расходятся, когда в двенадцать часов закрывают рулетку. И когда старший крупер перед закрытием рулетки, около двенадцати часов, возглашает: "Les trois derniers coups, messieurs!" [Прим. перев.: Три последних игры (букв: удара), господа! (франц.)], то они готовы иногда проставить на этих трех последних ударах все, что у них есть в кармане, - и действительно тут-то наиболее и проигрываются" [Прим. перев.: Цитата из романа "Игрок" приводится по тексту полн. собр. соч. Ф. М. Достоевского в 30-ти томах. - Л.: "Наука", т. V, 1973, с. 292].
Достоевский с тем же успехом мог бы описать и машинный зал. Медицинская литература, посвященная маниакальному пристрастию к игре, в основном занимается психогенезом этой мании и, следовательно, рассматривает ее почти исключительно с психоаналитических позиций. В мои задачи не входят психоаналитические рассуждения. Достаточно лишь отметить, что все психоаналитики, начиная с Фрейда, считали манию величия и иллюзии всемогущества основными компонентами психической деятельности одержимого игрока. Не следует принимать либо отвергать психоаналитические объяснения источников подобных бредовых расстройств (например, что они коренятся в неразрешенных эдиповых конфликтах, порождающих стремление добиться превосходства над отцом, которое ведет в свою очередь к подсознательной мотивации уступать), чтобы присоединиться к психоаналитикам и таким писателям, как Достоевский, в признании ведущей роли мании величия, порождающей бред всемогущества, в одержимости игрой.
Игрок, согласно психоаналитику Эдмунду Берглеру, придерживается трех следующих основных принципов:
1. субъективно он уверен в своем выигрыше;
2. непоколебимо верит в свою одаренность;
3. считает, что жизнь сама по себе - лишь игра.
Какие же могут быть основания для уверенности в победе в сугубо случайной игре? Сознавать, что то, как упадет пара игральных костей или какая будет открыта карта, это сугубо случайное событие, то же самое, что сознавать собственную неспособность повлиять на его исход. Вот в этом-то и все дело! Одержимый игрок считает, что ему подчиняется магический мир, доступ в который имеют лишь немногие. "Он верит, - пишет
Берглер, - что рок избрал его... и поддерживает с ним связь посредством малозаметных знаков, выражающих одобрение или осуждение"3. Игрок - ученый этого магического мира. Он - толкователь знаков, подаваемых ему роком, точно так же, как ученый, действующий в реальном мире, истолковывает знаки, которые природа посылает всем тем, кто даст себе труд обратить на них внимание, И подобно нормальному ученому одержимый игрок всегда имеет предварительную гипотезу, объясняющую почти все знаки, наблюдавшиеся им прежде, т. е. дающую очень близкую к полной картину интересующих его аспектов вселенной. Критерий адекватности как для научного, так и для "магического" представлений о мире - это способность прогнозировать и при определенных обстоятельствах управлять. Итак, согласно Берглеру, одержимый игрок
считает себя "не жертвой, а орудием непредсказуемой судьбы".
То, что профану кажется суевериями игрока, на самом деле результаты гипотетической реконструкции игроком того мира, который рок по кусочкам приоткрывает ему. Опыт учит его, скажем, что для выигрыша в день игры он должен прикоснуться к горбуну, положить в левый карман кроличью лапку, не сидеть за игорным столом со скрещенными ногами и так далее. Знания такого рода для него значат то же, что, например, для авиационного конструктора знание математической модели обтекания крыла воздушным потоком.
Поскольку суеверия игрока явно не связаны с перемещениями игральной кости, порядком расположения игральных карт и тому подобным, его гипотезы очень часто опровергаются эмпирически. Любой опровергающий опыт содержит, однако, определенные элементы, которые сопрягаются с основными элементами его гипотетической схемы и сохраняют тем самым ее общую структуру. Проигрыш, следовательно, не означает, что иметь при себе лапку кролика, например, является ошибкой или несущественно, но лишь показывает, что упущен какой-то решающий компонент, гарантирующий успех, Быть может, в последний раз, когда игрок выиграл, за его стулом стояла молодая блондинка. О! Вот оказывается, что: коснуться горбуна, иметь при себе лапку кролика, не скрещивать ноги и за стулом должна стоять молодая блондинка. Когда это средство не срабатывает, он высчитывает, что такая комбинация действует только по четвергам, и так далее, и далее, и далее. Одни элементы объяснений добавляются, другие изымаются, а структура в целом становится все более и более сложной. В конечном счете в распоряжении игрока действительно оказывается концептуальная схема, напоминающая массив научного знания по крайней мере по сложности и запутанности. Он является экспертом по
чрезвычайно усложненному миру, доступному лишь нескольким посвященным, которые, упорно работая и рискуя, изучили его таинственную доктрину и язык.
Магический мир, в котором обитает одержимый игрок, не отличается в принципе от миров, где другие, подобным же образом увлекаемые грандиозными фантазиями, пытаются реализовать свои мечты о могуществе. Астрология, в частности, породила чрезвычайно сложную концептуальную схему - систему теорий и гипотез, якобы позволяющую посвященным управлять событиями. Знать, например, что соединение определенных планет, наблюдаемое в какой-то конкретный день, служит неблагоприятным предзнаменованием для осуществления какого-то рискованного предприятия и что иное соединение в другой день благоприятно для этого предприятия, и затем осуществить это предприятие в благоприятную дату - значит пытаться управлять событиями.
Астрологические гипотезы, однако, тоже опровергаются повседневной практикой. Каким же образом астрология и другие магические системы сохраняют свою силу в умах людей? Точно так же, как и гипотезы одержимого игрока. Первый способ защиты концептуальных систем игроков и программистов: любое противоречие между опытом и собственным представлением магического происхождения человек объясняет ссылкой на какие-то другие магические представления. В результате именно такая логическая "кругообразность" обеспечивает сохранение всей структуры магических представлений в целом. Этот способ защиты системы от атак со стороны реальности особенно эффективен, если опровержения поступают no-одному, поскольку в такой ситуации сама демонстрация возможности включения, казалось бы, аномального факта служит подтверждением истинности системы. Чтобы объяснить свое "невезение" в определенный день, игрок может, например, сослаться на то, что он не завязал шнурки на ботинках, хотя, как ему известно, он должен был это сделать. Объяснения такого рода формально эквивалентны (предположению одержимого программиста, что его программа не работает исключительно из-за технических ошибок, допущенных при программировании.
Второй способ защиты: их расширение при помощи введения циклов. Игрок, обнаружив неожиданно, что некоторые его уловки срабатывают только по четвергам, включает это
новое "озарение" в уже существующую схему суеверий, т. е. в сущности вводит в ее структуру соответствующий эпицикл. Программист волен каждое очередное затруднение трактовать как некоторый специальный случай, для которого следует специально написать особую подпрограмму, и таким способом он включает этот случай в свою систему. Прибегая к подобному неограниченному наращиванию в своих системах эпициклов, и программисты, и игроки приобретают неисчерпаемый резерв объяснений, позволяющих им обходить даже самые серьезные трудности. И, наконец, концептуальную устойчивость любой магической системы или системы программирования можно сохранять отрицанием, пользуясь словами Майкла Поляни:
"...основ, которые могут поддерживать любую конкурирующую концепцию. Экспериментальные свидетельства в поддержку [конкурирующей концепции] могут приводиться лишь no-одному. Новая же концепция..., которая могла бы занять место [удерживаемое оспариваемой], может быть признана лишь на основе целой последовательности соответствующих событий, а подобные свидетельства не могут накапливаться в сознании [игроков или программистов], если каждое [отдельное свидетельство] будет последовательно признаваться несущественным из-за отсутствия концепции, способной придать ему значимость".
Игрок постоянно бросает вызов вероятностным законам; он отказывается признавать их операционное значение и тем самым отказывает им в праве быть основой реалистического озарения. Программа может оказаться неудачной из-за серьезных структурных, математических или лингвистических трудностей, для которых существуют соответствующие теории. Одержимый же программист на большинство проявлений таких неудач отвечает дальнейшими программными ухищрениями и, таким образом, подобно игроку не дает им возможности сгруппироваться в его сознании вокруг соответствующих теорий. Одержимые программисты известны тем, что не читают литературу, посвященную основным проблемам тех областей, в которых они номинально работают.
Эти три механизма, названные Поляни логическим кругом, авторасширением и подавлением образования ядер, составляют основу оборонительного оружия истого приверженца магических систем мышления и, в частности, одержимого программиста. Литература по психиатрии свидетельствует о том, что эта патология тесно связана с бредом всемогущества. Убеждение в собственном всемогуществе не приносит, однако, покоя - оно все время требует потверждения. Критерий наличия власти - возможность управлять. Критерий абсолютной власти-точное и совершенное управление. Сталкиваясь с одержимым программистом, нам приходится также иметь дело с его потребностью управлять и его потребностью в уверенности.
Страстная потребность в уверенности составляет, конечно, главную основу науки, философии и религии [Прим. перев.: Речь идет здесь об определенных системах "договоренностей", которые, как правило, кладутся в основу научных, философских и религиозных систем. Очевидно, возможность опираться на зафиксированную соответствующим образом систему основополагающих концепций (например, в математике это аксиомы, понятие натурального ряда и т. п.) и создает фундамент для "уверенности"]. Стремление же к управлению - неотъемлемый элемент всей техники. В действительности причина нашего столь сильного интереса к одержимому программисту заключается в том, что мы не усматриваем существенного разрыва между его патологическими мотивами и поведением и, в принципе, мотивами и поведением современного ученого и инженера. Одержимый программист - это в чистом виде общеизвестный безумный ученый, получивший в свое распоряжение театр (вычислительную машину), в котором он разыгрывает свои фантастиче с кие спектакли. Обратимся снова к трем замечаниям Берглера об игроках.
Во-первых, игрок субъективно уверен в том, что он выиграет. Точно так же думает и одержимый программист - правда, творящий свой мир на универсальной машине имеет для такой уверенности некоторые реальные основания. Ученые, за некоторыми исключениями, убеждены в том же: то, что наука не сделала, она пока еще несделала; вопросы, на которые наука не ответила, пока еще не нашли ответа. Во-вторых, игрок, безусловно, верит в свою одаренность. В-третьих, игрок считает, что жизнь сама по себе - всего лишь игра. Аналогично одержимый программист убежден в том, что жизнь - это всего лишь прогон некоторой программы на грандиознейшей вычислительной машине, а потому любой аспект жизни в конечном счете можно объяснить в программных терминах. Многие ученые (за некоторым примечательным исключением) также считают, что все стороны жизни и природы можно в конце концов объяснить в сугубо научных терминах. В самом деле, как правильно указывает Поляни, устойчивость научных убеждений защищается такими же механизмами, которые охраняют и магические системы представлений:
Отрывок из книги Вейценбаума Дж."Возможности вычислительных машин и человеческий разум. От суждений к вычислениям"
2014.10.12 13:01:43
Читайте также:
Роботы NASA построят инфраструктуру на Марсе, используя 3D печать
Ученые создали растворимые электронные имплантаты
Тефлон дал идею разработки новых долговечных белков
Итальянские физики: темной энергии нет, есть антигравитация...
Впервые за 25 лет открыт новый антибиотик - тейксобактин
Новый роботизированный экзоскелет от исследователей из Новой Зеландии