# Философские основы языка ```citate Философы лишь различным образом объясняли мир, но дело заключается в том, чтобы изменить его. ``` Карл Маркс, «Тезисы о Фейербахе», 1845 г. ## Диалектический материализм, как основа языка Из всех доступных философских направлений `диалектический материализм` наиболее полно отражает основную идею языка. Как известно, любой язык должен моделировать реально существующие материальные сущности и процессы. Либо скрытые процессы, но имеющие вполне материальную основу. Существует ряд сущностей и процессов, которые не имеют прямой реализации в реальном мире (например игры), но такие процессы смоделированные в виде состояний электронных структур всё-равно в нектором смысле существуют. ## Три закона диалектики, как основа проектирования языка Все три закона диалектики создают целостный базис для моделирования языка. ### Единство и борьба противоположностей Закон единства и броьбы противоположностей определяет основы форм и содержаний всего сущего. Основными сущностями в языке программирования являются значения и процессы, связывающие значения. Это две ортогональные философские категории наполняют пространство состояний. ### Закон отрицания отрицания Закон отрицания отрицания определяет формы, которые содержатся в общей содержащей форме. Перетекание одной формы в другую форму определяет то внутренее превращение, которое с ходом времени приводит к превращению объемлющей формы в своё новое представление. Так например, программный код при рефакторинге отрицает своё предыдущее состояние, через развитие новой качественной формы. ### Закон перехода количества в качество и обратно Этот закон диалектического материализма определяет переход накопленных количественных характеристик в новое качество. А при утрате качества -- назад в количественное состояние. Язык программирования в рамках диалектического дискурса проявляет такие свойства, например -- при переводе текста программы из одной формы в другую более низкого уровня. При этом количество кода соответствующего уровня растёт, неявно сохраняя в себе качества более высокого уровня. ## Основные диалектические противоречия в языках программирования Диалектические пары присутствуют в любом языке программирования. Обычно они описаны либо не полно, либо не описаны вообще. Цель настоящего языка программирования явн оописать эти диалектические противоречия и решить их в духе диалектическог оматериализма. ### Материя первична, сознание вторично Материя первична, сознание вторично. Язык программирования является продуктом объективной реальности. Все процессы и явления имеют материальную основу. Модель должна опираться на объективную реальность, а не на абстрактные идеи. Все находится в постоянном движении, изменении и развитии. Состояния не статичны — они трансформируются под действием внутренних и внешних причин. Развитие происходит через борьбу противоположностей. Внутренние противоречия — двигатель изменений. Без них — нет развития. Переход количественных изменений в качественные. Накопление мелких изменений ведёт к скачку, к новому качеству. Отрицание отрицания. Развитие идёт не по прямой, а по спирали: старое отрицается, затем отрицается само отрицание — и возникает что-то более высокое. Язык программирования не рождается из пустоты, не является плодом субъективной фантазии. Он возникает как ответ на объективные потребности: - Развитие аппаратного обеспечения (процессоры, память, параллелизм). - Появление новых задач (веб, ИИ, распределённые системы). - Опыт существующих языков (их успехи и провалы). Следовательно, материальной основой является: - Техническая база (компьютеры, сети), - Социальная практика (программирование как труд), - Предшествующие формы (языки C, Lisp, Python, Rust и др.). Вывод: язык программирования — производное от производительных сил информационной эпохи.