"The Programmers' Stone (Программистский камень)" - читать интересную книгу автора (Carter Alan, Sanger Colston)

Глава 7. Некоторые забавные вещи

Ричард Фейнман

Для любого, кто желает принести на рабочее место силу картостроителя, будет очень полезным изучение жизни и работы физика Ричарда Фейнмана (Richard Feynman). Он рассказывал историю. Отец показал ему одну из певчих птиц (Spencers' Warbler -- певчая птица Спенсера). Ее название было придуманным. Затем отец привел ему названия этой птицы на многих других языках, и оказалось, что маленький Фейнман узнал не больше, чем в начале. Механически запомненные названия вещей ничего не значат. Только посмотрев на саму птицу, о ней можно будет сказать хоть что-то.

Он был чрезвычайно честным и видел сквозь искусственную сложность, всегда настаивая на простоте и фактах. Посмотрите на его личную версию отчета о расследовании гибели "Челленджера" (The Challenger Report), которая приведена в его книге "Почему тебя беспокоит, что другие думают?" (What Do You Care What Other People Think?)

[ The Challenger Report -- речь идет о космическом корабле "Челленджер"; Фейнман участвовал в расследовании катастрофы и обнаружил причину аварии -- затвердевшую при минусовой температуре резину прокладок - прим. Viktor Zhumatiy ]

У него был простой, веселый, любопытный стиль письма, полный маленьких зарисовок и вдохновения. Его методы прикалывания помпезности вызывают естественный смех.

Недавно были опубликованы его "Лекции по вычислениям" (Lectures on Computation), и их стоит почитать, как и все, что он писал, начиная с "Шести легких частей" (Six Easy Pieces) до "Красных книг лекций" (Red Book Lectures). Книги Джеймса Глейка "Гений" (James Gleick's Genius) и Джона Гриббена "Ричард Фейнман" (John Gribben's Richard Feynman) -- прекрасно написанные биографии.

Добудьте эти книги и прочтите.

Джордж Спенсер-Браун

"Законы формы" (The Laws of Form ) Джорджа Спенсера-Брауна (George Spencer-Brown) -- это небольшая книжка по математике с комментариями, которая, по мнению современных логиков, содержит форму "модальной логики" ('modal logic'), характеризуемую тем, что в ней есть правила логической системы, которые по-разному применяются в разных местах в манере, определяемой правилами самой логики.

С точки зрения программиста, есть два аспекта этой книги, которые несомненно будут стимулировать мышление. В основном тексте автор показывает, как создать логику предиката только с одним символом, предлагая более глубокий, чем можно предположить, взгляд на "фундаментальные" логические и вычислительные операции типа NOT, OR, AND, XOR.

Затем идут примечания, простые и глубокие, к которым возвращаешься вновь и вновь, часто сформированные с помощью методов логики предикатов с одним символом, которые можно рассматривать как простое разделение плоскости на две части таким образом, что они становятся двумя отдельными вещами, и при этом есть о чем сказать. Например, автор говорит

На некоторой стадии во всей математике становятся явными шоры, которые оказываются на нас при следовании в течение некоторого времени правилу без осознания этого факта. Это можно описать как использование завуалированного соглашения. Существенный аспект развития математики состоит в развитии понимания того, что же мы делаем такого, что при этом тайное становится явным. Математика в этом аспекте психоделична.

Или,

При обнаружении доказательства мы должны совершать нечто более искусное, чем поиск. Мы должны посмотреть на уместность некоторого факта по отношению к утверждению, которое мы хотим доказать, с точки зрения общей картины и тех фактов, в справедливости которых мы уверены. Несмотря на то, что мы можем знать, как осуществлять поиск того, что мы не можем видеть, утонченность метода "нахождения" того, что мы уже можем видеть, может гораздо проще завершить наши усилия.

Или,

Любые великие открытия в математике и других дисциплинах, если уж они совершены, кажутся чрезвычайно простыми и очевидными, и делают всех, включая открывателя, глупцами, которые до сих пор не могли этого открыть. Слишком часто забывается, что древним символом источника зарождения мира является шут (дурак), и эта глупость, будучи божественным состоянием, не является обстоятельством, которым можно гордиться или осуждать его.

К сожалению, мы находим, что сегодня системы образования настолько далеко отошли от этой простой истины, что учат нас гордиться тем, что мы знаем, и стыдиться невежества. Это порочно дважды. Это порочно не только потому, что гордость -- сама по себе смертный грех, но, кроме того, учить гордости за знания -- значит воздвигнуть эффективный барьер перед развитием того, что мы уже знаем, поскольку он делает стыдными попытки посмотреть по ту сторону стены, воздвигнутой собственным невежеством.

Для любого человека, готового с уважением вступить в царство своего великого и всеобщего невежества, секреты бытия в конце концов раскроются, и они будут раскрываться в мере, соответствующей его свободе от естественного или внушенного стыда в его отношении к их раскрытию.

Перед лицом сильного и действительно яростного социального давления на них, немногие люди готовы принять этот простой и благодарный путь к здравомыслию. И кто в обществе, где видный психиатр может заявлять, что, если бы был шанс, то подверг бы Ньютона электрошоковой терапии, может упрекать того, кто боится так делать?

Чтобы постигнуть такую наипростейшую истину, которую знал и применял Ньютон, требуются годы размышлений. Не деятельности. Не доказательств. Не расчетов. Не упорного труда. Не чтения. Не разговоров. Не прикладывания усилий. Не думания. Просто удержания в мозгу того, что нужно знать. А еще те, кто смело идет этим путем к реальному открытию, не только не получают практически никакой поддержки в том как это делать, они активно подавляются и вынуждены хранить свое открытие в секрете, притворяясь, между тем, что они вовлечены в безумные заблуждения и соответствуют тем тупиковым взглядам, в которые окружающие не перестают верить.

Какое великолепное описание так долго обсуждаемого нами коммуникационного барьера между картостроителями и паковщиками, и вряд ли кто скажет лучше! Наконец, вот видение силы картостроительной стратегии познания как продолжающей поиск в основе изучаемого явления еще более глубокой структуры, что обусловлено способом, которым мы выбираем, выполняя отдельное различение в пустоте,

Мы обдумываем, полностью сконцентрировавшись на этом, форму отдельной конструкции ... основываясь на самом первом отличии. Суть результата нашего обдумывания -- как оно может появиться, в свете различных состояний ума, в которые мы себя вводим.

Еще он говорит,

Таким образом, мы не можем отбросить факт, что мир, который мы знаем, создан таким, чтобы видеть себя (и, таким образом, чтобы быть способным видеть).

Богатство из максимальной простоты. Предел сокращения сложности и искусство использования треугольника творчества, чтобы поместить "вилку" (сделать "ход конем") нашего восприятия на правильный для наших целей уровень абстракции. Как программисты, мы работаем, и каждым своим действием доказываем это, в точно таком же творческом пространстве, как и большинство абстрактных математиков и поэтов. Помня слова Джорджа Спенсера-Брауна, взгляните на это стихотворение Лори Ли (Laurie Lee), и задайтесь вопросом, ваш код когда-нибудь рисовал структуру предметной области, делал все, что он должен был сделать, и выглядел ли при этом так же совершенно?

Fish and Water

A golden fish like a pint of wine

Rolls the sea undergreen,

Glassily balanced on the tide

Only the skin between.

Fish and water lean together,

Separate and one,

Till a fatal flash of the instant sun

Lazily corkscrews down.

Did fish and water drink each other?

The reed leans there alone;

As we, who once drank each other's breath,

Have emptied the air, and gone.

Книга по физике как продукт культуры

Нас регулярно приглашают посмотреть на мир определенным образом -- пользователи, которые верят, что они понимают свой мир, стиль и подходы гуру, наши собственные предубеждения. Мы постоянно стремимся увидеть мир таким, какой он есть, таким образом, что мы делаем его представления в наших системах как можно проще. Точно также как нужно (хотя бы раз) увидеть плато качества перед тем, как мы сможем его распознавать, поэтому приходится "ходить кругами вокруг Защитной Полосы и смотреть, сколько раз они зажигают огонь"; приходится подвергать сомнению предположительно целостную реальность, пока не появиться возможность узнать, в чем тут дело.

Не может быть ничего более целостного, чем Уровень Физики: у любого, кто говорит, что это продукт культуры, общественное соглашение между циничными физиками, чтобы сделать мир непонятным для цивилизованных людей с гуманитарным образованием, определенно поехала крыша. Странная вещь, некоторые люди талантливо доказывают, что законы физики создаются физиками, а не открываются, и следует пресечь их попытки сделать законы другими!

Настоящая трагедия этих глупых болтунов в том, что если бы им удалось хоть немного изучить физику, они смогли бы обнаружить, что хотя законы физики существовали задолго до изучавших их физиков и совершенно независимы от воззрений физиков, понимание пространства, которое мы рисуем исходя из этих законов, может, тем не менее, быть продуктом культуры.

Чтобы пояснить это замечательное утверждение, нам нужно сослаться на трех физиков. Исаак Ньютон (Isaac Newton) открыл современную механику, и записал свои открытия в основном на латыни, а не в символическом виде, как мы это делаем сегодня. То, что было изобретено викторианцем Оливером Хевисайдом (Oliver Heavyside), и что мы обычно называем "ньютоновской" физикой, было бы ближе к действительности называть интерпретацией Хевисайдом физики Ньютона. Ричард Фейнман был физиком нашего времени, который попытался обобщить в Красных Книгах (Red Books) то, что уже было известно, настолько элегантно, насколько он смог это сделать. Вещи становятся интереснее, когда мы сравниваем содержание в "Принципах" гениального Ньютона (Principia), главы "Красных книг" Фейнмана, в том, что было известно Ньютону, и главы "Современной физики" (Advanced Level Physics) Нелкона и Паркера (Nelkon and Parker) (стандартный британский учебник), тоже в пунктах, которые были известны Ньютону.

Principia. Три закона движения НьютонаТраектории в гравитации (включая движения вверх/вниз)Движение в среде с трениемГидростатикаМаятникиДвижение в жидкостях

 Red Books. Энергия/Время и расстояние/ГравитацияДвижение/Три закона Ньютона/Движение вверх/внизМаятникиГидростатика и движение жидкости.

Advanced Level Physics. Три закона НьютонаМаятникиГидростатикаГравитацияЭнергия

Что отличает Advanced Level Physics -- механика в ней увеличивает сложность уравнений в системе Хевисайда, в то время как в двух других работах намерения иные.

Ньютон начинает со своих трех законов, в то время как Фейнман вводит энергию раньше и оставляет три закона на потом. Но как только они определили некоторые термины, с которыми работают, оба гения начинают говорить нам о пространстве, где все всегда в движении, а затем заполняют картину. Они делают это задолго до обсуждения маятников, которые математически более просты, но являются специальным случаем по сравнению с планетами на орбитах.

Advanced Level Physics рассматривает маятники до гравитации и рассуждает о гидростатике, которую оба гения рассматривают гораздо позже, до того как вообще упоминается гравитация; к этому времени, как мы предполагаем, студенты уже научились очень эффективно выполнять вычисления, но их мысленная модель мироздания полна ссылок с неясными связями между ними.

Хотя это может показаться неудобным с точки зрения математики (хотя текст Ньютона, казалось бы, не зависит от математической интерпретации, но у Фейнмана мы должны принять ее во внимание), оба гения хотят перенести идею о всеобщем движении как можно ближе к началу.

Возможно ли изучить физику ошибочным путем и закончить изучение, умея выполнять вычисления, касающиеся происходящего в пространстве, но по-прежнему с ограниченным и запутанным взглядом на это происходящее?

Думают ли электроны?

В The Quantum Self Данах Зохар (Danah Zohar) рассмативает некоторые вопросы, имеющие отношение к природе сознания. Одна идея из науки о сознании предполагает, что феномен сознания возникает из сложных взаимосвязей между вещами, которые сами по себе не являются сознательными. Возникает вопрос, а каким может быть самое маленькое сознание? Может ли электрон, летая вокруг и делая эти волново-корпускулярные штучки, быть маленьким кусочком сознания?

Мы поставили вопрос Зохар не для того, чтобы прямо на него ответить, но чтобы попытаться подойти к нему с другой стороны. И, как и со всеми этими "Забавными Вещами", мы стремимся не предоставить информацию, а просто продемонстрировать, насколько тесно каждодневная работа программиста реально приближается к высочайшему искусству и глубочайшему волшебству.

Мы начнем с того, что оказываем вам любезность предположением вашей разумности. Представим, что вы изучаете синхронные процессы совместного использования ресурсов. Как хороший картостроитель, вы изучаете литературу, и размышляете над тем, что сказали другие. Вы также пытаетесь экспериментировать сами. Очень скоро вы начинаете видеть глубокие инвариантные структуры, как удачные, так и неудачные. Вы приходите к заключению, что ситуация потенциального тупика (deadlock) -- это потенциальный тупик, не важно, замаскирован ли он сложностью. Вы также можете распознать потенциальный динамический тупик (livelock), когда с ним сталкиваетесь.

Для тех читателей, которые еще не пытались это изучить, мы советуем сделать это, поскольку слишком много часов работы программиста теряются именно на таких вещах, но кратенько расскажем о тупике и бесконечном цикле. Тупик (deadlock) возникает, когда два (или больше) процесса останавливаются во взаимном ожидании друг друга. Например, один процесс может захватить в исключительное пользование базу данных заказчиков, а другой захватывает в исключительное пользование базу данных о складе. Затем каждый процесс пытается получить в исключительное пользование базу, которой у него нет. Ни один из запросов не может быть удовлетворен, поскольку другой процесс уже получил запрошенное исключительное пользование. Поэтому менеджер базы данных оставляет оба запроса в подвешенном состоянии, оба процесса засыпают до момента, когда запрос сможет быть удовлетворен. Конечно же, этого никогда не произойдет, поскольку ни один из спящих процессов не освободит базу данных, которой он уже владеет, и спать им вечно. Самый простой способ избежать такой ситуации в реальных проектах -- сделать это случайно, и это не особенно мудро. Слово customer после сортировки по алфавиту стоит перед словом stock, поэтому при массовой закупке напитков стоит обратиться сначала к базе данных склада до обращения к базе данных заказчиков, даже если это означает, что возникают ситуации, где только один уже имеет доступ к базе данных склада, и поэтому приходится освобождать склад, запрашивать заказчика, запрашивать склад. Это стоит делать и пусть так и будет, либо доступ будет предоставляться одновременно либо некоторый другой нужный процесс будет попадать туда и циклы будут хорошо использоваться.

Динамический тупик (livelock) -- это вариация тупика, когда (например) каждый процесс возвращает код ошибки вместо впадения в спячку, и пытается помочь, освобождая уже захваченные ресурсы, а затем начинает с начала своего списка покупок. Поэтому оба процесса гоняются за хвостами друг друга до тех пор, пока один или другой не сделает достаточно кругов и не получит оба ресурса сразу и не прервет кружение.

Итак, теперь вы знаете о динамическом тупике. По горькому опыту вы узнали динамический тупик, и вы распознаете потенциальный динамический тупик, когда с ним столкнетесь. Теперь представьте, что вы собираетесь встретиться с другом. Вы не уверены, в каком из двух баров вы хотите встретиться, поскольку всегда один оживленный, в то время как другой похож на морг, и вы никогда не можете сказать как все будет на этот раз. Вы не знаете, в какой из них пойдете сначала. Эти два бара находятся в разных концах квартала. Конечно, вы знаете о динамических тупиках. Вы же не собираетесь, как бегающий по планете Земля мохнатый зверек [тут, по-видимому, намек на бешеную собаку, которой семь верст не крюк - С.К.], впадать в динамический тупик, накручивая с товарищем круги между этими двумя барами в поисках друг друга. Когда придет время назначать встречу, вы -- тот, кто скажет: "А если ты захочешь проверить другой бар, погуляй по берегу реки у квартала, так что я увижу тебя, если попаду в ту же ситуацию!"

Это вы. Это вы человек такого типа. Человек, с которым вы собираетесь встретиться, уже восхищен вашим воображением и заботливостью, и одобряет этот план.

Итак, что мы поняли и что заплели. Когда вы понимаете динамический тупик, то понимание динамического тупика -- осознание того, что в мире происходят подобные вещи, и что вам приходится с ними сталкиваться -- становится частью вашего сознания.

Теперь представим, что вас попросили рассмотреть информационные потоки в большой корпорации, чтобы разработать алгоритм управления сетью, оптимизирующий пропускную способность. Вы выполняете изучение как картостроитель, как это было с динамическим тупиком, и в конце концов вы испытываете озарение (проблема схлопывается), что позволяет вам увидеть элегантную, устойчивую и расширяемую стратегию управления сетью.

Теперь эта стратегия, точно так же как динамический тупик, является частью вас. Когда вы видите, что составляющие проблемы где-то повторяются, а составляющие вашей стратегии можно с очевидностью применить хоть сейчас, вы можете поклясться страшной клятвой "Это именно так!" и не сможете объяснить почему. Поэтому когда вы впоследствии излагаете свое элегантное, компактное понимание на языке программирования и заставляете его работать, то какого размера копия малой частички вас обеспечивает работу корпоративной сети 24 часа в сутки?

Это глубокий вопрос, и его не так просто понять. Чтобы увидеть, в чем тут суть, почитайте фантастическую повесть Марвина Мински и Гарри Гаррисона "Выбор по Тьюрингу" (The Turing Option by Marvin Minsky and Harry Harrison).

Для обладающих традиционным философским складом мышления мы в этой связи можем привести дополнительные наблюдения. Обычно сущность, такую как абстракция Платона "двойственность", нельзя увидеть непосредственно, а только как проявление: как двух собак, две ноги или два глаза. Обычно считается, что сущность обнаруживается некоторым образом в проявлениях, поскольку абстракция двойственности остается даже тогда, когда перед нами нет пары чего-либо. Проявление обычно, если завуалированно (covertly -- в том смысле слова, как его использует Спенсер-Браун), выглядит как результат сущности.

Теперь посмотрим, что происходит при написании простейшей программы. Треугольник творчества, включающий в себя динамику проблемы, семантику системы и желание, определенно является проявлением, поскольку располагается в голове программиста, который должен действительно и физически существовать. Однако треугольник творчества остается в виде своего продукта, "вилки" ("Хода Конем"), которая есть сущность построения карты (взаимосвязей) от динамики проблемы к семантике системы. "Вилка" ("Ход конем"), которая есть сущность, в этом случае является образом треугольника творчества (и происходит из него), который есть проявление. Можно ли эту смену на противоположное обычно принимаемого направления онтологического приоритета соединить со странным путем, которым микросхема ПЗУ (ROM chip) получает специфицескую порцию отрицательной энтропии, побывав в наших руках?

Тейяр де Шарден и Вернор Винж

Пьер Тейяр де Шарден (Pierre Teilhard de Chardin), палеонтолог и иезуит, в середине 1950'х написал книгу "Феномен человека" (The Phenomenon of Man). Строя картину исходя из ископаемых находок и заполняя свойства черных ящиков частей своей модели, которые он не понимал, полуаллегорическими, полурелигиозными предположениями, он пришел к необычному взгляду на эволюцию, предлагающему предсказуемое направление будущего развития. Хотя мысли Тейяра де Шардена были очень необычны в то время, его идеи переместились в центр взгляда некоторых людей на то, что случится с технологиями и миром вообще. Работа не изменилась, просто мы получили свидетельство, что ментальная модель эволюции, предлагавшаяся там, оказалась очень близкой к истине.

Тейяр де Шарден обнаружил рост сложности форм, сначала путем агрегации атомного вещества при образовании планет (геосферы), затем на геосфере с появлением жизни (биосферы), затем развитием жизни до появления разума. Он предположил, что следующая стадия -- это интеграция единиц разума и создание "ноосферы", которая будет новым действующим игроком, использующим входящие в него сознания как платформу, также как сознание использует мозг, а мозг использует молекулы. Свойства и соответствующее влияние на окружающую среду для сознаний, мозгов и молекул полностью различны, и мы можем ожидать, что новая стадия не будет исключением.

Он утверждает, что для образования агрегированной формы не нужно никакого принуждения к требуемой адаптации скоординированных состояний достаточного числа отдельных сознаний -- возможно, это то, что мы видим в "однородной команде" (gelled team), которая совместно использует мысленную модель происходящего. Он предположил, что окончательное слияние будет тем, что он называет "Точкой Омега" (Omega Point), где скоординированное взаимодействие составляющих ноосферу сознаний подавит нескоординированное действие и возникнет новое состояние.

Он не обошелся без критиков -- сэр Питер Медавар (Sir Peter Medawar) написал злобную атаку, сосредоточенную на изменениях в языке на стыках между убедительными доказательными частями аргументации и процессами неизвестного происхождения, помещенными между ними. Особенно Медавар возмущался использованием слова "вибрация" (vibration) там, где с очевидностью следовало использовать слова "совокупление" (coupling) или "принуждение" (constraint), которые не так возмущали бы Медавара. Проблема в том, что картостроителям приходится работать с вещами, которые они не понимают, поэтому местами язык неизбежно становится немного расплывчатым. Именно отсюда приходят новые теории (и можно сказать, что программа -- это теория программиста относительно проблемной области). К сожалению, этот вид языка приводит некоторых людей в состояние сумасшествия, даже не смотря на то, что большинство хороших вещей временами нарушает каноны, хорошо если только в форме высказывания о том, что вещи "хотят" делать то или это, а то и наполняя неизвестный механизм антропоморфизмом, что просто глупо, будучи применено к электрону, не говоря уже о муравье, демонстрирующем "невыразимый дух", но это из некоторых предположений более приемлемо.

В качестве последнего примера, прислушайтесь к Ньютону, который описывал явления, которые он мог наблюдать, но которые не находили места в его собственной картине физики, и механизм которых он не мог объяснить (и которым был посвящен целый раздел в этой работе)...

Конечно, это хорошо известный факт, что Ньютон проводил значительную часть своей жизни "путаясь с теологией"!

Вернор Винж (Vernor Vinge) -- профессор математики в Университете Сан Диего и один из лучших писателей-фантастов. В своей знаменитой работе "О сингулярности" ('Singularity Paper') (воспользуйтесь WWW [ www-rohan.sdsu.edu/faculty/vinge/misc/singularity.html ] и научно-фантастическими книгами "Сквозь время" (Across Realtime) и "Пламя над бездной" (A Fire Upon the Deep)) он предположил, что разум обитателей этой планеты будет возрастать как путем генетического усовершенствования человеческого мозга, так и расширения его возможностей с помощью "железа" и построения новых компьютерных архитектур, включающих человека. После этого сети и новые реалии, происходящие из дальнейшего развития, создадут мир, который мы не в состоянии даже представить с позиций нашего нынешнего состояния.

Схожесть идей Тейяра де Шардена и Винжа поразительна, только мы, помещая эволюцию в быстрый реактор программного обеспечения, сжимаем миллионы лет органической эволюции, которые нужны (по Тейяру де Шардену) для создания ноосферы, в тридцатилетие (о чем говорит Винж).

Но не принимайте эти наши слова на веру -- проверьте (изучите), посмотрите, дает ли это новую перспективу тому, что происходит с миром, когда вы программируете, и, главное, думайте об этом лишь для упражнения!

Общество разума

Марвин Мински (Marvin Minsky) в "Обществе разума" (The Society of Mind) предположил, что феномен человеческого разума возникает из взаимодействия множества неразумных обрабатывающих агентов, которые действуют в мозгу как со-процессы, каждый со своими собственными триггерами и программами действий. Агенты затем соединяются и подвергаются арбитражу посредством "сетикета" ('nettiquette'), что позволяет им определять направление деятельности организма как целого. Когда мы чувствуем себя проявляющими свободу воли в потакании нашим прихотям, мы на самом деле просто следуем решению, которое уже возникло в коллективе агентов. Эта модель определенно имеет свои привлекательные стороны и дает основу для стимулов, для удовлетворения которых мы применяем творчество и интеллект, но, как кажется, не дает полезного описания самих творчества и интеллекта. С этими обобщенными средствами познания, мозг, как кажется, должен использоваться как управляемый прибор распознавания образов общего назначения, внутренние представления которого подсоединяются к сенсорным компонентам опосредованно (косвенно), по крайней мере так, чтобы абстрактное и конкретное можно было рассматривать с одинаковых позиций.

Соотношения между моделью общества разума (для познания и мотивации) и средствами общего назначения отражают отношения между тем, что мы называли стратегиями паковки и картостроения, и существует дальнейшая параллель с двумя простыми подходами к управлению данными при проектировании компьютерных систем.

Хэширование действует путем абстрагирования (извлечения) некоего ключа из данных -- возможно, беря 20 символьное имя из поля и складывая численные значения всех символов. Это число затем может использоваться для индексирования таблицы и нахождения полной записи. Реальные хэширующие алгоритмы разрабатываются так, чтобы максимизировать разброс получающихся из типичных входных данных чисел, и должны учитывать ситуации, когда хэш уже переполнен, сохраняя ссылки на несколько записей, так что извлечение включает проверку полного ключа для каждой записи. В простых ситуациях хэш часто очень эффективен, и напоминает паковку, где некоторая абстракция ситуации используется для извлечения "подходящего действия". Как представляется, при паковке плохо обрабатываются переполнения хэша. Они даже не будут замечены, пока один или несколько участников не обнаружат явные, быстро проявляющиеся (short term) потери от "подходящего действия". За этим последует "спор", в котором паковщик укажет на один путь абстрагирования ключа из ситуации и утверждать, что это "именно тот случай", в то время как другой укажет на другой алгоритм хэширования и будет утверждать, что нет, это "тот случай". Это не продуктивно и показывает изъян описанной стратегии при превышении некоторого уровня сложности проблемы, где мы пытаемся буквально впихнуть слишком много вариаций в слишком маленький хэш и не развиваем навыки выполнения при необходимости большого числа проверок полного ключа.

Объектные модели позволяют хранящимся в компьютере структурам данных усложняться и изменяться, подчиняясь семантике моделируемых объектов. Вид всей структуры данных в процессе обработки может полностью измениться, а извлечение данных всегда остается "естественным" в том, что данные всегда там, где они "должны" быть -- они все непосредственно связаны с соответствующими другими данными. Следовательно, там нет сложности, внесенной чужеродным алгоритмом типа хэширования, которую требуется устранить с помощью чего-то еще, типа дополнительного сравнения ключей. Выше определенного уровня сложности объектные модели более удобны чем хэш, но, несомненно, их труднее реализовать. Причина, по которой мы можем использовать их сегодня за малую цену, в том, что мы получаем большую поддержку от языков для описания объектов, и у нас есть операционные системы, управляющие свободной памятью. Объектные модели представляются настолько похожими на стратегию картостроения, что мы описываем картостроение как попытку сконструировать жизнеспособную объектную модель проблемной области.

Эти параллели между функциональной (общество разума и распознавание шаблонов), субъективной описательной (паковка и картостроение) и вычислительной (хэширование и объектное моделирование) моделями сознания предполагают, что вполне может существовать нейрологическая корреляция с описанными нами стратегиями картостроения и паковки. Мы определенно знаем, что ранняя стимуляция детей приводит в увеличению роста нейронов и их переплетению в мозгу ребенка, и это коррелирует с большей "интеллектуальностью" ('intelligence') (что бы это ни означало) во взрослой жизни. Что бы ни было "интеллектуальностью", навыки познания и решения проблем, что тестировалось, слабо проявлялись на тейлористском паковочном рабочем месте, где основная идея заключается в деквалификации и ограничении поведения.

Вероятный вопрос в начале информационной эры -- это: "Какая часть вашего мозга предназначена для использования на работе?"

Картостроение и мистицизм

В самом начале, мы посмотрели на два разных пути решения проблем. Паковка характеризовалась как социально обусловленная привычка обрастать "пакетами знаний", которые определяют "подходящее действие", а не исследовать или переконфигурировать соотношения между пакетами знаний. Эта стратегия деградирует в практику подгонки реальности под известные пакеты и возложение ответственности на фортуну, когда что-то происходит не так. Картостроение, наоборот, включает в себя инвестирование в построение внутренней объектной модели мира по мере его восприятия и получение рычагов путем обнаружения глубокой структуры. Картостроение можно совершенствовать изучением методик, которые помогают исследованию концептуальных пространств и помогают действительно увидеть происходящее перед глазами, распознавая в происходящем глубокие структурные паттерны. Картостроители могут гибко реагировать, и они -- единственные люди, которые в состоянии предложить новые подходы. Они могут учиться гораздо быстрее паковщиков, и пока они ищут глубокую структуру, они смотрят на нее как на еще неразгаданную тайну. Опыт картостроителей и паковщиков в совершенно одинаковых обстоятельствах может оказаться совершенно различным.

Картостроение -- естественное состояние человека, и каждый в душе картостроитель. К сожалению, сообщества людей по всему миру развили альтернативу, которую мы называем паковкой, примерно в то же время, когда появилось земледелие, т.е. около 6000 лет назад. Она не могла возникнуть раньше -- доаграрный паковщик, борющийся с диким животным на охоте, мог тяжело поплатиться, если бы обращался к небу и кричал, что животное плохо следует процедуре!

Альтернатива включает людей, убежденных, что хорошая жизнь заключается в следовании предварительно заданным процедурам и подавлении любых альтернатив. Она должна была принести преимущества построенным вокруг выращивания урожая новым сообществам, когда на полях должна быть проделана значительная скучная работа, и если дела идут тяжело, то единственное что можно делать -- это трудиться, трудиться, трудиться до сбора урожая. Таким образом, паковка включает социализацию (приобщение) молодежи к мировоззрению паковки и построению общества, где реальность состоит в подходе паковщика и наборе пакетов знаний, и ничего больше. Любой человек, предполагающий, что могут быть другие способы взглянуть на вещи, окажется в оппозиции с каждым членом общества, в котором он оказался, в оппозиции к неэффективности общества паковщиков и ритуализированному образу жизни, даже когда социальные обстоятельства дают сбой. Этому раскольнику могут быть приписаны загадочные свойства, вроде магической силы, если ему повезет реализовать некоторые идеи здравого смысла, либо безумность, если окружающие паковщики вовремя задумают саботировать его отклонения. Большинство людей не смогут поверить, что может существовать какой-то другой, отличный от паковки, подход к мирозданию.

Сегодня в развитом мире спрос на работу в три погибели невелик, но есть огромная потребность в сознательных людях для создания новых программ автоматизации. Только естественные картостроители обладают способностями распознавания образов (структур), существенных для написания компьютерных программ.

В течение большей части времени своего существования стратегия паковщика, вероятно, хорошо послужила своим пользователям, поддерживая порядок на полях и на первых фабриках, обеспечивая условия для выполнения простого ручного труда, который был необходим для выживания. В тех условиях это было важнее, и хотя литературе можно было бы уделить побольше внимания, со времен изобретения печатного пресса всегда было гораздо больше поэтов, чем печатных прессов, поэтому, вероятно, эта способность стоила немного. Но в начале 20 века эра индустриализации сделала паковку опасно неэффективной стратегией. Просто мы были слишком богаты. Наши машины позволяли нам делать вещи, о которых не могли мечтать предыдущие поколения, и нам нужно было понимание, чтобы их использовать. Попав в сети мировоззрения паковщиков и обладая неприменимыми в индустриальном обществе пакетами знаний, Европа была разорвана на части, поскольку миллионы пошли воевать, вооружившись двигателями внутреннего сгорания, гусеничными машинами, колючей проволокой, пулеметами, горчичным газом, аэропланами и другим оружием, что извращало доиндустриальный пакет знаний "Война -- это продолжение дипломатии другими средствами" в любом разумном дипломатическом определении целей на основе одной лишь цены.

Теперь все начало трещать по швам. Мы достигли мечты веков, исчезла потребность работы миллионов, освободив их время на то, чтобы делать то, что они пожелают. Пока мы называем это безработицей, и по-прежнему занимаем миллионы не требующей большого напряжения ума работой, просто манипулирующей предметами аграрной экономической системы. Существует так много такой непродуктивной работы, что ее трудно увидеть сразу, но каждый кассир в супермаркете, кассир в банке, билетный контролер, сборщик налогов, бухгалтер и многие, многие другие на самом деле заняты непродуктивной работой. Лишь небольшая прослойка населения выполняет работу, действительно необходимую для поддержания нашего материального благосостояния, и мы до сих пор убеждены, что живем в нужде!

Даже видимые сейчас противоречия, гораздо худшие, чем когда-либо в истории (паковка всегда приводит к определенной глупости, когда приходится принимать решения в необычной обстановке), не могут указать путь обратно к картостроению на языке паковщика. Можно сказать, что предотвращение обсуждения картостроения -- это развитая за тысячелетия функция языка паковщика! Поэтому в прошедшие времена возврат к картостроению должен был быть действительно очень редким событием. Если эффективность или приемлемость картостроительного подхода к проблеме становится объектом обсуждения, то мнение большинства паковщиков будет всегда таким, что не важно, что результат был получен, поскольку он был получен "неправильно".

Только сегодня у отдельных людей есть реальная возможность поупражняться в картостроении и получить так важную для обучения реалистичную обратную связь. Это происходит потому, что только картостроители могут программировать компьютеры. Если человек, все еще с мировоззрением паковщика, следует процедуре и переводит требования, то результат скорее всего будет ужасным. В этот момент он мог бы материть компилятор, операционную систему или пользователя, но, возможно, следовало бы просто осознать, что компьютер на самом деле с абсолютной точностью отражает то, что ему сказал человек. Поэтому человек может принять, что он и только он сам, должен понять динамику проблемы и семантику системы. Здесь начинаются бессонные ночи, открывающие дорогу к реальному мышлению, а не исполнению бессмысленных ритуалов, в чем заключается паковка, и что большинство паковщиков считает нормальным.

С этой перспективы интересно посмотреть на некоторые нити предыдущих размышлений, которые пытались описать опыт картостроения в культуре, где нельзя просто сказать "Программа работает!", а нужно обладать достаточно сильными аргументами в свою пользу на языке, который картостроители могут понять в терминах совместно используемого субъективного опыта игры с представлениями реальности в чьей-то голове, пока они не выправятся настолько, что станут полезными, и который паковщики вообще не могут понять. Возможно, это не удивительно, что многим великим программистам интересны эти нити предыдущих размышлений...

Мы уже обсуждали природу алхимии как внутреннего путешествия, которое изменяет взгляд оператора на мир -- базовую технику картостроения. Традиции алхимии, скорее всего, распространились по Европе из Мавританской Испании благодаря таким людям, как Роджер Бэкон (Roger Bacon).

В книге "В поисках чудесного" (In Search of the Miraculous) П.Д.Успенский (PD Ouspensky) описал беседы с Г.И.Гурджиевым (GI Gurdjieff), которые происходили в России в 1915 году. Успенский приводит слова Гурджиева, странной и влиятельной фигуры, утверждавшего, что провел многие годы в изучении мистических традиций:

В целом, есть четыре возможных для человека состояния сознания ... но обычный человек ... живет только в двух самых низших состояниях сознания. Два высших состояния сознания недостижимы для него, и хотя он может сталкиваться со вспышками таких состояний, он не способен понять их, и он оценивает их с точки зрения тех состояний, в которых он обычно находится.

Эти два обычных (и низших) состояния сознания -- это, во-первых, сон, или, другими словами, пассивное состояние, в котором человек проводит треть и даже часто половину своей жизни. И, во-вторых, состояние, в котором человек проводит остальную часть своей жизни, в котором он ходит по улицам, пишет книги, рассуждает о возвышенных материях, участвует в политике, убивает других, которое он считает активным и называет его "ясным сознанием" или "пробужденным состоянием сознания". Термин "ясное сознание" или "пробужденное состояние сознания", как кажется, дан в шутку, особенно когда вы осознаете, что ясное сознание действительно должно существовать, и каково на самом деле состояние, в котором человек живет и действует.

Третье состояние сознания -- это само-вспоминание или само-осознание или сознание собственного бытия. Обычно считают, что у нас есть это состояние сознания или что оно может у нас быть, если мы этого захотим. Наши наука и философия упускают факт, что мы не обладаем этим состоянием сознания и что мы не можем создать его в нас самих по желанию или одному лишь решению.

Четвертое состояние сознания называется объективным состоянием сознания. В этом состоянии человек может видеть вещи такими, какие они есть. Вспышки этого состояния сознания также возникают в человеке. В религиях всех народов есть указания на возможность состояния сознания этого типа, что называют "озарением" ('enlightenment') и разными другими именами, но которое не может быть описано словами. Но единственный правильный путь к объективному сознанию лежит через развитие самосознания. Если обычный человек искусственно введен в состояние объективного сознания и затем возвращен обратно к своему обычному состоянию, то он ничего не будет помнить и будет думать, что в это время он потерял сознание. Но в состоянии самосознания у человека могут проявляться проблески объективного сознания и он может их запомнить.

Четвертое состояние сознания у человека означает совершенно другое состояние бытия; это результат долгой и трудной работы над собой.

Но третье состояние сознания составляет естественное право человека, раз он есть, и если человек не обладает им, то только вследствие неправильных условий своей жизни. Без всяких преувеличений можно сказать, что в настоящее время третье состояние сознания появляется в человеке только в виде кратковременных вспышек и что его можно сделать более или менее постоянным только посредством специальных тренировок.

Очень похоже, что паковка соответствует второму состоянию, картостроение третьему состоянию, а то, что происходит при разрешении проблемы -- это четвертое состояние. К счастью, описанные Гурджиевым трудности уменьшены сегодня добрыми нанимателями, которые желают платить нам высокие зарплаты, чтобы мы целый день сидели перед обучающими машинами. Если мы сможем приспособить к работе язык третьего уровня вместо языка второго уровня, то сможем отплатить этим добрым людям написанием для них множества прекрасных компьютерных программ.

По справедливости нам следует сказать, что хотя значительная часть описанного в книге "В поисках чудесного" непосредственно достижима в терминах модели картостроитель/паковщик, многое - нет. Существует также система "Водородов" ('Hydrogens'), которая, оказывается, вообще не имеет отношения к физике элементарных частиц и которая, предположительно, описывает структуру пространства. Но она, однако, вносит в сознание фрактальную структуру и атракторы и претендует на то, чтобы стать видением мира, которое позволяет личности восхищаться необычайно расширившимися возможностями посредством "освобождения себя от общих законов" в не подчиняющейся сокращенному описанию форме. Мы не можем найти у этого ни головы, ни хвоста, но посмотрев на картостроителей и паковщиков на работе, только обнаружив их сидящими за компьютерами, мы начинаем задумываться, что может быть правда стоит заняться ... созерцанием.

В Исламе есть концепция двух Коранов. Есть написанный Коран, записанный Пророком под диктовку Бога, и обнародованный Коран, который являет собой мир вокруг нас, созданный Богом. И обязанность каждого человека, который получает удовольствие от роскоши совершенствования себя, проводя свое время в изучении этих творений Бога, состоит в том, чтобы продолжать свои поиски доступным каждому способом. Возможно, это прекрасная идея -- позволить ученику убедиться в своем невежестве, затеяв безнадежное прямое соревнование с Богом, которое у любого закончится поражением, и затем научить тому, что духовный долг ученика состоит в уменьшении этого невежества, и этой идеей Ислам может внести некий полезный вклад в нашу область. Ведь все мы знаем, откуда к нам пришли алгебра и алгоритмы!

В Китае есть древняя даосская традиция, которая также страдает от коммуникационной проблемы -- "Дао дэ цзин" (Tao Te Ching) начинается с:

"Дао, которое можно произнести -- это не вечное Дао."

Даосы сосредоточены на нахождении глубокой структуры в глубокой структуре и получении максимального воздействия "правильным действием". Даос не ковыляет "по течению", у него есть ясное (и, следовательно, непротиворечивое и правильное) понимание того, что он желает осуществить, и ищет правильную точку приложения воздействия, глядя на структуру взаимосвязанных явлений, которыми он заинтересовался. Правильное действие тогда может быть легким толчком в нужное место! Как и во всех мистических традициях, у даосов просто нет времени на превознесение чего бы то ни было.

Когда дао встретилось с буддизмом, появился дзен. С позиций картостроителя/паковщика, дзен можно описать как специальный набор картостроительных методик и строительных блоков, которые позволяют исследование глубокой структуры, что часто может идти вразрез с интуицией того, кто поражен (болен) мировоззрением паковщика. Когда дзен спрашивает "Как звучит хлопок одной руки?", то он говорит, что хлопок нельзя обнаружить ни для левой руки, ни для правой, но только во взаимодействии между ними. Многие великие программисты, особенно работающие над искусственным интеллектом, любят ублажать себя дзен-притчами (Zen koans) [см., например, The Jargon File -- www.jargon.org -- С.К.].

Алхимия, дао и дзен -- это все мистические техники, которые вообще не несут в себе сверхъестественного компонента. Они обсуждают состояние ума практикующего и таким образом усиливают имеющиеся способности, освобождая их от закаменевшей корки стереотипов, создаваемых при паковке. Как сказала Кейт Буш (Kate Bush -- еще один фаворит у программистов),

Don't fall for a magic world

We humans got it all

Every one of us

Has a heaven inside.

Не гнись пред мира волшебством

Мы, люди, получили его целиком

Каждый, бережно храня,

Таит небеса внутри себя

Но несмотря на свою нацеленность на практику, при обсуждении субъективного опыта картостроителя все они вынуждены использовать аллегорический язык. Древний аллегорический язык, который не имеет никакого смысла для паковщиков, легко путают с религией, и в 19 веке некоторые люди пытались буквально интерпретировать древние описания происходящего.

Философ Фридрих Ницше (Frederic Nietzsche) проделал большой путь в преодолении коммуникационного барьера картостроитель/паковшик и вызвал сильное волнение в своем местном обществе паковщиков тем, что заявил, что Сверхчеловек (Superman) не ограничен простыми законами. Он умер в психушке, но успел оказать значительное воздействие на философию.

Ницше интересовался разницей между человеком, который реализовал свой потенциал, и тем, кто живет в общественной реальности паковщиков. Ему на самом деле не нравились хныкающие, завистливые, злобные, неумные обыватели, которых он противопоставлял своему Сверхчеловеку. Вновь он вызвал интерес у людей, занятых Тотальным Управлением Качеством (TQM).

Зигмунд Фрейд (Sigmund Freud) опросил в Вене большое число женщин среднего класса и создал оригинальный психоанализ, который включал своеобразный (idiosyncratic) взгляд на мотивацию и импринты (preoccupations) человека. Не все его последователи поддержали эти импринты, но осталась его концепция "отчуждения" ('alienation'). Это такая ситуация, когда человек играет роль, вместо того, чтобы вести себя "подлинно" ('authentically'), и является, таким образом, отдалением, отчуждением от своих товарищей, которые также играют роли. Возможно, мировоззрением этого человека становится показная, фиктивная реальность, так что он становится отчужденным от самого себя и больше не может идентифицировать и осознавать свои собственные желания и заботы.

Серен Кьеркегор (Soren Keirkegaard) озаботился тем, как мы можем вообще что-то знать в том сумасшествии, которое нас окружает, и создал философскую позицию экзистенциализма, где величину и значение действия может оценить только действующее лицо, на основе имеющейся у него информации. Этот вид социального релятивизма определенно выделяет личность из группы, в которой можно избежать условия самоцензуры картостроения, и человек может носить черное и плодиться. Он, однако, коварно предполагает, что нет такой вещи как объективная, внешняя реальность (или, если она есть, то не имеет значения, поскольку никто не знает, что это такое). Это лживо до абсурда, поскольку означает, что стоять на углу и корчить рожи -- это такое же дельное занятие, как облегчение ужасных страданий или строительство домов, если этот идиот говорит, что они есть. Этот аспект экзистенциализма противоречит опыту картостроителя, который приводит картостроителей к убеждению, что существует великой искусности внешняя реальность, и хотя никто из нас еще не представил ее себе полностью, она прекрасна. И если один из нас открывает явление, то оно очевидно подтвердит совместимость с любым другим уже открытым нами явлением. В этом смысле, внешняя реальность важна, даже если она не постигаема.

За Кьеркегором последовал Жан-Поль Сартр (Jean-Paul Sartre), который написал условие членства в обществе, которое само себя отрицает, и Лэинг ( Ronald D. Laing), который привнес идеи экзистенциализма в психиатрию, где он наблюдал целые семьи, тайно сговорившиеся поддерживать одного человека, которому был поставлен диагноз "шизофреник" ('schizophrenic'), в условиях полного неведения, которые тратили значительную часть своих ресурсов, финансовых и временных, на защиту реальности паковщиков своих несчастных семей от угрозы со стороны оказавшегося среди них картостроителя. С точки зрения картостроителя, "пациент" находится в центре сложной сети мистификации и насилия, распределенной по всей семье, которую необходимо разорвать, если они хотят найти счастье. Точка зрения паковщика в том, что Лэинг "осуждает" родителей за "навязанную болезнь". Это означает, что работа Лэинга не встречает поддержки в клинической ситуации, где эффективная сила находится в руках родственников пациента (или он не был бы пациентом). Однако, коллега Лэинга, Мелани Клейн (Melanie Klein), которая выдвинула множество собственных идей, поработала в индустриальном секторе, и идеи экзистенциализма, выдвинутые Клейн, в промышленной психологии по-прежнему интересны.

Недавно Питер Сенге (Peter Senge) из Sloan Business School при MIT написал о Системном мышлении (Systems Thinking), которое является подходом к решению проблем на основе формирования мысленных моделей и использовании таких вещей, как обратная связь.

Когда мы попытались понять, почему некоторые люди так хороши в программировании, мы знали, что ответ будет очень интересным, но мы никогда не предполагали получить простую модель, которая могла бы также выявить универсальную тему у такого количества мистических и философских школ. Вероятно, так сделать было очень ценно, поскольку с таким количеством совершенно различных способов сказать об одном предмете ситуация для любого, кто безуспешно пытается пробить мышление паковщика, вместо того чтобы остановиться и изучить несколько предметов, очень запутанна. Чьи-нибудь друзья могут даже подумать, что тот впал в маразм!

Картостроение и ADHD

Говорят, что существует расстройство, называемое расстройством с гиперактивным дефицитом внимания (Attention Deficit Hyperactivity Disorder -- ADHD), которое поражает 3% населения. Страдающие от нее, как можно предположить, влачат жалкое существование, она им мешает, но принимая соответствующие лекарства и получая поддержку, они могут надеяться на некоторую интеграцию в общество.

В терминах модели картостроитель/паковщик, мы подозреваем, что ADHD может быть просто результатом естественного детского картостроения, когда дети, будучи умнее своих ровесников, становятся все более и более холодны к окружающим паковщикам, по мере того как они все упорнее и упорнее думают, пытаясь понять что от них хотят учителя-паковщики, ровесники и родственники, в то время, как взрослые считают этих детей непослушными или больными, поскольку им не видна очевидная дисфункция, требующаяся для того, чтобы сидеть и непрерывно выполнять одни и те же простые, бессмысленные, тупые действия, пока не станешь себя вести как стадное животное.

Как развивался этот подход

Создание этой работы -- само по себе пример картостроения, поэтому будет показано, как была собрана вся картинка.

Необходимость этой работы стала ясна после взгляда на то, что произошло, когда в компьютерную индустрию был внедрен стандарт ISO 9001. Оказалось, что в лучшем случае, он обеспечивал гарантию, что сертифицированная по ISO 9001 организация была по крайней мере выше уровня "Лаурел и Харди" ('Laurel and Hardy'), где кто-то смог потерять исходный код работающих у заказчиков программ, но не давал ничего позитивного для улучшения способностей программировать у занимавшихся программированием людей. Несколько лет назад был инцидент, когда работникам организации, которая производила программное обеспечение для управления огромными мельницами, пришлось посетить заказчика под благовидным предлогом, вынуть ПЗУ (ROM) и скопировать его для того, чтобы дизассемблировать содержимое и обеспечить поддержку программы. Никто из тех, кто оказывался в такой ситуации, никогда такое не забудет. Поэтому ISO 9001 был хорош, но реальная работа нуждалась в "инженерном чутье" и "здравом смысле", которые упоминались во всех лучших документах -- составляющих, которые мы не могли получить подражая автозаводам.

Но затем мы увидели, что в некоторых организациях, существовала необъяснимая, но почти религиозная вера в то, что сведением всего к упрощающему процедурализму можно достигнуть совершенства, и что метры книжных полок заключают в себе необходимые простые процедуры. Окруженное процессом ограниченное обдумывание того, что нужно делать, могло быть заброшено или лучше уничтожено, и каждый мог бы бегать кругами, будучи "профессионалом", не достигая на самом деле вообще ничего. В те старые времена даже у самых бедных организаций исходный код был достаточно длинным, чтобы продавать его заказчику и платить арендную плату!

Нам нужно было выяснить, в чем состоит настоящее программирование, чтобы противостоять как негативным последствиям плохо применяемого ISO 9001, так и как важный ингредиент, дополняющий хорошо применяемый ISO 9001. Основываясь на том, что в ISO 9001 было нечто упущено из описания рабочего места, и в честь сюрреалистического объявления лондонской подземки, эта работа получила в тот момент рабочее название 'Mind the Gap' ("Осознай пробел" / "Напоминаем о перерыве в движении" / "Осторожно, зазор").

Мы начали с наблюдения, что есть некоторые программисты, которые гораздо лучше большинства, и что они согласны между собой, в том, кто они. Они могут разговаривать друг с другом о программировании, и хотя они часто не приходят к согласию в количественных оценках, они часто соглашаются в главном.

Конечно, прямо с самого начала мы столкнулись с трудностями описания на "языке управленцев" того, что мы увидели, разговаривая с великими программистами. Мы проводили много времени споря в кружках, пытаясь поместить двумерное создание в третье измерение, показывая его последовательностью шагов, каждый меньше предыдущего. В целом, конечно, представление было с изъяном, поскольку не важно, насколько тонким был срез шага, он по-прежнему оставался трехмерным объектом, недоступным для двумерной твари. Но тогда мы этого не знали.

В то же самое время мы смотрели на образ мыслей великих программистов изнутри, анализируя наш собственный процесс мышления в процессе работы, и наблюдая за другими. Это дало гораздо больший прогресс, и мы очень быстро идентифицировали "Программиста-Ремесленника" ('Artisan Programmer') как фигуру, больше напоминающую мастера-ремесленника прошлого, чем современного рабочего на конвейере.

Мы также интересовались лежащей в основе акта программирования когнитивной нейропсихологией, но вряд ли вообще что-то получили. Мы не смогли найти много работ, связывающих субъективный опыт с его платформой, и одна из областей, на которую нам особенно хотелось взглянуть, это отличия в программировании у разных полов, оказалась особенно редко исследуемой. Приватно нейропсихологи сообщали нам, что различия полов в мышлении иногда очень трудно исследовать вследствие соображений "политкорректности". Однако, при отсутствии полезных психологических исследований, мы делали попытки сконструировать работающие определения субъективного опыта. Это случайно привело к мысленному эксперименту с простейшей программой, который окончательно похоронил внешний процесс, и заставил нас сконцентрироваться на субъективном опыте.

Период с весны 1992 до осени 1995 мы провели в беседах с программистами, обсуждая и обдумывая то, чему мы научились. Мы должны были испытать сотни способов "рассказать историю", каждый из них погибал на языковом барьере. Однако, мы обнаружили, что некоторые немногие вопросы возникали вновь и вновь, в одном месте за другим, и на эти вопросы имелись правильные ответы. Они были сформулированы как Принципы Проектирования. Мы также обнаружили, что некоторые идеи и истории, которые нам рассказали великие программисты, оказывали очень положительный эффект на новичков, которым мы их рассказывали. Этот материал также был включен в Камень.

Затем, осенью 1995, экстраординарная работа Фредерика Кантора (Frederick W. Kantor) в области физики "Информационная механика" (Information Mechanics) дала главное вдохновение. В ней Кантор отбросил все костыли и попытался построить целостную картину физики чисто на концепциях информации. Вероятно, решением нашей проблемы стало бы отбрасывание всего того языка, который, как мы знали, не работал, и использование языка, который, как мы знали, работал. Возможно, посредством такой онтологической строгости, мы смогли построить самодостаточную картину, даже если она шла в разрез "главному направлению" реальности, что мы видели достаточно отчетливо.

Очень быстро мы сфокусировались на движении сознания и увидели связь с алхимией. Быстро проявились связи с другими мистическими традициями, и мы пытались использовать инспирированный мистикой язык к новичкам, и объяснили цикличность алхимических путешествий. Мы обнаружили, что можем улучшить производительность программистов лучше прежнего, но мы все еще не могли объяснить на обычном языке -- почему. С этого момента мы называли наш проект "Развернутое сознание" (`Deployed Conciousness').

Летом 1997 мы столкнулись с ADHD, и сразу распознали в чертах характера детей с ADНD великих программистов, с которыми мы разговаривали. Мы могли видеть, что делали дети, но нам казалось совершенно очевидным то, чего не видели психологи и другие профессионалы, и они могли бы научить их реальным вещам вроде теории чисел вместо того, чтобы пичкать амфетаминами, чтобы те сидели тихо и выполняли бессмысленную, в духе школы паковщиков, "работу". Это было большое потрясение, но оно дало нам важный ключ: здесь должно присутствовать некоторое ослепление сознания, что означает, что эти психологи были просто не способны понять детей и не могли даже осознать, что происходит нечто, что они не могут понять.

Это показало нам, почему существует проблема языка -- восхитившись, когда это проявилось, нам пришлось заключить, что все наши коллеги действительно находились в одном из двух (и только двух) возможных состояний, и мы могли описать различия между ними. Мы быстро это записали, предполагая некую лежащую в основе нейрологию в виде черного ящика, возможно включающую сдвиг в стратегии обработки, раз некий ресурс или что-то другое достигло критического уровня и сделало переключение на другую стратегию оптимальным решением, и распространили среди друзей, которые с самого начала обсуждали с нами эти темы.

Мы получили много откликов, в большинстве случаев положительных, но один комментарий оказался критическим. Нас спрашивали, не могли бы мы найти какую-нибудь связь между нашей работой и ME (aka CFIDS), истощающим послевирусным расстройством (debilitating post-viral disorder), которое разрушило жизни многих активных творческих людей. Многим картостроителям казалось, что они знают нескольких людей, пострадавших от ME, и мы составили список. Да, это все были активно думающие люди, а не наглые неинтеллектуальные "юппи", о которых говорили бы, что они подхватили "грипп юппи" (`yuppie flu'). Но далее, они все были думающими людьми, чьи чрезвычайно вежливые характеры вынуждали их отвечать на действия величайшей глупости, набрасывающейся со всем презрением, на какое может мобилизоваться паковщик, унынием, а не, скажем, гневом или презрением. Побейте обезьяну палкой подольше, и у нее повыпадают волосы. Это психологический эффект от постоянной психологической жестокости. ME проявлялась в период, когда фундаментализм паковщиков сокрушил все в мире, приводя к гигантской глупости и жестокости. ME с успехом могла бы быть следствием. Но почему только у вежливых? Они все были очень активны, они бы покрыли черепицей дом, потому что стало тепло, или объездили бы Канаду на велосипеде, чтобы отпраздновать ее открытие, хотя все они были мечтателями. Это не могло быть мечтательством, поскольку мы все мечтатели (daydreamers) ... и упал пенс.

Различие между паковщиками и картостроителями заключается в том, что паковщики социально обусловленно подавляют свои естественные способности строить мысленные модели мечтая (фантазируя), и вместо этого скатываются к механически заучиваемым процедурным, ориентированным на действие реакциям. Мы могли отбросить нейрологические черные ящики, и просто сказать "мечтание" ('daydreaming'), чтобы навести мост к обычному языку. И тогда эмпирическая работа, как и понимание природы проблемы языка, все стало на место.

Так завершился путь нашего исследования. Когда начинали, мы не знали, что найдем, но у нас была уверенность, что это окажется полезным. За первых три с половиной года мы помогали нескольким новичкам разрабатывать, но мало чего достигли еще. Мы собирали материал и искали закономерности.

Вся работа заняла около шести лет, но это неплохо для глубокого результата. Если бы мы не начали, то никогда бы не достигли результата, который теперь предлагаем вам прочитать за гораздо более короткий срок, чем шесть лет!

Сложность космологии

Этот повторяющийся опыт больших инвестиций картостроителей в стратегию познания, когда они не знают, окупятся ли эти инвестиции. Почему так? Есть ли у нас зацепки к глубокому ответу на этот вопрос?

Одна, вероятно, заключается в том, что касается сложностей космологии. Мы знаем, что начиная с самого первого момента, в пространстве возникала структура. Мы знаем, что физические константы в природе просто справедливы для атомов, звезд, планет, сложных химических соединений. Нами не доказано, что возникновение жизни было неизбежно, но как мы теперь знаем, поместите что-нибудь в банку, дайте толчок в правильном направлении, и получите самоорганизацию.

Мы могли бы принять подход, развивающий идеи Тейяра де Шардена и Вернора Винжа, которые обсуждались ранее, и задаться вопросом, а что если наша деятельность по увеличению сложности мироздания путем написания программ -- это просто эволюция, действующая в космическом масштабе, вновь увеличивающая скорость изменения. Тогда мы могли бы сказать, что получаем выигрыш в двух направлениях -- по-первых потому, что сложность, которую мы видим, была построена на основе более простых уровней, поэтому очерчивая наши произвольные границы вокруг системы, мы будем часто находить возможности для снижения сложности в пределах этих границ, и во-вторых, потому, что добавляя больше сложности, мы просто делаем то, что происходит естественно.

Создание (построение) сложности вполне могло бы быть естественной осью времени, как и энтропия, и, таким образом изначально достижимо в этом мире, из соображений, которые мы еще не понимаем. Мы вполне можем не знать, к чему это ведет, но, вероятно, у нас есть шанс узнать это до того, как мы туда доберемся.

Дилемма заключенных, свободное программое обеспечение и доверие

Дилемма заключенных (The Prisoners' Dilemma) интенсивно изучалась как модель стратегии первого удара ядерными баллистическими ракетами. Там два заключенных содержатся отдельно, и обоим предлагается следующая сделка: "Если никто не сознается, вас обоих освободят. Если вы оба сознаетесь, то получите большие сроки. Если сознается только один, он получит маленький срок, а другой получит срок в два раза больше".

Дело в том, что пока я могу быть уверенным, что ты не хочешь сознаться, лучшее, что я могу сделать -- это сознаться и отсидеть короткий или длинный срок, но при этом избежать двойного срока. Ты думаешь также. Поэтому, пока мы оба уверены (вспомните "уверенность" - "certainty" старых паковщиков), чего может и не быть, мы оба закончим тем, что будем сидеть длинный срок, хотя могли бы не сидеть вовсе.

Этот результат угнетал во время холодной войны, когда значительное стратегическое преимущество могло быть достигнуто упреждающим ударом. В то время, как теоретики игр настаивали на том, что двойной обмен ударами неизбежен, человеческая раса оказалась способной вести себя рационально перед лицом полного уничтожения и избежать обмена ядерными ударами вообще, избежав ужаса, предсказанного теорией игр.

В чем ошибалась теория игр? Все возвращается к проблеме обоснования уверенности, в терминах паковщика, в уверенности другого, что вы уверены... Это так сложно. Чтобы сделать это, оба игрока должны суметь оказаться рациональными -- что теории называют "сверхрациональными" ('super-rational') -- сами по себе и по отношению к рациональности другого. Кажется, нет другого очевидного способа этого достигнуть, кроме обращения Ганди (Ghandi) к людям, что казалось не слишком надежным людям, вооружившимся ядерным оружием.

В модели картостроитель/паковщик, вещи гораздо проще. Если мы оба паковщики, мы оба получим большие сроки. Если ты паковщик, я должен сознаться, поскольку ты сознаешься. Но если мы знаем друг друга, то нам легко осознать способность друг друга конструировать мысленные карты и достигать прямого и полного их понимания. Если я знаю, что ты картостроитель, я знаю, что ты будешь в состоянии обнаружить хитрость Дилеммы, поскольку это не очень большая карта. Ты знаешь, что я картостроитель, поэтому ты также будешь в состоянии предсказать мое полное понимание этой простой хитрости. Поэтому нас выпустят. Другими словами, мы победим, поскольку разница между идиотами и здравомыслящими людьми -- вещь не сильно заметная, но видна только здравомыслящим людям. Для паковщиков это градация от душевнобольных (картостроители, которые не могут думать правильно и поэтому... lt;паузаgt; ... выход (escape)), через людей, которые могут запомнить лишь несколько пакетов знаний и поэтому глупы, до Ответственных Персон, которые применяют пакеты знаний с точностью роботов. Знаменательно, что хотя мы будем убивать миллионы и терять огромные богатства, играя в спасающие лицо игры, держа носы по ветру, как род человеческий мы удержались от уничтожения планеты.

Озабоченнось паковщика уверенностью, без видения, как ее достигнуть, связаная с игрой с нулевым результатом в условиях материальной экономики и дефицита, ведет к очень ограниченному набору возможных транзакций. Чтобы заниматься программной инженерией, мы должны быть картостроителями, и Дилемма Заключенных показывает нам, что у нас есть возможность увидеть эффективные стратегии, которые недоступны паковщикам. Создание программного обеспечения -- это не игра с нулевым результатом -- если я копирую вашу программу, то она есть у обоих. И у нас нет дефицита, если только программирование хорошо оплачивается. Поэтому нам доступно гораздо больше видов взаимодействий (транзакций), чем у любой другой группы в истории. Мы уже начали находить примеры в совместной разработке стандартов, в коммерческих организациях, помещающих ключевые исходные коды в открытый доступ, и в росте рынка свободного программного обеспечения. Люди, которые совершают эти вещи, не беднеют -- преимущества лидерства часто перевешивают стоимость даваемого на сторону, которое вы все равно получите любым способом. Решение проблем музыкального бизнеса состоит в правильной оценке этой новой среды бизнеса, и пока мы делаем это, мы будем страдать от установленных по сговору цен, которые конкурирующие организации устанавливают сами для себя.

Рынок программного обеспечения должен оставаться интересным достаточно долго!

Предопределенность

В работе "Структура научных революций" (The Structure of Scientific Revolutions) Томас Кун (Thomas Kuhn) ввел концепцию парадигмы -- лежащей в основе теории мира, которую даже не считают теорией, а вместо этого называют "реальностью". Целые общества совместно используют парадигмы, и они могут оказать необычайное влияние на поведение членов общества. Одно время была такая философская парадигма, названная "предопределенность" ('predeterminism'). Она говорит, что Бог распланировал жизнь каждого при рождении, и испытаний, которые выпадают на чью-либо долю, невозможно избежать, поскольку они были волей Бога и поэтому должны приниматься с благодарностью. Затем были религиозные споры, закончившиеся тем, что эта противоречивая свобода воли победила, а предопределенность была повержена. Это были хорошие новости, поскольку предопределенность мало устраивает людей. Если на все воля Бога, то наши слабенькие усилия мало чего стоят.

Отбросив предопределенность, мы стали свободны верить, что мы можем немного управлять своей судьбой, что мы и делаем.

Даже после этого мы все ждали, когда же упадет другой ботинок. Хотя мы верим, что результаты возможны, и поэтому мы прикладываем усилия, чтобы улучшить нашу жизнь, большинство из нас по-прежнему не верит, что возможно понимание, поэтому мы не делаем усилий, чтобы понять. Теперь, когда автоматизация сделала понимание необходимым и доказала его возможность, у нас есть шанс войти в новую эру человеческого знания -- настоящую Эру Информации.