Методы и алгоритмы в современной диалектике.
- 12.01.14 г. –


1. Предметная часть.

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


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


Примечание.
Как видно, используются специфические названия (ср.: суждение рассудочное в диалектике и суждение рассудочное в науках), которые удобны. Они сконструированы в соответствии с современными нормами программистского хорошего тона, касающимися названия программных типов и их членов. Однако если в программировании такого рода нормы формальны и вызваны, прежде всего, удобством восприятия и использования, то в диалектике они отражают смыслы определенных понятий и применяются, по существу, еще со времен Гегеля, виртуозно использовавшего возможности немецкого языка в части образования сложносоставных слов. Поэтому при описании программных средств и ресурсов в диалектическом программировании часто используются сложносоставные предметные термины, в данном случае, соответственно, MethodDialectics (метод в диалектической философии) и MethodScience (метод в науках), которые применяются и в диалектических изложениях (например, в этом). Но предметные термины в современной диалектике и диалектическом программировании отражают смыслы соответствующих понятий и типов, в отличие от значений, выражаемых терминами обычного программирования. Хотя … в науках и термин «смысл» однозначно и корректно не определен…


В науках метод понимается сугубо субъективно: как совокупность шагов, действий, которые необходимо предпринять, чтобы решить определённую задачу или достичь определённой цели. Или что-то в этом роде. При этом в таком «определении» метод не только не определен по существу (хотя обычно помпезно указывается достаточно много его видов!), не говоря уже о неопределенности используемых понятий (например, термина «задача», который определяется у одних ученых через цель, у других – еще как-то…), но и мало чем отличается от алгоритма, отличием которого поэтому часто считают его принадлежность к математике (!), программированию и т.п., но, очевидно, это к определению не относится …

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

Понимания алгоритма диалектической философии и в науках также существенно отличаются: алгоритм в диалектической философии  (AlgorithmDialectics) и алгоритм в науках (AlgorithmScience).
    AlgorithmScience обычно понимается как набор инструкций, описывающих порядок действий, требующихся для решения задачи за конечное число действий; в частности, для вычислительного процесса – как однозначное предписание, определяющее вычислительный процесс, начинающийся с произвольных исходных данных из некоторой совокупности возможных. Но в таких (и других) определениях AlgorithmScience не только не определен по существу, не говоря уже о неопределенности используемых понятий (например, термина «задача», см. выше), но и мало чем отличается от MethodScience. Поэтому отличием (определением) AlgorithmScience часто считают, как уже указывалось выше, его принадлежность к математике (!) или к программированию (!), но, очевидно, это к определению не относится ...
    Для AlgorithmScience часто признают даже отсутствие его формального определения в терминах более простых понятий, для компенсации чего (а, на самом деле, в силу неопределенности алгоритма) вводят некие требования и т.п. Но дополнительные определения требований (свойств AlgorithmScience) ситуацию не спасают. Проще уж было определить AlgorithmScience как частный случай MethodScience (но тогда бы ярко высветилась бы некорректность и неполнота определения MethodScience …).
    Поэтому известны корректные определения лишь нескольких конкретных AlgorithmScience, например, «машина Тьюринга» и «нормальный алгоритм Маркова».

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

В современной диалектике AlgorithmDialectics определяется, исходя из определения субъективного MethodDialectics. При этом, в качестве определений, оказываются существенными не только известные наукам характеристики вообще алгоритма: порядок, конечное число действий, выполнение некоторых простых шагов, определение каждого шага работы состоянием системы, применимость к разным наборам допустимых исходных данных, правило начала исполнения и др. Они получены эмпирическим путем. Для AlgorithmDialectics оказывается существен ряд характеристических черт MethodDialectics. Именно поэтому для диалектического программирования присущи аспекты, чуждые наукам и обычному программированию, например, автоизменение данных (не путать с возможностями рефлексивного программирования).
    С другой стороны, именно в диалектическом программировании было выявлено одно из существенных отличий метода и алгоритма.
    Важно еще и вот что: в отличие от научных методов, определения AlgorithmScience диалектике нужны.

В диалектическом программировании активно используются различия метода и алгоритма.


Б. Важным следствием исследований MethodDialectics является обнаруженный в диалектической методологии полиморфизм методов диалектической философии (см. «Методов диалектической философии полиморфизм»), который обусловил возможность изменения конкретной версии субъективного метода, что, кстати, является теоретической основой широко известной программной возможности изменения алгоритма (method overriding), которая, таким образом, выводится, хотя в обычном программировании она была введена в силу эмпирической необходимости.
    Далее, в смысле использования AlgorithmDialectics это определило новую методологическую возможность, которая стала одной из основ актуального диалектического программного ресурса, и о которой можно будет поговорить в дискуссиях.


В. Интересным и актуальным оказалось такое положение: алгоритм алгоритму рознь (см. «Диалектическое программирование vs. программирование – 1»).


См. «Диалектическая философия и науки» и «Диалектического программирования группа «Методы»»
[«Смысл»].


2. Дискуссионная часть
[в рамках проекта ДИАЛЕКТИКА].

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

б. Для предметных дискуссий в рамках Академии диалектики и диалектической философии предоставляются ссылки на дополнительные материалы.

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

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


3. Другие обсужденияhttp://all-discussions.livejournal.com/51844.html.