Сон сетки об эволюции
Сон сетки об эволюции

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

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

После того, как мы перестали всё это путать между собой и выучили, как оно называется, мы получаем возможность изучать, что с этими сущностями вообще можно делать. Как сработать табуретку, или телеграм-бота. Для этого нам необходимо узнать правила их использования, а правила эти основаны на обобщениях, т.е., классификациях. "Все переменные определяем в начале функции", "Вместо goto нужно применять циклы в их ассортименте", "гвозди забивай, шурупы закручивай" и т.п. Эта способность к классификации возникает только после того, как у нас появится что классифицировать, т.е., когда мы уже пройдём первую фазу будем знать, что существуют var, array, goto, for, while... Таким образом, классификация становится возможна не ранее второй фазы.

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

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

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

Так для различения нам достаточно операций с одним операндом: мы просто производим сравнение с шаблоном.

Для классификации нам необходимо два операнда: шаблон и название класса.

Для дела нам необходимо уже три операнда: добавляется продукт, который передаётся из одного места в другое.

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

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

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

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

Старички ещё помнят Volkov Commander - панельный файловый менеджер, написанный целиком на ассемблере, чтобы получить компактность и скорость. Сегодня, за счёт унификации интерфейсных узлов, создание подобных систем стало делом практически бытовым, а объём доступного вычислительного ресурса в текущей фазе позволяет не замечать избыточного размера приложения.

На приведённом рисунке изображена общая схема описываемого процесса. Усложнение в этой схеме производится в порядке номеров, а соединение при переходе на 4+1 уровень происходит по кругу.

Фазовый закон схематично
Фазовый закон схематично

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

Структуры данных в языках программирования

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

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

Конечный автомат на определённом количестве именованных переменных — это, по сути, объект. Но для нас то, что он "объект" пока не играет никакой роли, потому что мы пока не умеем их перечислять. Т.е., чтобы создать второй объект, нам нужно создать полностью новый, отдельный, хотя и идентичный первому набор переменных. Примерно так:

chair_x = 1
chair_y = 1
table_x = 2
table_y = 1

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

В третьей фазе мы осваиваем взаимодействие. Взаимодействие требует методов, поэтому у нас появляются объекты — это когда мы, по сути, делаем не массивы переменных, а массивы конечных автоматов и методы являются «рычагами» этих автоматов. Здесь нам необходимо уже три параметра: два для адресации в массиве и один для адресации свойства объекта.

Примечательно, что хотя мы имели возможность косвенно (по ссылке) обращаться к ячейкам памяти и функциям даже на уровне конечных автоматов (что выразилось в создании языка LISP), и в процедурных C и Pascal, реальный расцвет этого метода приходится именно на третью фазу, когда вводится "сахар" объектного полиморфизма. Именно в третьей фазе косвенная адресация функций в обёртке динамических методов становится ширпотребом, а не доблестью квадратноголовиков.

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

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

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

Возникает закономерный вопрос: а что же у нас будет дальше?

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

Это называется "хозяйственный цикл": различение начинает использоваться для поиска ресурсов, ресурсы сразу передаются в работу, товар реализуется, выручка и остатки анализируются и инвестируются в поиск новых ресурсов.

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

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

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

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

Мы его определяем как "процесс", т.е., по своему уникальное «живое» явление с жизненным циклом. При всей фантастичности, это достаточно простое умозаключение: ведь если у нас есть нечто, способное отражать отрезок времени, как целое, т.е. жизненный цикл, то оно само обязано быть, как минимум, отрезком времени с жизненным циклом. А отрезок времени, имеющий жизненный цикл называется "процесс".

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

Когда логика машины сможет вот это переваривать, на что это будет похоже?

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

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

Комментарии (13)


  1. freeg0r
    04.10.2023 10:14
    +1

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

    "Терминология"


  1. Myclass
    04.10.2023 10:14
    +2

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

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


    1. dmiche Автор
      04.10.2023 10:14

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

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

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

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

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

      Но как мы будем их пересчитывать? Как будем складывать и преобразовывать? Что будем делать с тем, что этот тип имеет недетерминированое значение? Это и есть "улитка". Не могу без метафор - есть такой грех :)

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

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


  1. AnotherOne
    04.10.2023 10:14
    -3

    Стаття по суті являє собою вперте натягування сови на чотириповерхову хрущовку.
    Практична цінність викладених в ній знань під великим сумнівом.


    1. dmiche Автор
      04.10.2023 10:14
      +3

      А вот хороший вопрос, так что отвечу:

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

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


  1. Batalmv
    04.10.2023 10:14

    Мы его определяем как "процесс", т.е., по своему уникальное «живое» явление с жизненным циклом. При всей фантастичности, это достаточно простое умозаключение: ведь если у нас есть нечто, способное отражать отрезок времени, как целое, т.е. жизненный цикл, то оно само обязано быть, как минимум, отрезком времени с жизненным циклом. А отрезок времени, имеющий жизненный цикл называется "процесс".

    Не хочу быть букой/бякой, но это живое явление очень давно существует в BPM-системах. А они довольно таки старые, как концептуально, так и с точки воплощения в реальном мире

    А в целом ... сложно понять вашу мысль, честно. Какие-то 4 фазы. Почему 4? Ну это ладно.

    Я могу ошибаться, но структуры данных никуда не делись и никак особе не приросли. Есть, как вы и написали тривиальные структуры в виде атомарных типов, если структуры. Массивы, списки, мапы.

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

    К примеру, реляционная алгебра и ее конкретное порождение в виде SQL создает совершенно иной тип объекта (отношение) и операции с ним. Но не потому что "структура" первична, а наоборот.

    Если философски - то это даже скорее как инь и янь, так как мышление и язык по сути связаны. Вы мыслите на языке и оперируете терминами языка

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


    1. Myclass
      04.10.2023 10:14

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

      и кусок мяса, который лежит на дне и не приметил-бы ????


    1. dmiche Автор
      04.10.2023 10:14

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

      Ну и само существование BPM тоже не должно удивлять. Задачи-то стоят.

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

      И вот это, прошу прощения, чистая эмпирика. Т.е., возвращая Вам Ваш вопрос: "Почему 3?".

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

      Про то, что объект - следствие парадигмы, это не совсем так: объект соответствует объектной парадигме и при появлении парадигмы, появление объектов было неминуемо. Отставание артефакта во времени от идеи, или, иногда - наоборот, не имеет значения для конечного результата.

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


      1. Batalmv
        04.10.2023 10:14

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

        Конкретно в отношении BPM - куда дели регулирование модели на основе анализа собираемых данных? На каком основании тот кто настраивает модель в рамках BPM вынес себя за скобки системы? 

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

        Про то, что объект - следствие парадигмы, это не совсем так: объект соответствует объектной парадигме и при появлении парадигмы, появление объектов было неминуемо. Отставание артефакта во времени от идеи, или, иногда - наоборот, не имеет значения для конечного результата.

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

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

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

        Ваше умозаключения - это просто фрагменты Теория управления — Википедия (wikipedia.org) , тут можно копать практически неограничено всю жизнь, но ... либо вам стоит этим заняться плотно, и прийти сюда через пару лет, когда вы сможете широкой аудитории рассказать все тоже самое (только без фраз в стиле "Переход от глубоких нейросетей к трансформерам с механизмом внимания знаменует замыкание генезиса фаз логики управления"), либо не уйдете, и тогда не стоит и пытаться :)

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


        1. dmiche Автор
          04.10.2023 10:14

          Да я вижу, что с трудом. Понимаете, я вот описал некую систему классификации, подвёл под неё базис: чем различается, как упорядочивается... ну вот есть, получается, ещё такая, вдобавок ко всем прочим Вам известным. Откуда я её взял? Коллектив авторов над этой темой работал 5 лет. Я тут просто рассказываю то, что релевантно тематике Хабра и, с моей точки зрения, важно для развития отрасли и просто интересно.

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

          Но да, можно без этого. И дальше Вы описываете, как без этого можно - там BPM, SQL и всё вот это. Я не специалист в BPM, но в SQL, LISP, Erlang, Prolog, а также менее экзотичных и более современных языках я чутка понимаю и мы в этом с Вами примерно одну картину видим. Но чего проку её обсуждать-то? Она и так всем известна и понятна.

          Поэтому я тут и предмета спора-то не вижу.

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


        1. dmiche Автор
          04.10.2023 10:14

          Вдогонку:

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

          А чем Вы отличаете суть одного инструмента от сути другого? Кроме того, что можете сказать "это очевидно на взгляд".

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

          Я приведу пример с цветом: для нас "красный" очевидно отличается от "синего", но это и есть эмпирика, а наука начинается, когда мы узнаём о частоте световых волн.

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


          1. Batalmv
            04.10.2023 10:14

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

            Зачем понятно. Рассмотреть даже миллион просто невозможно в пределах человеческой жизни, и надо как-то радикально сократить число до разумного. У вас вышло 4 уровня. Ок. Пусть будет. Но в чем суть рассмотрения? Вы свели все структуры в 4 уровня, но как это применить.

            Я приведу другой пример. Допустим собаки. Есть породы, стандарты. Это имеет смысл например, если вы едете на выставку. Вы соревнуетесь с представителями своей породы/пола. Это логично. И получается такая классификация применима на практике и более того, она применяется. Но вот кто-то решил ввести классификацию собак по длине хвоста относительно высоты холки. И 4 градации, условно до 20% от высоты, до 40% от высоты, до 60% и свыше. Математически все верно. Введение классификации возможно, показатель, взятый за основу измерим. Будем также считать, что пустых классов нет и в каждом из них будут представители. Но как ее применить? Всем по фиг.

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

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


            1. dmiche Автор
              04.10.2023 10:14

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

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

              Соответственно, не зависимо от того, кажутся ли кому-то некие инструменты программирования одинаковыми, или совсем разными, если они предназначены для хранения структурированных данных в ЯП, они попадают в рассматриваемое множество.

              Но в чем суть рассмотрения?

              Суть рассмотрения в том, что некое множество, прежде представлявшее собой "россыпь", в которой каждый элемент был самостоятельным феноменом, теперь поддаётся обобщению и упорядочиванию.

              Вы свели все структуры в 4 уровня, но как это применить.

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

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

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

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

              Аналогичный по информативности критерий уже используется для оценки эффективности алгоритмов: сложность O(1), O(n), O(n x n) и т.п., которая показывает порядок числа итераций для получения ответа по выборке n элементов. Тема включена в академические курсы.

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

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

              А важно то, что мы понимаем, что за 4 уровнем в обработке данных искать нечего, понимаем, что 4+1 уровень будет работать уже не с данными, а с какой-то более сложной сущностью, которую нужно не проворонить в академическом поле. Понимаем, что на 4+1 уровне нам необходимо объединить структуры данных всех четырёх нижележащих уровней.

              Например, ИИ сегодня не использует 1-3 уровни в системах обучаемой памяти, а пытается их имитировать через 4й. Это косяк, который однажды исправят и получат очередной прорыв в функционале. Понимаем, что за 4+1 пойдёт 4+2 и какие у него будут свойства и, через какое-то время - возможно даже поймём, каких факторов не хватает для его запуска. Это как Закон Мура, который сейчас полощут (и ведь он не перстал работать, но почему-то потерял значимость).

              В-третьих, например, цикл математических открытий от создания теоретической базы до практического применения составляет, в среднем, 150 лет (по Яну Стюарту), поэтому, кто знает, где ещё пригодится?

              Ну, и в-четвёртых, это самоценно. Я выше в комментариях писал: https://habr.com/ru/articles/765240/#comment_26027608. Иными словами, любая законная (не надуманная) упорядоченность в голове освобождает её от лишних мифологических сущностей.

              Я приведу другой пример. Допустим собаки. Есть породы, стандарты. Это имеет смысл например, если вы едете на выставку.

              Предположим, некто провёл исследования и обнаружил, что хвосты, которые короче 70% высоты не выполняют функцию заметания следов (задача гипотетическая и я тоже пофантазирую), а хвосты которые короче 15%, дают существенный прирост коммуникативной способности (ими чаще махать можно). А это уже функциональные признаки, которые не просто по красоте, а весьма конкретно влияют на специализацию породы.

              Практично ли это? - Вполне. Например, только лишь на основе длины хвоста Вы теперь сможете сказать о породе больше, чем эмпирики выучили в институте.

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

              Что тогда делать с прежней классификацией? - Ну, если она была для чего-то нужна, то пусть будет. А если была классификация ради классификации - то причислить к числу "наивных верований" и на помойку.

              Фразы вроде "Переход от глубоких нейросетей к трансформерам с механизмом внимания знаменует замыкание генезиса фаз логики управления" не добавляют понимания.

              Тут Вы правы. Сам написал, что нельзя оперировать непонятными понятиями до их объяснения и сам нарушил. Спасибо, учту. Но позвольте объяснить, дело не такое уж сложное...

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

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

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

              До четвёртой фазы развития технических систем управляющее звено системы несёт вспомогательную функцию, а в четвёртой фазе получает ведущую роль в виде САУ.

              Алгоритмические системы являются вершиной автоматизированного управления, т.е., появляются в четвёртой фазе развития САУ.

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

              Поскольку согласно фазовому закону, фаза "управления" считается четвёртой и последней в эволюционном цикле развития, то у нас и развитие технических систем и развитие алгоритмических систем близко к завершению.

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

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

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

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