June 26th, 2020

intellectual integrity, smac

Философия в программировании

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

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

Например, рассказывается о том, что человеческая речь это прежде всего не утверждение, истинное или ложное, а приказ. То же самое можно сказать о компьютерной программе. Несмотря на заблуждения любителей функционального программирования, компьютерная программа не является логической или математической задачей.

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

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

Посмотрите и почитайте Декларацию русской нации, раз уж вы тут, а также выпуск с рассказом о Крылове:

Collapse )