Атомная война в эпоху Великого Комбинатора

    Достоевский дал миру Великого Инквизитора с его «зачем же ты пришел нам мешать?».
    Ильф и Петров — Великого Комбинатора.
    Та эпоха уже закончилась, эта — еще не началась.

    Повсюду одно и то же: любое явление можно продолжать делить… нет, не до бесконечности, а до «атомов», которые получили такое название потому что, переводя дословно, «неделимы». Речь далеко не только про программирование: например, музыка и Бетховена, и Шнурова раскладывается всего лишь на семь основных нот и еще пять безымянных; кажущиеся незаконченными очерки Чехова, многословные романы Толстого, скупые и хмурые постулаты Эвклида раскладываются на не такое уж и большое количество букв. И так буквально во всем.

    Не даром в Русском языке слово «сложный» есть сокращенное «сложенный»: потому что сложные («неатомарные») явления складываются из простых, атомарных. Причем складываются по вполне определенным законам — познанным или нет, но существующим объективно. Даже хаос статистически отличим от другого хаоса и в этом смысле есть разновидность порядка. Отсюда следует эпохальный вывод:
    Акт познания двояк: это 1) и безостановочный поиск атомов, примитивов, первоэлементов, из которых можно что-либо собирать, и 2) не менее усердный поиск законов, определяющих что именно и с чем именно, и как именно соединяется.
    Программирование это акт познания. По меньшей мере, задачи, которую необходимо решить. На самом деле хороший программист ищет не только решение конкретной задачи, но (возможно, бессознательно; чаще же — осознанно) жаждет еще и освобождающего обобщения — "во всем ему хочется дойти до самой сути", до системообразующих принципов, сформулировать их насколько сможет четко и лаконично, и понести этот огонь дальше, и зажечь им других.
    Поэтому война парадигм — как например ООП vs ФП или фашизм vs коммунизм — всегда война атомная в том смысле, что это сражение ведется в первую очередь именно за атомы, на уровне атомов и атомами, а не за более сложные — производные от атомов — конструкции и уж тем более не ими.
    Вместе с тем с точки зрения практики сами по себе атомы — бесполезны. Зачем палитра насыщенных красок, если нет художника, способного нарисовать завораживающую картину? Слышите звенящую тишину вокруг? Это мир замер в ожидании нового Великого Комбинатора — того, которому покорится сложность цифровых систем XXII века!

    Моя карьера программиста начиналась с идей, заложенных в основу объектной ориентированности в ее нынешнем — изуродованном временем и business value — виде: в качестве атомов, мне обещали классы, которые инкапсулируют состояние и выставляют наружу только то, что дозволено; а полиморфизм и наследование мне выдавали за правила, по которым я могу управляемо наращивать сложность. Поначалу я поверил, но неизбывное ощущение, мол, «матрица не в порядке» усиливалось, и я решился на открытое плавание. Вскоре, скитаясь тут и там, случайно наткнулся на задолго до меня открытый континент под названием «функциональное программирование». Теперь моим примитивом стала функция, чья сигнатура нашептывает свою особенную историю. У меня (почти) нет состояния, мне в общем-то нечего скрывать и потому проблема инкапсуляции меня не беспокоит. В качестве комбинаторов мне предложены одноименные операторы композиции — очевидные, простые и неимоверно мощные. Но то ощущение почему-то не проходит…

    Вот она — моя Атомная Третья Мировая:
    IT как профессия, как дело жизни еще непозволительно молодо: медицине понадобилось лет двести, что утвердить самые базовые правила гигиены и врачебной дисциплины.
    Мы сейчас переживаем нечто похожее: препарируем трупов, павших в кровопролитных сражениях с избыточной сложностью, и вслепую наощупь выискиваем седьмое доказательство Бога; легки на суеверия и фанатизм, залечиваем недуги заклинаниями, обрядами и копипастой. Пенициллины еще не изобретены. В это нелегкое время нам жизненно необходим спор о сложности — в духе Сократовской диалектики, мы должны задавать себе наводящие вопросы и, в попытке ответить, целенаправленно доходить первопричин. Этих плодотворных душеспасательных бесед не достает настолько сильно, что иной раз на очередном бессмысленном митинге по дизайну для yet another one системы с плохо определенными ответственностью и инвариантами поведения становится душно и снова невольно вспоминаешь Федора Михайловича: «прежде всего воздуху нужно».
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 11

      +1
      спор о сложности — в духе Сократовской диалектики,

      Это уже примитивно и неактуально.
      Вполне достаточно использовать теорию систем, системный подход.
      В промышленном проектировании давно нашли оптимум вежду объектным и функциональным представлением моделей. Подробно этому посвящена серия стандартов ISO 81346.
      Суть простая: на начальном этапе, при проектировании, статическая модель строится в виде набора действий (процессов, функций) выраженных в виде глаголов. Например, в химическом производстве это элемент модели «перекачивание». Чем качаем — а фиг его знает, пока не важно.
      Потом, на следующих этапах цикла разработки часть процессов заменяется на объекты, выраженные уже существительными. Например, процесс «перекачивание» заменяется на «насос». В модели есть и «процессы», и «объекты» одновременно.
      До какой степени детализировать (делить)? До какой удобно и понятно. Часть элементов модели делиться до винтиков и гаек, часть — до готовых изделий, часть остается в виде одного «черного ящика». Для каждого элемента модели можно по-разному.
      Весь этот зоопарк спокойно живет в виде кучи моделей в единой системе. Например, это ePlan. Суть этой софтины простая: в базе висят все элементы системы, плюс все связи между ними. Связи выражены через кучу разных схем, диаграмм, списков. В общем, с какой удобно стороны смотреть на систему (частные модели с определенной точки зрения) — так и видно, так и можно делать. Причем схемы и графики вторичны. То есть нельзя ничего просто нарисовать или соединить. Надо создать элементы системы, создать связи, тогда появится графическое представление.
      Ничего необычного, ничего нового, все давно известно в любой IDE для программирования.
      Только программы — это в основном некий текст на более-менее натуральном языке.
      А тут немного иное представление, не текстовое.
        +1
        Глубоко копнули. Мне понравилось.
        Я бы в этом свете порассуждал еще о таком понятии, как редукционизм. Редукционизм — это взгляд, который говорит, что поведение и свойства системы можно свести или вывести из свойств ее составляющих и структуры взаимосвязей между ними. Простейшее рассуждение в стиле редукционизма — давайте мы сведем сознание к психологии, психологию к нейробиологии, потом к химии, а потом к физике. Таким образом всю сложность жизни объясним на уровне атомов. Несмотря на привлекательность данной концепции в ней существует много изъянов. Не буду вдаваться в подробности, все это можно почитать. Только замечу, что возможно нам никогда не удастся понять откуда из атомов возникает сознание, и не из-за технических трудностей, а из-за фундаментальных ограничений. В какой-то более слабой степени это думаю может быть справедливо и для технических систем.
          +2
          Редукционизм

          Кроме редукционизма, есть еще холизм.
          Поведение сложных систем не возможно предсказать или понять на основе поведения их частей.
          Это используется в холизме. Одно из направлений холизма — системный подход.
          Все подходы ограниченные, редукционизм — более старый подход. Холизм — тоже не новость, но уже немного получше.
          Хотя Дао Де Цзин — пример именно холизма, а этой книге немало лет.
          Можно использовать и редукционизм, для понимания частных вопросов, для построения частных моделей.
          Можно соединять эти модели используя холизм.
          Можно строить представления о частных или общих моделях на основе системного подхода.
          Важно только всегда понимать: все эти методы касаются моделей реальности. А сама реальность никак не устроена, нет в ней ни атомов, ни объектов, ни функций.
          Вот с этим пониманием и есть главная проблема: даже специалисты не всегда корректно могут отделить реальность от представлений о ней. Так и появляются на полном серьезе «черные дыры», пространственно-временные континуумы, искривления пространства, и много другое.
          Самый яркий пример: в химии существует понятие «ионы». Понятие такое есть. А вот утверждать, что есть что-то такое физически, как «ионы» — это уже не верно. Причем то, что ионы — это только абстракция, известно уже давно, с 1970 годов. Все описано в книге Герц Г. Электрохимия. Новые воззрения. И все равно, химикам и электрохимикам — по-фигу, все равно везде «ионы».
          Еще хуже с социальными науками и экономикой. Там сами исходные предположения (типа аксиомы) на которых все построено — неверные. Причем сами же экономисты это признают уже лет 50. И что? Все равно, никаких изменений, как преподавали равновесие рынка по Кейнсу — так и преподают. Как использовали статистику в экономике — так и используют, хотя статистика к экономическим объектам неприменима. Практически никогда не применима.
          И Вы правы, что обратили внимание на редукционизм и основу типа «части — целое». С это стоит начинать, даже в этом уже каша.
            0
            Да, спасибо! Все верно. Я бы только хотел еще немного пояснить свою мысль. Автор разочаровался в «атомах». Но у него остались очень большие надежды на структуру. Возможно, что они тоже могут оказаться напрасными.
              +2
              У Достоевского тоже, описана такая интересная особенность характера человека:

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


              :)

              >> Вот с этим пониманием и есть главная проблема
              Ну, это шаг вперед, по сравнению с Мифами и легендами Древней Греции, как ни крути :)

              >> Там сами исходные предположения неверные

              Шумпетер называл их «объясняющими гипотезами» в своей Истории экономического анализа. Что-то в этом есть, кмк. Описать хобот слона, вполне себе — т.е. частичное знание, и все-таки знание, считаю.

              >> Причем сами же экономисты это признают уже лет 50

              Потому как подход — описательный. Вот Маркс упор делал на деятельный подход, про важность установления истины через практику. Если хотите — про важность эксперимента, если мыслить по научному (а иначе как познаешь закономерности, как физики делают). Но тут социум, тут сильно все сложнее и запутаннее (не значит, что не познаваемо и не изменяемо).
                0
                >> Вот с этим пониманием и есть главная проблема
                Ну, это шаг вперед, по сравнению с Мифами и легендами Древней Греции, как ни крути :)

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

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

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

                  >> эфир, теплород и т.д.
                  Да, далеки они были от народа/истины, но Герценов/Эйнштейнов они будили (в каком-то смысле) — своими теориями. Бумага все стерпит, но были эксперименты, которые расходились с их построениями.

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

                  >> реальность не поддается описанию формулами
                  Неизвестно (пока)
                    0
                    Об этом речь, доказаны эффекты на материю, поля —

                    Предположено влияние одной модели на другую модель.
                    Или в одной частной модели увидели противоречивости, либо неполноту.
                    Пошли правильным путем: создали ad-hoc теорию (по Фойерабенду) на ее основе создали новую частную модель. Прилепили эту частную модель к имеющимся моделям.
                    Стало кому-то лучше, стало понятнее (наверное). Изменилось ли при этом что-то в реальности — скорее всего нет. Как не было в реальности объектов или черной материи — так их там и нет.
                    В модели же все есть, все что угодно. Помогает такая модель объяснению реальности — прелестно.
                    Здорово, когда моделей много. Причем модели могут быть логически противоречивыми, одна модель может утверждать прямо противоположное тому, что утверждает другая модель. И это допустимо, причем имеет практическое применение.
                      0
                      В ваших рассуждениях чувствуется нотка инструментализма :) Инструментализм — заманчивая концепция (чего стоит знаменитое квантовое «Заткнись и считай»), но это на мой взгляд ограничивает истинные возможности науки в плане объяснения реальности, подменяет ее возвышенные цели и сводит до прикладного ремесла.
                        0
                        подменяет ее возвышенные цели и сводит до прикладного ремесла.

                        Тоже возможно. Я скорее вижу науку в двух частях.
                        С одной стороны — ничем не ограниченное стремление к знаниям (эвристика?).
                        С другой стороны — рациональное искусство, которое помогает инженерам развивать технологии. Рациональное — то, что способствует выживанию вида в долговременной перспективе. Если вера в черные дыры помогает выживанию — то она рациональная.
            +1
            «объясняющими гипотезами»

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

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

            Маркс поднимал этот вопрос. Потом был Карл Поппер. Практика важна, спору нет. Но в социальных науках и экономике обычный эксперимент невозможен. Всегда существенные различия в начальных условиях. Более того, эти различия в начале эксперимента могут быть вовсе не наблюдаемые. Потом объект меняется во времени или даже меняется структура и поведения объекта, меняются важные параметры объекта.
            Поппер обратил внимание на фальсификацию теории. То есть надо искать не только подтверждения некоего утверждения, но и отрицательные результаты, которые противоречат утверждению. И как раз именно эти исключения — и есть самое важное в научном методе. Пока же крайние или «несущественные» значения просто отбрасываются. Примитивная фильтрация, по принципу «чего не подходит — того и нет».
            не значит, что не познаваемо

            Может быть и не познаваемо совсем.
            Может быть непознаваемо только на текущем уровне развития познания.
            Может быть непознаваемо при использовании указанных методов.
            Есть в этом вроде бы разница…

            Only users with full accounts can post comments. Log in, please.