The Programmers' Stone (Программистский камень)
Шрифт:
За Кьеркегором последовал Жан-Поль Сартр (Jean-Paul Sartre), который написал условие членства в обществе, которое само себя отрицает, и Лэинг ( Ronald D. Laing), который привнес идеи экзистенциализма в психиатрию, где он наблюдал целые семьи, тайно сговорившиеся поддерживать одного человека, которому был поставлен диагноз "шизофреник" ('schizophrenic'), в условиях полного неведения, которые тратили значительную часть своих ресурсов, финансовых и временных, на защиту реальности паковщиков своих несчастных семей от угрозы со стороны оказавшегося среди них картостроителя. С точки зрения картостроителя, "пациент" находится в центре сложной сети мистификации и насилия, распределенной по всей семье, которую необходимо разорвать, если они хотят найти счастье. Точка зрения паковщика в том, что Лэинг "осуждает" родителей за "навязанную болезнь". Это означает, что
Недавно Питер Сенге (Peter Senge) из Sloan Business School при MIT написал о Системном мышлении (Systems Thinking), которое является подходом к решению проблем на основе формирования мысленных моделей и использовании таких вещей, как обратная связь.
Когда мы попытались понять, почему некоторые люди так хороши в программировании, мы знали, что ответ будет очень интересным, но мы никогда не предполагали получить простую модель, которая могла бы также выявить универсальную тему у такого количества мистических и философских школ. Вероятно, так сделать было очень ценно, поскольку с таким количеством совершенно различных способов сказать об одном предмете ситуация для любого, кто безуспешно пытается пробить мышление паковщика, вместо того чтобы остановиться и изучить несколько предметов, очень запутанна. Чьи-нибудь друзья могут даже подумать, что тот впал в маразм!
Говорят, что существует расстройство, называемое расстройством с гиперактивным дефицитом внимания (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').