Диалектическое программирование vs. программирование – 1
(аспект сравнения, важный для развития новых технологий познания).
- 01.02.15 г. -
- 9772225665000 15008.
1. Предметные положения.
В предыдущей по обсуждаемой теме статье было выявлено интересное положение: методологический аспект проведенных рассуждений обозначил, кроме всего прочего, (внешнее) различие диалектического программирования и обыкновенного программирования. В принципе это и так понятно, ибо первое есть гносеологическая дисциплина, а второе – процесс создания программ. Однако различие было выявлено в методологической плоскости, что в смысле программирования понимается, в первую очередь, в части алгоритма. Да, конечно же, в современной диалектической философии метод и алгоритм различены, о чем уже говорилось на сайте, но вот формализация процесса рассуждений, алгоритмизация рассуждений, пошаговое проистекание методов, как угодно, является, несомненно, нечто общим для диалектического программирования и программирования, но, главное, обладает специфическим признаком. И именно в нем и обозначилось различие диалектического программирования и обычного программирования. Тут вроде бы все понятно, так как методологическая база у них разная. Но нет, вопрос различия актуален и для самой алгоритмизации, понимаемой в смысле составления алгоритма исследований, рассуждений или программы. И именно этот аспект оказывается принципиально важным, ибо, по сути, как оказалось, алгоритм алгоритму рознь. Как такое может быть? Или следует понимать различие самого алгоритма, устанавливаемое в различии диалектического программирования и программирования? Или еще что-то? И как это вообще относится с развиваемой с прошлого года темой? Все эти вопросы и ряд других можно обсудить в дискуссиях, так как они обозначают конкретные направления исследований и гносеологические положения, найденные в современной диалектической философии. Однако для их осмысления и обсуждения, а также для реального применения на практике открывающихся новых возможностей следует понять определенную грань указанного выше различия диалектического программирования и программирования и её специфику, т.е. не различие как таковое и его аспекты (отдельные конкретные различения), а именно обнаруженную в предыдущих рассуждениях грань этого вопроса.
Тут дело еще и в том, что сама тема различия диалектического программирования и программирования весьма объемна, имеет много ипостасей, ведет к различным исследованиям и выводам. Это очень богатый материал, который уже много лет прорабатывается в современной диалектической философии, и его конца-края пока не видно. Однако для данного этапа развиваемой темы актуальным является лишь обозначенный аспект, актуальный для настоящей статьи, и для его обсуждения необходимо акцентировать некоторые предметные положения. А для этого, в свою очередь, необходимо хотя бы в общих чертах (а именно они сейчас и нужны) понять различие диалектического программирования и программирования в определенном ракурсе. Поэтому для текущих рассуждений достаточно выделить лишь некоторые требуемые для обсуждения различия.
Однако они и этот вопрос в целом актуальны не только, во-первых, для текущих рассуждений, но и, во-вторых, для развития как диалектического программирования, так и обычного программирования, важное положение которого было уже обозначено в одной из предыдущих статей сайта, а также, в-третьих, для решения ряда связанных с ним задач (например, искусственный интеллект). Поэтому приводимые ниже материалы следует воспринимать как базу для проведения ряда исследований (направления которых можно обсудить в дискуссиях и при определении направлений обоюдовыгодного сотрудничества).
А. Некоторые общие положения.
а. Диалектическое программирование, в отличие от обычного программирования, выводится из одной из новых логик, определенных в современной диалектической философии (а эта логика, в свою очередь, – из гегелевской науки логики).
Понятия базовых положений в диалектическом программировании не берутся бездоказательно («как нужно», «как пришло в голову автору языка программирования» и т.п.), как в обычном программировании, а выводятся из фундаментальных диалектических положений.
Диалектическое программирование не порождает противоречащих друг другу представлений, к тому же еще и отчуждаемых друг от друга, как в различных языках программирования, что происходит в обычном программировании.
Таким образом, диалектическое программирование – концептуальная альтернатива обыкновенному программированию, но они оба рассматриваются как виды человеческой деятельности. Однако если обыкновенное программирование сводится к составлению кода и изучению обстоятельств и возможностей этого, то диалектическое программирование исследует то, что предопределяет всё это, а также новые развития соответствующих обнаруженных фундаментальных начал и, в конечном счете, приводит к изучению вопросов познания.
б. В диалектическом программировании определено понятие программы, которая в науках и обычном программировании корректно не определена.
В обычном программировании не определено основное – понятие программы. И даже её смысл не установлен. А ведь без этого нельзя получить различие и, следовательно, определение программы, что, в свою очередь, ведет к качественно разным пониманиям программы в обычном программировании, точнее – к её недопониманию в нем и поэтому к частичному использованию её возможностей.
С другой стороны, установленное в диалектическом программировании различие ведет к определению разных оснований (методологий) создания программы, что в науках вообще не рассматривается по причине отсутствия соответствующих посылок (идей, представлений) и возможностей исследования.
Итак, даже такое очевидное и всем якобы известное понятие, как программа, потребовало осмысления и уточнения. Так потому, что исследования в диалектическом программировании исходят не из эмпирики и потребностей, как в обычном программировании, а, по сути, из объективной логики, что требует четкого понимания, как в философии Гегеля, выполняемых действий и их регламента, что, далее, ведет к исследованию вопросов алгоритмизации в диалектическом программировании.
в. В диалектическом программировании введение и определение метода понимаются, исходя из фундаментальных понятий, а не как в обычном программировании (см. «Методов идентификация в диалектическом программировании»).
Иными словами, для программирования вообще оказалась возможной идентификация (выведение) методов, что открывает принципиально новые возможности для функционирования программных ресурсов (а в обычном программировании методы понимаются на основе несущественных внешних эмпирических представлений, да и то, как последовательность инструкций).
Отдельным образом можно указать следующее.
в1. Для диалектического программирования очень важно понятие внешнего метода, благодаря которому программы могут определяться и развиваться теоретически определяемые
– общие внутренние методы (напр., в C# это программные static-методы),
– конкретные внешние методы (напр., в C# это методы расширения).
в2. Определено существо
– методов сопоставления (см. «Сопоставления идентификация в диалектическом программировании»),
– методов сравнения (см. «Сравнения идентификация в диалектическом программировании»),
которые в обычном программировании (это было выяснено при исследовании платформы .Net Framework) реализованы, исходя из их внешних порядков, что ведет к их неполноте и дублированию.
в3. В целом же методы в диалектическом программировании понимаются и как реализации описаний (алгоритмические реализации) некоторых объективных совокупностей переходов и изменений, указанных в трудах Гегеля и выявленных в современной диалектической философии, и как методы диалектической философии, и как формы предметных алгоритмов (в программировании – обычно понимаемые методы, процедуры или функции).
Однако в целом методы в диалектическом программировании имеют более фундаментальные определения и широкие возможности, чем те, которые представляют себе программисты, а вот субъективные (программные) реализации методов являются полагаемыми следствиями.
г. В современной диалектической философии различены вообще метод, алгоритм и программа, в то время как в науках и в обычном программировании – нет.
Понятие алгоритма в диалектическом программировании исходит из понимания алгоритма в диалектической философии.
Важным в методологическом, а потом и в программно-структурном смысле является очевидное различение аспектов алгоритмов:
– один («обычный») характеризуется определенным субъективным развитием предмета, правда, уже не на основе несостоятельных законов логики,
– второй (новодиалектический) определяется свободным (неопределенным несубъективным) развитием предмета (программного кода) [в т.ч. в силу разделенного программирования], что соответствует свободному, истинному мышлению, указанному Гегелем в его труде «Наука логики».
Однако более важно то, что было установлено следующее: алгоритм может обладать разными качествами, и в этом смысле алгоритм алгоритму рознь (т.е. не в смысле задачи, содержания и реализации, что понятно).
Еще для диалектического программирования актуальна тема модификации … алгоритмов (т.е. не методов, а именно алгоритма).
д. В диалектическом программировании рассмотрены аспекты построения алгоритмических диалектических ресурсов, в т.ч. диалектической объектно-ориентированной парадигмы и диалектических алгоритмических ресурсов.
Б. Некоторые предметные положения.
а. В диалектическом программировании установлен единый знаменатель программистских теоретизаций. Он позволяет, в частности, реализовывать единообразное и цельное построение диалектического программирования на основе идеи программирования.
В современной диалектической философии было осознано то, что исследование и создание алгоритмических построений и форм их реализаций (в т.ч. языков программирования) нельзя осуществлять, исходя только из эмпирических задач и технических возможностей. Накопленные знания и внушительные технические возможности позволяют развиваться программистским теоретизациям самостоятельно и в объеме их собственных положений и направлений. Это уже само может влиять на способы осмысления и постановки задач и на развитие технической базы. Причем речь уже идет не только о давно понятом положении, касающемся разработки программной среды управляемого выполнения кодов с различными возможностями, включающими управление памятью, системные ресурсы и т.д. Речь идет о специализированной теории существа самих программ, облеченного в алгоритмическую форму и имеющего значительное многообразие, в т.ч. благодаря техническим возможностям. Всё это разнообразие не может исследоваться урывками, исходя из спонтанных решений, случайных эмпирических положений и т.п. Необходима теория и, соответственно, её некоторая основа. А так как речь идет о конкретной теории (а не о философии в целом), то необходимо исходное положение – достаточно общее и простое (не в смысле «тривиальное») положение, присущее базовым и развиваемым теоретическим положениям, или основание для концептов диалектических и обычных известных программистских наработок. Такое положение и было определено в диалектическом программировании.
б. Полиморфизм в диалектическом программировании является архи важным положением, но он выводится, обосновывается, схватывается в его зарождении и прослеживается в его генезисе. А в обычном программировании он был создан таким, каким казался нужным и правильным; – но в этой иллюзорной очевидности и вытекающей самоуспокоенности программистов как раз и кроется … опасность полиморфизма для обычного программирования.
Главным вопросом является основание полиморфизма, которое в современной диалектике было найдено и обеспечило развитие теории полиморфизма.
Выведение полиморфизма в диалектическом программировании (а не введение его в силу эмпирических посылок, как в обычном программировании) архи важно, так как позволяет
– установить основы полиморфизма, в т.ч. в качестве одной из основ объектно-ориентированных языков программирования, которая является фактором их качественного развития, который в обычном программировании не рассматривается,
– идентифицировать и исключить ряд его неоднозначностей, обусловленных его пониманием и использованием в обычном программировании,
– реализовать его расширенное применение.
Совокупность открытых в диалектическом программировании видов полиморфизма составляет полный полиморфизм (см. «Полиморфизм полный»).
в. В диалектическом программировании осуществляется выведение программных типов, недоступное обычному программированию.
В частности, в диалектическом программировании концептуально развиты представления о классах.
в1. В диалектическом программировании помимо основных известных типов был введен принципиально новый тип данных.
в2. В диалектическом программировании осуществлено теоретическое обоснование идентификации видов и подвидов типов: оказалось возможным дать теоретическое обоснование идентификации видов типов, что важно для формирования их подвидов и совокупностей.
Это, в частности, позволяет
– унифицировать программные построения,
– избежать неоднозначности типов, в т.ч. их рассогласование в разных языках программирования (напр., в массив в C# – ссылочный тип, а в Pascal – тип данных).
в3. Еще один аспект построения алгоритмических диалектических ресурсов связан со структурированием программных типов, о чём уже говорилось на сайте и при анализе платформы .Net Framework и при обсуждении выведения типов. Но науки не хотят в принципе признавать одно из фундаментальных положений философии Гегеля, которое активно используется в современном программировании. Иными словами, науки, так ратующие за экспериментальное подтверждение любых фактов, не хотят признавать то, что уже много лет признается и даже используется в программировании. Но в современной диалектике используются и гораздо более мощные диалектические средства, в т.ч. описанные Гегелем, что и стало предметом изучения в диалектическом программировании.
г. Определена возможность реализации суждений (которые в науках определены некорректно) программным путем.
В диалектике суждение определено корректно и в достаточном объеме еще со времен Гегеля, поэтому в настоящее время встал вопрос о разработке соответствующего алгоритмического методологического обеспечение диалектических исследований, в т.ч. за счет использования синтетических суждений, когда а) для конкретного предметного содержания синтетическим образом может быть образовано новое определение, не мыслимое непосредственно и не выводимое аналитически, и б) потом оно может быть использовано в синтетических и других построениях.
Для этого осуществляется исследование в смысле алгоритмизации установленных в современной диалектике ряда форм априорного синтетического суждения, аналогов чему в науках нет ни на уровне теоретических представлений, ни даже в форме гипотез.
Кстати, синтетические построения и возможность создания новых содержаний обусловливают рассуждения о саморазвитии кода и его исполнении в соответствии с новыми положениями (очевидно, что это не рефлексивное программирование).
Принципиально важным оказалось и выявленное рассудочное суждение в диалектике, причем оно в ряде случаев может быть использовано в качестве специфической общей конфигурации для других построений (как, например, «оболочка» для метода в некоторых языках программирования), позволяющей реализовывать синтетические и другие формы не только непосредственно, но и в особых порядках в предметных формах организации рассуждений.
В. Некоторые выводы.
Диалектическое программирование выводится из положений объективной логики, т.е. строится в соответствии с объективностью, а не исходя из субъективных представлений, как обычное программирование; – таково их существенное различие, особенно важное и для текущих рассуждений и для исследований алгоритмизации процессов обработки информации в широком смысле.
Единый знаменатель программистских теоретизаций позволяет создать цельную логику построения и развития программной стратегии и соответствующей платформы, в т.ч.
– избежать неоднозначности ресурсов, например, операций сравнения,
– избежать построения платформы (ресурса) по образу «в себе».
Используя известное выражение Гегеля, можно сказать, что применение некоторых хорошо отработанных программных возможностей, смыслы которых в современной диалектической философии возведены на новый, более высокой уровень, позволяют исследовать то наивысшее, которое может достигнуть программирование (инструменты программирования или их применение), что составляет важное положение в смысле настоящей статьи и развития текущих рассуждений.
При этом в смысле различия уже это положение распадается, в частности, еще на два положения, пока еще не осмысленные в науках в своей непосредственности: задача и программа. Это два разных положения, что в целом интуитивно понимается, но лишь в конкретном различении дает новые гносеологические моменты, пока неведомые наукам.
Также актуальны следующие два положения.
Первое – адаптация известных в диалектической философии приемов и методов исследований в целях решения её гносеологических задач (впоследствии – задач познания и практики). Это сам по себе важный вопрос, который можно будет обсудить в дискуссиях. Второе – использование хорошо отработанных программных возможностей, смыслы которых в современной диалектической философии возведены на новый, более высокой методологический уровень. Их также можно будет обсудить в дискуссиях. Именно в новом понимании программные возможности оказались весьма актуальны для архиважных для современной диалектической философии положений, например, для системы знаний диалектической философии.
Более того, понимание и использование некоторых хорошо отработанных программных возможностей, смыслы которых в современной диалектической философии возведены на новый, более высокой уровень, актуальны в снятии, что позволяет реализовывать новые эффективные возможности, правда, принципиально чуждые для обычного программирования, да и для всего рационалистического познания.
Принципиально важным отличием диалектического программирования от обычного является различение и определение в первом метода и алгоритма. И это ведет не только к (1) очевидной теме алгоритмической обработки информации в широком смысле. Обсуждаемые возможности и инструменты позволяют рассматривать в алгоритмическом ракурсе и (2) ряд высших диалектических принципов и положений познания. С другой стороны, они позволяют формировать определения, что не менее важно, так как именно это позволяет проводить исследования феноменов, в т.ч. объектов физического мира (в этом смысле интересно рассмотрение вещи в себе, в т.ч. на основе соответствующей обработки информации в широком смысле, о чем уже говорилось на сайте). В итоге именно в диалектическом программировании (3) переосознан на инструментальном уровне гегелевский принцип познания и исследуется переход к его предметной реализации. Но не в смысле абсолюта, как у Гегеля, а в инструментальном смысле, что позволяет осмыслять принципиально новые виды решения теоретических и практических задач! Однако и развитие исследований в части понятия оказывается возможным (что составляет важный аспект развиваемой с прошлого года и обсуждаемой сейчас темы).
Кроме того, в диалектическом программировании рассматривается (4) более богатый набор типов данных, чем в обычном программировании, более того, отличенных от информации, что принципиально важно. При этом, с одной стороны, в диалектическом программировании переменная, тип и значение и их свойства а) имеют более фундаментальные определения, чем те, которые представляют себе программисты, и б) могут быть представлены в таких формах, которые еще не ведомы обычному программированию. Поэтому они обусловливают новые программистские возможности, использование которых уже происходит при осуществлении познания современной диалектики в целом и при создании актуального диалектического программного ресурса в частности.
Также (5) выявлена эмерджентность возможностей обработки информации.
Более того, актуальны и гносеологические возможности. Например, как уже отмечалось на сайте, одна из них позволила сформировать диалектические представления о некоторых положениях философии Платона, которые ранее попросту не могли быть замечены в силу отсутствия специфических инструментов, позволяющих их выявить, и, главное, принципов (подходов), идентифицированных благодаря положению, уже указанному ранее на сайте в отношении программирования вообще.
Благодаря новым гносеологическим возможностям были также установлены и некоторые фундаментальные новодиалектические онтологические положения, например, касающиеся изначальности.
И др.
Г. Положения, актуальные для текущих рассуждений.
Указанные выше положения определяют для текущих рассуждений требуемые для обсуждения различия и соответствующие актуальные положения, которые следует обсудить в дискуссиях.
Они актуальны, с одной стороны, для исследования вопросов алгоритмизации, а, с другой стороны, для развиваемой с прошлого года и обсуждаемой сейчас темы.
Однако, главное, более всего важен их сверхсуммарный эффект, позволяющий рассматривать вопросы текущего обсуждения в плоскостях алгоритмизации и программирования. А для последнего это позволяет находить не только новые стези его развития, но и принципиально новые диалектические инструменты.
Д. Перспективные положения.
Как было указано выше, для текущих рассуждений достаточно выделить лишь некоторые требуемые для обсуждения различия диалектического программирования и обычного программирования. Однако их различение актуально не только для текущих рассуждений, но и для развития как диалектического программирования, так и обычного программирования, а также для решения ряда связанных с ним задач.
В частности, выявленные в диалектическом программировании положения позволяют проводить перспективные исследования в следующих направлениях.
Во-первых, исследуются новые типы данных и формы их организации, вплоть до осмысления новых форм баз данных.
Во-вторых, определены и исследуются алгоритмизируемые приемы познания, представляющие собою новые формы обработки информации в широком смысле. При этом они могут рассматриваться как возможности, присущие конкретному блоку рассуждений (коду), а также представлять собою обобщенную возможность.
В-третьих, совместное использование ряда новодиалектических ресурсов (например, баз представлений и метаинформационных технологий) важно для развития новых возможностей обработки информации в широком смысле (например, взаимозадачность в диалектической гносеологии) и познания в целом (например, новодиалектический принцип познания), в т.ч. основанных на уникальных диалектических представлениях, например, на основе мыслящей себя категории.
В-четвертых, актуальным оказывается развитие новых форм программирования, например, разделенного программирования. И это – развитие новых форм – представляет собою еще один актуальный и принципиально важный теоретический вопрос, который решает диалектическое программирование.
Отдельно нужно остановиться еще вот на каком положении.
Установление основ полиморфизма, являющегося одной из основ объектно-ориентированной парадигмы программирования, и принципиально важное для нее структурирование программных типов позволяют по-новому взглянуть на эту парадигму и развить её, что очень актуально сейчас, в условиях ее бурного развития и применения в обычном программировании. (А в диалектическом программировании объектно-ориентированное программирование интересно, как уже отмечалось на сайте, еще и по другим причинам.)
Продолжение: «Т: знания, информация и данные».
См. «Методы и алгоритмы в диалектическом программировании»,
«Диалектическое программирование и философия Платона»,
«Программа: сугубо диалектические особенности»
и «Высшие смыслы диалектического программирования».
2. Дискуссионная часть
[в рамках проекта ДИАЛЕКТИКА].
а. Обозначение исходных, предметных и целевых положений обсуждений предполагается осуществить в начале предметных дискуссий.
б. Для предметных дискуссий в рамках Академии диалектики и диалектической философии предоставляются ссылки на дополнительные материалы.
в. Вопросы, предложения, сообщения и т.д. можно присылать на сайт через Контакты, а также на различные вспомогательные и дополнительные ресурсы сайта.
г. Для новых пользователей и для новых ветвей обсуждений могут быть созданы дополнительные дискуссионные площадки; заявки и предложения присылать через Контакты.
Облачная зона по этой теме временно закрыта до новых дискуссий.