LINUX.ORG.RU

Паттерны.

 


3

3

Народ, откуда столько НЕНАВИСТИ к паттернам в программировании?

Пробежался тут по последним темам.

For example, in the OO world you hear a good deal about «patterns». I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough — often that I'm generating by hand the expansions of some macro that I need to write. — P. Graham

'Patterns mean «I have run out of language.»' — Rich Hickey

Ну и там хор подпевал, как обычно, и всё в таком духе. Вообще, сколько себя помню, на ЛОРе термин «паттерны проектирования» всегда был синонимом какого-то вселенского зла.

Но ведь если разобраться, то «паттерны» так или иначе присутствуют просто ВЕЗДЕ. В градостроительстве, архитектуре, механике, инженерии, электронике, транспорте, аэрокосмосе, музыке, спорте, кулинарии, литературе, поэзии, живописи, медицине, физике, математике, геологии, географии, добыче ископаемых, сельском хозяйстве, военном деле, государственном управлении, экономике, финансах, социологии, в людских взаимоотношениях, наконец! Человечество повсеместно использует стандартные подходы/сценарии/решения, проверенные годами. И к ним мы относимся совершенно нормально. Почему мы, например, услышав секвенцию II-V-I в «Лунной сонате», не говорим Бетховену: «Чувак, you've run out of harmony!» Почему, увидев четырёхстопный ямб у Пушкина, не предъявляем: «Чувак, да у тебя же a sign of trouble в стихах!»

Почему только будучи применёнными к программированию паттерны вызывают столь лютую ненависть?


Ответ на: Не договорились ещё? от DonkeyHot

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

anonymous
()
Ответ на: комментарий от anonymous

появляются и термины, то есть, паттерны.

Так все же термины или паттерны? Или паттерн===термин? Тогда ты просто... я даже не знаю, как назвать без 5.2. Потому что для термина уже есть термин «термин», введение лишней сущности — алиаса «паттерн» для термина «термин» — задачу упрощения коммуникации, которую, как я понял, ты пытаешься решить, не решает никак, напротив, коммуникация только усложняется. Что мы с успехом и наблюдаем в этом itt треде.

anonymous
()
Ответ на: комментарий от anonymous

они все равно вылезут

паттерны — они везде.

ОНИ СЛЕДЯТ ЗА ТОБОЙ!!!

anonymous
()
Ответ на: комментарий от anonymous

Или паттерн===термин?

Бинго! Дошло до недоумка, наконец-то.

Тогда ты просто... я даже не знаю, как назвать без 5.2.

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

Потому что для термина уже есть термин «термин»,

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

Из того, что паттерн является термином, ни разу не следует, что термин является паттерном. Общая проблема для всех лоботомированных в этом треде - неспособность понимать таксономии. Из $A \in B$ не следует $B \in A$.

anonymous
()
Ответ на: комментарий от anonymous

шаблоны в коде прописаны - они все равно вылезут

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

anonymous
()
Ответ на: комментарий от anonymous

Тебе точно так же придется назвать Мартина Фаулера, всю банду четырех, и еще сотни тысяч профессионалов во всем мире.

Кто это банда по сравнению с миллионами последователями Иисуса?! Паттерны придумал Иисус, чтобы проверить нашу веру.

anonymous
()
Ответ на: комментарий от anonymous

Или паттерн===термин?

Бинго! Дошло до недоумка, наконец-то.

Искренне рад за тебя!

Из $A \in B$ не следует $B \in A$.

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

anonymous
()
Ответ на: комментарий от anonymous

Повторяю для у/о: паттерн - частный случай термина. Все еще слабо понять, ничтожество?

anonymous
()
Ответ на: комментарий от anonymous

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

Применение паттернов решает задачу коммуникации. Они необходимы для того, чтобы можно было кратко и на достаточно АБСТРАКТНОМ уровне рассказать об архитектуре твоего кода. Так сложно это понять, ничтожный ты придурок?

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

вся индустрия, весь мейнстрим

Почему ты постоянно используешь argumentum ad populum? Если исходить из твоей логики, то Джастин Бибер намного лучше Моцарта, потому что он есть в плеерах куда большего количества людей (интересно, есть ли те, у кого в плейлисте оба?).

anonymous
()
Ответ на: комментарий от anonymous

Я повторяю аргументы Фаулера и прочих

Нет, ты тут споришь сам с собой. На противоречия в твоих рассуждениях itt тебе было указано неоднократно, в том числе мною — дважды. Кто ННП? Ты ННП.

anonymous
()
Ответ на: комментарий от anonymous

Почему ты постоянно используешь argumentum ad populum?

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

anonymous
()

Анекдот в тему

Идет собеседование HR: Копать можете? (С)оискатель: Конечно! HR: Лестницу сделать можете? С: Конечно! Только копать много придется.

anonymous
()
Ответ на: комментарий от anonymous

Ни одного противоречия не было указано, придурок ты скорбный.

Вот мои тезисы, чтоб тебе проще было обсраться:

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

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

Итак, шваль, покажи класс. Обосрись жидко!

anonymous
()
Ответ на: комментарий от anonymous

Ну не гомосек ли твой папа? Это не техническая дискуссия, недоумок. Это ТЕРМИНОЛОГИЧЕСКАЯ дискуссия. А термины определяются большинством. Кого больше, тот и прав.

anonymous
()
Ответ на: комментарий от anonymous

Опять ты сам с собой разговариваешь? Ты бы к доктору обратился, пока не поздно. Не запускай себя, поправляйся!

anonymous
()
Ответ на: комментарий от anonymous

Вот и обосрался илитный аналитег из Мухосранска. Поздравляю!

Полагаю, на этом спор про шаблоны можно считать завершенным и безоговорочно выигранным сторонниками мейнстрима.

anonymous
()
Ответ на: комментарий от anonymous

Ни одного противоречия не было указано, придурок ты скорбный.

Я и говорю же, все всё видели, но ННП ты. Можешь продолжать убеждать себя в чем хочешь.

Вот мои тезисы, чтоб тебе проще было обсраться:

Нефальсифицируемое говно.

Ну все, иди уже, уроки делай, а мне недосуг с тобой тут.

anonymous
()
Ответ на: комментарий от anonymous

Нефальсифицируемое говно.

Ты ГСМ. Ты вообще не понимаешь, что такое терминология. До сих пор уверен, сын педика, что здесь идет «технический» спор?!?

anonymous
()
Ответ на: комментарий от anonymous

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

Но ведь ты сам ссылаешься на Фаулера и Четырех...

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

staseg ★★★★★
()
Последнее исправление: staseg (всего исправлений: 1)

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

Как же ш тебя зацепило - не поленился такой список выкатить! :D

Почему мы, например, услышав секвенцию II-V-I в «Лунной сонате», не говорим Бетховену: «Чувак, you've run out of harmony!»

Почему, увидев четырёхстопный ямб у Пушкина, не предъявляем: «Чувак, да у тебя же a sign of trouble в стихах!»

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

ak380618
()
Ответ на: комментарий от staseg

Но ведь ты сам ссылаешься на Фаулера и Четырех.

Это косящий под Виталика анон на них ссылается, не я.

паттерны — это хорошо

Только тебе, как хорошему человеку, и по большому секрету скажу: я технолог по образованию, так что ;)

anonymous
()
Ответ на: комментарий от staseg

В широком смысле, о котором распинается анон, паттерны — это хорошо, это своеобразный язык описания решений.

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

Это с одной стороны. С другой, любая общность людей, занятая одним специфическим делом, очень часто вырабатывает свой сленг (или использует уже устоявшийся сленг в этой области), часть которого можно определить как «набор шаблонов [проектирования]», но что даёт эта классификация «терминов» уже их использующим?

С третьей, призыв «Используй паттерн, сцуко!» следует читать как «1. классифицируй задачу (правильно!); 2. при выделении типичной подзадачи - определи возможность и необходимость применения типичного решения (правильно!) применительно к своим условиям; 3. адаптируй типичное решение типичной задачи для своих условий (правильно!)». Итого имеем 3 разных действия, только квалифицированное выполнение которых даёт положительный эффект. Какой процент из всех применений «паттернов проектирования» соответствует этому условию? И как относится к этому молотку, если я вижу вокруг себя множество «пионэров со взором горящим», которые мало того, что уже давно отбили себе все пальцы, так ещё и норовят отбить окружающим?

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

yyk ★★★★★
()
Ответ на: комментарий от dave

Шаблоны - добро и зло одновременно. Все зависит от ситуации.

Бинго!

yyk ★★★★★
()
Ответ на: комментарий от yyk

ибо избыточное именование не слишком часто встречающихся концепций

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

только засоряет эфир и заставляет помнить ничего не значащие в общем случае «имена».

А, так ты дислексик? Трудно тебе в жизни будет, ой трудно!

но что даёт эта классификация «терминов» уже их использующим?

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

Какой процент из всех применений «паттернов проектирования» соответствует этому условию?

99%, потому как в индустрии есть code review и прочие практики, призванные повысить качество кода и дизайна.

если я вижу вокруг себя множество «пионэров со взором горящим», которые мало того, что уже давно отбили себе все пальцы, так ещё и норовят отбить окружающим?

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

anonymous
()
Ответ на: комментарий от anonymous

Это косящий под Виталика анон на них ссылается, не я.

Ты имеешь полное право не любить, или даже ненавидеть «Виталика», но не надо его недооценивать настолько, чтобы сравнивать с ним каждого, у кого изо рта льётся вонючий поток пошлой и плоской брани. Хотя, каюсь, сам иногда так поступаю :\

yyk ★★★★★
()
Ответ на: комментарий от yyk

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

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

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

staseg ★★★★★
()
Ответ на: комментарий от anonymous

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

Ты про паттерны GoF? Можно согласиться. Или про паттерны с вики? Ну, тоже допустимо, хотя конкретная специфика работы может не требовать знания всех паттернов. Но не надо называть паттерном каждое банальное действие.

А, так ты дислексик?

Нет, дислексик именно ты, ибо не можешь прочитать и понять прочитанное. Я же всего-лишь говорю, что не надо давать имена всем возможным шаблонным действиям - незачем.

Каталогизация этих терминов помогает зафиксировать текущий сленг и помогает новичкам быстрее влиться.

Не спрыгивай. Какой толк указывать при такой каталогизации, что данный термин, описывающий то-то и то-то, является «паттерном проектирования». Что этот дополнительный шильдик даёт?

99%, потому как в индустрии есть code review и прочие практики, призванные повысить качество кода и дизайна.

Хаха, т.е. ты говоришь, что «code review и прочие практики, призванные повысить качество кода и дизайна» на выходе дают 99% качество? Т.е. как минимум 2 человека, совершивших по 3 действия, итого 6 «человеко-действий» на ОДНО применение паттерна генерируют ошибку только в 1-м проценте случаев? Мне кажется «кто-то УРОТ». Или блажен...

Уходить из пионерского лагеря, и не возвращаться.

Сначала я хочу отобрать у всех «пионеров» книги по паттернам и сделать их доступными только при наличии документа, подтверждающего квалификацию, и ввести закон о немедленной физической кастрации всех, кто начинает проповедовать в «пионерском лагере» учение «фаулера, банды 4-х и прочих»

yyk ★★★★★
()
Ответ на: комментарий от yyk

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

Да все просто, на распространенное действие накладывают клеймо «паттерн». Ни для кого ничего не меняется, просто среди множества терминов выделяют подмножество шаблонных действий.

staseg ★★★★★
()
Ответ на: комментарий от staseg

С чего ты взял, что пропагандисты не вводят ограничений?

Где местный апологет паттернов их вводил? Причём, их надо сначала вводить, т.е. «отсеивать аудиторию», а потом уже заниматься пропагандой.

а описать эти ограничения как-то явно (как 18+ например) нет никакой возможности

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

И ИМХО в общем понятие о паттернах, как о языке для курилки, вполне годное

Может всё-же КАТЕГОРИЧЕСКИ разделим трёп о «паттернах вообще - для курилки» и «паттернах проектирования» - много-много более узкой сущности?

yyk ★★★★★
()
Ответ на: комментарий от staseg

Да все просто, на распространенное действие накладывают клеймо «паттерн».

Пузырьковая сортировка - алгоритм (который, практически тоже шаблон, только специфичечкий). Ты хочешь, чтобы в магазине на каждом ярлыке с продуктами было написано помимо названия «еда»? Зачем? Я вот обзову всё это сущностями, понадаю имён - и стану носиться как дурень с дверью с ними - что толку? Зачем это обобщение, если большинство «распространённых действий» уже имеет более точную классификацию?

yyk ★★★★★
()
Ответ на: комментарий от yyk

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

Кстати, еду в магазинах часто и маркируют, как «еду». На всякий случай, чтоб с не-едой (вроде наполнителя для кошачьего туалета) не попутали.

Зачем это обобщение, если большинство «распространённых действий» уже имеет более точную классификацию?

Ну подбери «более точную классификацию» для GoF-паттернов.

anonymous
()
Ответ на: комментарий от yyk

Где местный апологет паттернов их вводил?

А где я паттерны пропагандировал? Мне вообще не интересно кого либо на свою сторону привлекать, нас и так миллионы в мейнстриме. Маргиналы тоже нужны, над ними прикольно посмеяться.

Причём, их надо сначала вводить, т.е. «отсеивать аудиторию», а потом уже заниматься пропагандой.

Хочешь, чтоб как в СШП было, где на зеркале заднего вида написано обязательно: «Осторожно! Объекты в зеркале на самом деле находятся СЗАДИ!».

Я предпочитаю полагать аудиторию достаточно умной и самостоятельной, а с отдельными не вписывающимися представителями Дарвин разберется.

anonymous
()
Ответ на: комментарий от yyk

косящий

Это раз. Два — у него брань выполняла вполне определенную функцию. Собственно от этого (бездумного применения паттерна) и получается

косящий

И тут я соглашусь на уточнение «неуклюже косящий» или близкое по смыслу. Это три.

anonymous
()

Ну и там хор подпевал, как обычно, и всё в таком духе. Вообще, сколько себя помню, на ЛОРе термин «паттерны проектирования» всегда был синонимом какого-то вселенского зла.

это ЛОР, детка.

emulek
()
Ответ на: комментарий от anonymous

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

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

antares0 ★★★★
()
Ответ на: комментарий от anonymous

Кстати, еду в магазинах часто и маркируют, как «еду». На всякий случай, чтоб с не-едой (вроде наполнителя для кошачьего туалета) не попутали.

Значит ли это, что ты готов жрать не-еду (вроде наполнителя для кошачьего туалета) маркированную как «еда»?

Тебе уже 4 страницы пытаются объяснить, что первична задача, а все остальное, включая «паттерны» — вторично.

anonymous
()
Ответ на: комментарий от anonymous

нас, реальных пацанов, ежедневно использующих паттерны «установить заготовку в станок», «нажать кнопку» и «вытащить готовую деталь» и так миллионы в мейнстриме. Маргиналы, всякие там инженерА да конструкторА, тоже нужны, над ними прикольно посмеяться

починил, не благодари.

anonymous
()

Потому что ехал паттерн через паттерн, видит паттерн паттерн паттерн, паттерн, паттерн, паттерн, паттерн. За такой код хочется убивать. И это в ынтырпрайзе не редкость.

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

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

Т.е. мейнстрим-разработчик - это рабочий, а лиспер - инженер-конструктор? Ололо.

Открою тебе тайну. Лиспера вообще не пустили на завод.

anonymous
()
Ответ на: комментарий от anonymous

Судя по тому, что опять ТННП, настоящий а не метафорический завод ты видел только по телевизору.

anonymous
()
Ответ на: комментарий от Dark_SavanT

Собсно GoF и говорят, что их книжку читать без опыта в программировании не стоит.

Смотрю местечковые объявы - везде требуют у джуниоров знание паттернов)

mentalmenza
()
Ответ на: комментарий от yyk

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

А применительно к паттернам проектирования в разработке ПО, мне например дико не нравятся «традиционные» реализации большинства ООП-паттернов, у меня в коде едва ли где-то найдутся слова singletone, factory, visitor, provider и т.д., однако в том или ином виде я эти паттерны использую напрямую или через какие-то другие паттерны более высокого уровня. С другой стороны, я был свидетелем, когда задачу сразу декомпозируют на стандартные ООП-паттерны, в результате чего получается каша из говна.

staseg ★★★★★
()
Ответ на: комментарий от mentalmenza

Потому что иначе жуниор вкуривать ынтырпрайзный говнокод будет ещё год.

Dark_SavanT ★★★★★
()

Пути картостроителей и паковщиков

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

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

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

Без карты мира, выверяемой относительно самой себя и объясняющей буквально все вокруг, очень трудно быть уверенным в том, что делать. Подход, который ты вынужден брать на вооружение в любой ситуации — сканировать бездумно память, пока не найдешь маленький пакет знаний, который подходит к ситуации (в основе этого есть немного размышления, но оно прекращается как можно быстрее). Затем ты убеждаешься, что список условий соответствует ситуации, поэтому ответное действие определяется твоим «знанием».

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

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

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

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

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

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

Алан Картер (Alan Carter), Колстон Сэнджер (Colston Sanger)

The Programmers' Stone

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.