Незадолго до появления реального программирования ряд математиков уже начал мечтать о нём. И фантазировать, как оно могло бы быть устроено.
Оттуда, например, «машина Тьюринга» - отличный язык программирования, на котором ни один человек в мире с момента его существования не был в состоянии написать даже очень простую программу. Самый топчик - реализовать что-то типа сложения двух чисел, да и то уверенности в том, что оно правильно работает, так до конца и не появлялось.
Хотя, говорят, эта машина отлично подходит для теоретизирования о программировании, алгоритмах, вычислимости и так далее. Для меня это звучит примерно как: «да, этим автомобилем никто в мире полноценно управлять не может, даже стронуться с места способны лишь считанные единицы, но зато он отлично подходит для размышления о теории управления автомобилями, гоночных соревнований и роботов-водителей».
Откуда берётся вот это «зато отлично подходит» в приложении к штуке, с которой на практике даже простейшие вещи сделать не получается, я могу только догадываться, но подозреваю, что всё дело в том, что «мы попробовали о ней рассуждать, и нас никто не запалил, поскольку никто не смог понять, что тут вообще происходит».
Так и повелось: мы делаем заявления про ту область, которую никто не знает, нас никто не палит, следовательно, наши рассуждения верны.
Однако проблема в том, что с тех давних пор область успела радикально развиться, и количество умеющих ей пользоваться (только, конечно, не машиной Тьюринга и не автомобилем с ненормальным управлением) радикально возросло. А потому вроде бы следовало бы ожидать, что запаливать наконец-то начнут. Ибо, ну серьёзно, читать рассуждения, например, Пенроуза о программировании, искусственном интеллекте и связанной с этим математике без слёз невозможно. Это практически так же невыносимо, как разбирающемуся в физике читать «Диалектику природы» Энгельса - всё время кажется, что это какая-то адская смесь криво, с кучей ошибок пересказанного школьного учебника и канала Рен-ТВ.
«Новый ум короля» Пенроуз написал не в 1919-м, а в 1989-м. Как такое может быть? Это ведь уже не совсем ещё непаханое поле - программирование как раз резко шло вверх и уже перестало быть «чем-то, что нужно паре-тройке гиков».
Видимо, ирония в том, что математики, рассуждающие о теориях алгоритмов и т.п., считают, что для этого не нужно уметь программировать, а потому программировать и не учатся. А программисты при этом считают, что эти области математики для них бесполезны, и потому в них никогда не заглядывают (чёрт побери, вполне возможно, в этом они правы).
Ибо как ещё это может продолжать существовать, неясно - только благодаря взаимному игнорированию. Я, например, случайно заглянул в эти области и тут же обнаружил, что там вообще полный трындец. Не, конечно, я ещё в школьные годы слышал, например, про теорему Гёделя, диагональный аргумент Кантора, умозаключения про машину Тьюринга и даже вроде как в «фоновом режиме» слегонца представлял себе всякие там доказательства всяких там концепций из этой области, включая означенные теоремы, но я не ожидал, что там настолько много ошибок и такой туши-свет. Все эти рассуждения настолько цинично неправильны, что должны были бы мирно скончаться ещё в середине тридцатых. Но нет, они живы до сих пор.
Это как если бы сейчас, когда машина чуть ли не у каждого второго, всё ещё существовал клуб любителей «теоретических автомобилей», которые на примере каких-то странных воображаемых уродцев плодили бы гипотезы о том, что может, а что не может автомобиль, если его всё-таки произвести. И у них бы раз за разом получалось, что без паровой машины внутри автомобиля ничего не выйдет, что колёс должно быть минимум пять, и по направлению на запад на автомобиле поехать в принципе нельзя. А практическим бонусом всего этого до сих пор бы считалось доказательство возможности сделать руль, занимающее пятьсот страниц мелким шрифтом. Правда, конструкция этого гипотетического руля требовала бы наличия ста рук у водителя и не оставляла бы для него места в салоне.
Не, ну я понимаю, что на самом старте - в начале двадцатого века - всё это как бы в тему, поскольку надо с чего-то начинать. Однако, когда кто-то пишет такую вот познавательную книжку в девяностых или читает об этом лекции студентам в две тысячи двадцатых, оно как бы очень настораживает: в каком анабиозе пребывали все эти люди почти сто лет?
Мораль этой истории такова: любая концепция обретает законченность и оптимальность только в тот момент, когда её воплощают на практике. Теоретические рассуждения до момента появления на их основе технологий и начала использования оных технологий - это вилами по воде писанное. В лучшем случае, расплывчатые догадки, а в худшем - больные фантазии на тему.
Да-да, даже в «теоретических» областях типа математики это тоже верно: без эмпирики никуда.
В этом смысле, на данный момент любая математическая концепция должна считаться построенной хотя бы в первом приближении, когда кто-то сумел создать программу, реализующую эту концепцию. Если программа правда работает и правда позволяет получать закономерные результаты, то частям концепции, в ней реализованным, можно хотя бы немного доверять.
Ибо мозг у человека устроен так замечательно, что он способен без проблем проигнорировать и скрыть от себя все «неудобные» моменты рассуждений, а там, где всё-таки не заметить не удалось, способен нагородить сложную конструкцию из костылей, на которой всё держится исключительно в рамках мысленного эксперимента, где, благодаря устройству мозга, можно проигнорировать даже очевидную неустойчивость и противоречивость.
В общем, из физики философию удалось выкинуть, теперь надо довыкинуть её из математики. Так победим.
doc-файл