Мышление и программирование - 1.
- 15.12.19 г.
- 9772225665000 19034


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

Начнем с философической стороны –  с того, что… И. Кант, предложил идею о том, что вырабатываемое человеком знание об окружающем мире не является пассивным отражением, а создается в процессе познания, который у Канта характеризуется рядом аспектов, в том числе категориями рассудка. Иными словами, Кант в своем труде «Критика чистого разума» определил сочетание, с одной стороны, (чувственного) содержания, т.е. воспринимаемой человеком информации (в программировании – это данные), и, с другой стороны, (субъективной) реализации (в программировании – это приемы, способы и методы обработки информации, а в пределе – компьютерные команды), в которой воспринимаемое постигается, обрабатывается за счет субъективных форм и категорий. Внимание тут следует обратить на существо действий, обозначенное великим философом в логическом виде, в формальном выражении, и на тождественность в обозначенном ракурсе принципов функционирования таких информационных систем, как человек и компьютер, причем нужно также добавить, что человек создал компьютер на основе понятных ему принципов логики и обработки информации, т.е. собственного мышления. Можно сказать и так: для наук очевидны когнитивная деятельность человека, ее логическая формализация и ее некоторые реализации, применимые и реально используемые в программировании. Иными словами, существенным для настоящей статьи является указанное широко известное Кантовское открытие, касающееся содержания чувственного восприятия и качественного различения его элементов (в программировании – это данные) и форм их обработки (в программировании – это компьютерные команды), их разделения и сочетания, что в вырожденном виде обозначает различение компьютерных команд и данных, вплоть до оценок и выбора вариантов компьютерных каналов команд и данных и их сочетания в определенную архитектуру.
    Таким образом, формализация положений, обозначенных Кантом, важна и теоретически, в том числе для логики, и практически, в данном случае – для программирования, причем в смысле данных, их организации, операций с ними и т.д. вплоть до исполнения исчисления данных и его логического обеспечения – до создания оптимальных компьютерных архитектур (это, кстати, составляет отдельный очень важный вопрос).
    Отдельным образом необходимо отметить и обозначенные Кантом суждения, которые фактически являются одной из основ логики обработки информации в смысле данных и регламентов их сочетания. Но для более подробных рассуждений о суждениях принципиальным оказывается то, что в науках  суждения… корректно не определены («Рассудочного суждения в науках несостоятельность»), не говоря уже о ничтожности ряда логических законов, раскритикованных Гегелем в его труде «Наука логики», и об искажениях обыкновенной логики, содержание которой великий философ вообще удостоил презрения (см. «Логика, или обыкновенная логика»), а в некоторых странах вообще процветают стереотипы несуществующих «законов» диалектики, о которых мы уже не раз говорили (««Законы философии» или «законы диалектики»: их нет»), которые выдумал Энгельс (а из-за невозможности их доказательства указал, что они якобы развиты Гегелем, однако ни Энгельс, ни кто-либо другой соответствующих ссылок на труды Гегеля так и не привел...). Так что пока вопросы, связанные с формированием данных и их исчислением на основе суждений придется отложить, но все же акцентировать это немаловажный вопрос было нужно, ибо именно понимание суждений позволяет проводить в Современной диалектической философии ряд принципиально новых исследований в областях познания и программирования.
    Также следует отметить развитие Кантовских определений и рассуждений в философии Гегеля и в Современной диалектической философии, которое определило дальнейшее изучение сочетания принципов и положений исследований обработки данных – данных и операций с ними, причем в том числе в смысле вопросов, касающихся
 а) форматов определений (в программировании – это типы данных), включая определение новых форматов данных,
 б) операций с определениями (в программировании – это операции с данными), включая определение новых операций,
 в) форматов представления и обработки разнообразных сочетаний данных и операций с ними (в программировании – это классы (пользовательские типы) и подпрограммы),
 г) архитектур рассуждений – комплексов (архитектур) данных и операций с ними, включая определение новых методов и их организацию (в программировании аналогов нет).
    Таким образом, моменты, касающиеся восприятия и обработки информации в мышлении, да и самого мышления, и конечно же логики, обозначенные в философиях Канта и Гегеля и в Современной диалектической философии, оказываются весьма важными для программирования. Или взаимосвязь философии мышления и программирования очевидна. Но и обратное для диалектики очевидно: философские подходы к программированию актуальны и очень важны и для него и для познания в целом, но они реализуются пока только в современной диалектике, ибо вне нее философия и обыкновенное программирование разделены, лучше даже сказать – разлучены, причем, как показывает практика, программисты на надлежащем уровне не знают философию, гносеологию, логику, поэтому фактически не имеют инструментов познания и возможностей качественного развития компьютинга, а представители философских наук практически не знакомы с программированием.
    А в Современной диалектической философии для исследования обозначенных и других вопросов была создана отдельная область познания – диалектическое программирование.

В контексте настоящего Раздела сайта, в котором обсуждаются обстоятельства мышления, показательными (что более наглядно отражает высказываемую мысль, чем диалектические основы, порой попросту не признаваемые объективно-научным познанием) являются, по меньшей мере, следующие три положения, обозначенные в предыдущих статьях «Процессы мышления» и «Мышление и изучение иностранных языков» и которые наглядно демонстрируют сделанный нами вывод о тесной связи диалектики – Кантовской, Гегелевской и современной – и программирования.
    Первое положение раскрывается в том, что существование разных процессов мышления, которые могут быть одновременны, имеют аналогию в программировании. В качестве примера можно привести организацию параллельных вычислительных процессов в известной программной среде .NET Framework с помощью класса Thread. Если же речь идет о двух или более процессах мышления, а не об одном мышлении, т.е. о реализации двух (или более) различных одновременных процессов мышления, то в пример можно привести и более развитые возможности класса Task, который является абстракцией, представляющей асинхронную операцию, чем существенно отличается от более раннего класса Thread.
    Реализация параллельных процессов значительно повышает эффективность вычислений, а в диалектике – и мышления, а вот реализация разных процессов мышления и в реализациях диалектического программирования значительно повышает продуктивность соответственно познания и вычислений, что возможно, правда, только в Современной диалектической философии. При этом, главное, вырисовываются контуры а) принципиально новой формы мышления, в которой превосходятся даже функционалы гегелевского познания на основе тождества мышления и бытия, и соответственно б) принципиально новых форм организации параллельных вычислительных процессов.
    Второе положение соответствует тому, что инкорпорирование соответствующего изучаемому языку мышления в мышление изучающего человека имеют аналогию в программировании. В качестве примера можно привести тип delegate (например, языка программирования C#), который можно передавать в качестве аргумента. Иными словами, в современном программировании процесс (метод) можно передавать в другой процесс (метод) или объект (предмет, познание), т.е. объект или метод может в себе непосредственно использовать изначально не определенный для него внешний процесс. Это – в смысле программирования. А в смысле диалектики определяются принципиально новые формы познания, уже используемые в современной диалектике, но это – уже отдельный разговор.
    Третье положение заключается в том, что  обозначенные положения обусловливают возможность создания в диалектическом программировании кусочно-последовательного изменения программного некоторого и даже определенных в связи с ним процессов, например, в целях частичного («ненепрерывного»), исследования или моделирования конкретного нечто или соответствующего применения подпрограмм. В программировании пока есть представления только об изменяемых экземплярах: в упомянутом языке C# соответствующим примером является класс StringBuilder.

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

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

Таким образом, тема «Мышление и программирование», рассматриваемая в данном случае со стороны мышления, привела в Современной диалектической философии к весьма серьезным и глубоким исследованиям в области гносеологии и программирования; но и обратное актуально – достижения программирования активно используются в современной диалектике для развития ее познания.

 


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