Диалектическое программирование: особые положения.
- 01.06.14 г.


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


1. Предметные положения.


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


А. Некоторые выводы исследований платформы .Net Framework.
    В ходе структурного построения диалектического программирования с учетом анализа платформы .Net Framework (Microsoft Co.), в т.ч. её недостатков, были зафиксированы такие особые положения диалектического программирования.

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

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

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


Б. Направления и положения исследований.

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


В. Некоторые принципы исследований, построения и применения программных ресурсов.

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

б. Зафиксирован принцип надлежащей (однозначной) подготовки данных.

в. Актуально определение принципов алгоритмической обработки данных, см. «Диалектическое программирование: принципы алгоритмической обработки данных».

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

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


Г. Типы данных.

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

б. В диалектическом программировании помимо основных известных типов был введен принципиально новый тип данных.

в. В диалектическом программировании осуществлено теоретическое обоснование идентификации видов и подвидов типов: оказалось возможным дать теоретическое обоснование идентификации видов типов, что важно для формирования их подвидов и совокупностей.
    Это, в частности, позволяет
– унифицировать программные построения,
– избежать неоднозначности типов, в т.ч. их рассогласование в разных языках (напр., в массив в C# – ссылочный тип, а в Pascal – тип данных).

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

д. Оказалось возможным определение принципа сравнения.
    При этом при анализе платформы .Net Framework была переосмыслена необходимость двух методов сравнения.


Д. Некоторые структурные положения.

а. Обоснование (выведение) коллекций.
б. Обоснование (выведение) списков.


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


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


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

Отдельным образом можно указать следующее.

а. Для диалектического программирования очень важно понятие внешнего метода, благодаря которому программы (коды) могут определяться и развиваться через теоретически определяемые
– общие внутренние методы (напр., в C# это программные static-методы),
– конкретные внешние методы (напр., в C# это методы расширения).

б. Определено существо
– методов сопоставления (см. «Сопоставления идентификация в диалектическом программировании»),
– методов сравнения (см. «Сравнения идентификация в диалектическом программировании»).

в. В целом же методы в диалектическом программировании понимаются и как реализации описаний (алгоритмические реализации) некоторых объективных совокупностей переходов и изменений, указанных в трудах Гегеля и выявленных в современной диалектической философии, и как методы диалектической философии, и как формы предметных алгоритмов (в программировании – обычно понимаемые методы, процедуры или функции).
    Укажем три положения, важных для материалов сайта.
    В диалектическом программировании
– учитываются и алгоритмизируются многие возможности практически всех уровней методологических ресурсов диалектической философии, определенных в современной диалектической философии (см. «Диалектической методологии уровни»);
– активно используются знания о полиморфизме методов диалектической философии (см. «Методов диалектической философии полиморфизм»), который является основанием для модификации методов в программировании и за счет авторазвития кода, и в смысле рефлексивного программирования, и в качестве известных перегрузки или переопределения методов и др.;
– создаются новые предметные представления и возможности, см. «Диалектического программирования группа «Методы»».


И. Некоторые базовые программистские положения.

а. Полиморфизм в диалектическом программировании является архи важным положением, но он выводится, обосновывается, схватывается в его зарождении и прослеживается в его генезисе. А в обычном программировании он был создан таким, каким казался нужным и правильным; – но в этой иллюзорной очевидности и вытекающей самоуспокоенности программистов как раз и кроется … опасность полиморфизма для обычного программирования.
    Главным вопросом является основание полиморфизма, которое в современной диалектике было найдено и обеспечило развитие теории полиморфизма.
    Выведение полиморфизма в диалектическом программировании (а не введение его в силу эмпирических посылок, как в обычном программировании) очень важно, так как позволяет
– установить основы полиморфизма (а понимание одной из основ объектно-ориентированных языков программирования – это ключ к их качественному развитию, которого в обычном программировании попросту НЕТ),
– идентифицировать и исключить ряд его неоднозначностей, обусловленных его пониманием и использованием в обычном программировании,
– реализовать его расширенное применение.
   Совокупность открытых в диалектическом программировании видов полиморфизма составляет полный полиморфизм, см. «Полиморфизм полный».


Примечание 1.
Полиморфизм весьма значим для диалектической философии, причем в современной диалектической философии была даже создана отдельная его теория – теория полиморфизма, изучающая вопросы, которые науки и обычное программирование даже представить не могут. А все дело в основе полиморфизма...
    При этом следует акцентировать предельно слабую и противоречивую теоретическую проработку вопросов полиморфизма в обычном программировании. Например, полиморфизмом называется и ситуативный полиморфизм, связанный с перегрузкой методов, и полиморфизм подтипов, позволяющий принимать в качестве аргументов более наследуемые типы. И откуда же взялось столько значительное различие (видов) полиморфизма? Но лучше спросить так: почему одно понятие (полиморфизм) безапелляционно включает совершенно разные определения, да еще без объяснения причин этого? Обыкновенное программирование ответа дать не может (разве что: «так исторически сложилось»). А ведь именно в этом кроется одна из причин негативов, обнаруживающихся в современном программном обеспечении, что было показано в ходе анализа платформы .Net Framework.
    Так что вопрос глубокой теоретической проработки полиморфизма весьма актуален, но до сих пор игнорируется в обычном программировании.


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

в. И понятие создания экземпляра в диалектическом программировании тоже выводится, а не вводится как априори требуемое для создания ООП понятие, см. «Экземпляра идентификация в диалектическом программировании».


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


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

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


К. Программа.
    В диалектическом программировании определено понятие программы, которая в науках и обычном программировании корректно не определена.


Л. Алгоритм.
    В современной диалектической философии различены вообще метод, алгоритм и программа, в то время как в науках и в обычном программировании – нет.
    Понятие алгоритма в диалектическом программировании исходит из понимания алгоритма в диалектической философии.
    Важным в методологическом, а потом и в программно-структурном смысле является очевидное различение алгоритмов:
– один («обычный») характеризуется определенным субъективным развитием содержания, правда, уже не на основе несостоятельных законов логики,
– второй (новодиалектический) определяется свободным (неопределенным несубъективным) развитием содержания (программного кода) [в т.ч. в силу разделенного программирования], что соответствует свободному, истинному мышлению, указанному Гегелем в его труде «Наука логики».
    Для диалектического программирования актуальна тема модификации алгоритма (т.е. не метода, а именно алгоритма).


М. Вопросы потокобезопасности.
    В диалектическом программировании развиты представления о потокобезопасности и созданы новые; один из них – это внутренняя потокобезопасность.


[См.  «Диалектическое программирование: аспекты построения алгоритмических диалектических ресурсов», «Диалектического программирования базовые положения» и «Диалектического программирования принципы» и «Диалектическое программирование: структурное построение».]



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

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

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

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

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


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