Библия и искусство программирования (Дональд Кнут)

член-корреспондент РАН, доктор геолого-минералогических наук, профессор Сергей Владимирович Кривовичев

Привожу интересный отрывок из книги «Наука верующих или вера ученых: век XX«. Кривовичев Сергей. М.: ООО «ТД Алгоритм», 2015, 208 с. ISBN 978-5-4438-1036-2

«Пожалуй, ничто так не изменило нашу жизнь за прошедшие несколько десятилетий, как компьютеры. Никто не мог предвидеть такого интенсивного развития как технического (hardware), так и программного (software) обеспечения электронно-вычислительных машин. Наиболее поразительным и не совсем видным обычному пользователю стало бурное развитие методов и приемов программирования и связанной с этим обработки информации и изображений. За всей этой техникой лежит универсальная теория алгоритмов — способов для решения тех или иных вычислительных задач. Одним из признанных мировых лидеров в этой области является американский математик и программист Дональд Кнут. Его многотомник «Искусство программирования» является настольной книгой программистов и выдержал несколько изданий как на английском, так и на других (в том числе и на русском) языках.

профессор Дональд Эрвин Кнут

Кнут также является автором широко известной настольной издательской системы «ТеХ», чрезвычайно популярной среди ученых, работающих в области физики и математики (некоторые научные журналы принимают рукописи статей, написанные только в этой системе). Влияние Дональда Кнута на развитие программирования в XX веке трудно переоценить, но ему также принадлежат и интересные разработки в дискретной математике и теории чисел. Правда, сам о себе он всегда говорил именно как о человеке, составляющем программы, — такие люди имеют совершенно особый образ мышления: «Я убежден, что компьютерная наука выросла так быстро и так активна сегодня, поскольку в мире есть люди с особенным образом мышления, со специфической манерой структурировать знания в своей голове, — это ментальность, <…> которая отличается от ментальности физиков и математиков. Это люди, которые в старые времена были рассеяны по разным департаментам, будучи более или менее изгнанниками в стенах университетов. Когда неожиданно оказалось, что их особенность мышления прекрасно коррелирует со способностью писать компьютерные программы, эти люди неожиданно нашли друг друга. <…> Одна из основных характеристик компьютерной ментальности — это способность очень быстро перескакивать с одного уровня абстракции на другой, практически бессознательно. <…> Опыт показывает, что примерно один человек из 50 обладает «компьютерным» взглядом на мир» [1].

Создание компьютерных программ можно сопоставить с созданием параллельной реальности, а их использование — с пребыванием в этой реальности. Виртуальный мир, создаваемый компьютерными программами, иногда проще и интереснее, чем реальный мир, и в нем человеку открывается гораздо больше возможностей, чем в реальности (например, способность летать). Видимо, именно с этим связана такая популярность компьютерных игр среди подрастающего поколения. Но если программисты создают свои отдельные вселенные, которые могут развиваться в соответствии с поведением в них отдельных личностей-игроков, то что, если, наоборот, вся видимая Вселенная является результатом программирования Великого Программиста, определяющего обстановку и правила игры, но оставляющего за нами, как за игроками, свободу выбора и действия? Если встать на эту точку зрения, то оказывается, что программирование имеет, может быть, гораздо большее отношение к проблемам бытия Бога и Его действия в мире, чем это может показаться со стороны. Именно поэтому так интересны взгляды на соотношение компьютерной науки и религии выдающего специалиста в области компьютерной математики и верующего христианина Дональда Кнута.

Дональд Кнут родился в 1938 году в городе Милуоки (штат Висконсин, США). Он окончил Институт технологии Кейза (Case Institute of Technology) и в 1963 году получил степень доктора философии по математике в Калифорнийском технологическом институте. Технологии программирования заинтересовали его уже в студенческом возрасте — в 1958 году он написал программу для баскетбольной команды своего колледжа. В 1960-х годах программирование было полностью новой областью, и предстояло оформить его в отдельную область науки, дать строгие доказательства отдельных положений, построить теорию анализа алгоритмов и т. д. Основным жизненным проектом Кнута стало написание уже упомянутой выше книги «Искусство программирования», первый том которой вышел в 1968 году. Эта книга, наряду с другими работами, принесла ему мировую известность и ряд престижных международных наград и премий, включая высшую американскую награду в области науки — Национальную медаль Науки США в 1979 году и премию Тьюринга в 1974-м — своего рода «Нобелевскую премию по программированию». Приятно отметить, что Дональд Кнут также является иностранным членом Российской Академии наук. Будучи с детства воспитанным в религиозном духе («я вырос с идеей, что Бог постоянно читает мои мысли, и я всегда чувствовал себя вполне комфортно с подобным вторжением в мою частную жизнь»), в зрелом возрасте он заинтересовался возможностью изложения своих религиозных взглядов для своих коллег, — прежде всего тех, которые отрицательно относились к религии (таких, по его расчетам, было от 5 до 10 процентов).

The Tech (MIT): What is your religious background like? Are you knowledgeable on all religions?

Knuth: «I grew up in a warm friendly environment and my family always always went to Church. My father was a teacher for a Lutheran School. I’m Protestant, and I’ve studied most branches of Christianity. I don’t know that much about other religions, however. I just know enough to know there are many connections. I also have a great deal of respect towards other religions» [2].

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

Кнут весьма осторожен в вопросах веры и неверия («я никогда особенно не пропагандирую свою веру; обычно я жду, когда люди спросят меня об этом, если это им интересно»), но находит место и для критики:

«Для людей в науке очень легко поверить в то, что если ты однажды что-то выучил, то тебе уже не нужна помощь ни в чем другом. Я никогда не мог понять эту точку зрения. <…> Я всегда восхищался словами апостола Павла в начале его первого послания к Коринфянам. Сначала он цитирует пророка Исайю: «разум разумных отвергну» (Ис. 29,14); затем он устанавливает базовый математический принцип упорядочения: «немудрое Божие премудрее человеков»; и говорит о том, что “Бог избрал немудрое мира, чтобы посрамить мудрых… для того, чтобы никакая плоть не хвалилась пред Богом» (Кор. 1:20-29).

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

В связи с этим, осенью 1978 года Кнут решил расширить свои религиозные познания путем исследования Библии «…одним из методов, которые я использовал для понимания больших компьютерных программ и которые помогли мне в изучении других весьма сложных предметов». Этим методом стал алгоритм рандомизации, когда знания о системе добываются путем случайной выборки и последующего анализа ее отдельных компонентов. Библия содержит около 31 ООО стихов, распределенных по 66 книгам. Кнут решил выбрать по стиху из каждой книги, то есть осуществить стратифицированную или послойную выборку.

«Как раз в это время меня попросили провести библейский класс в нашей церкви. На протяжении многих лет я посещал библейские классы, но в качестве преподавателя — никогда. Мне сказали, что вот, наконец, пришла и моя очередь… «Хорошо, — сказал я, — но учтите, что со мной вам придется стать участниками эксперимента. Мы будем рассматривать случайно взятые стихи из Библии»».

И все же стихи были выбраны не совсем случайно — Кнут решил исследовать 16-й стих 3-й главы каждой библейской книги. Такой выбор был обусловлен тем, что одним из самых известных (по крайней мере, в США) библейских стихов является стих 3:16 из Евангелия от Иоанна: «Ибо так возлюбил Бог мир, что отдал Сына Своего единородного, дабы всякий, верующий в Него, не погиб, но имел жизнь вечную». Этот стих настолько популярен среди протестантов-фундаменталистов в США, что иногда они держат на футбольных матчах (имеется в виду, конечно же, американский футбол) транспаранты с надписью «John 3:16». По словам Кнута, «проект 3:16» оказался чрезвычайно успешным и так заинтересовал посетителей библейского класса, что к разбору стиха 3:16 из Откровения Иоанна Богослова (последней книги Библии) зал был полностью забит слушателями. Правда, из 66 книг Библии только 59 имеют стих 3:16 (например, послание к Титу заканчивается на стихе 3:15), в связи с чем необходимо было изучить всего 59 стихов, включая толкования к ним разных авторов, рассыпанные в широком временном интервале. Ученому пришлось прочитать большое количество литературы, начиная от древней до самой современной. На этом пути его ожидало немало сюрпризов — например, к своему удивлению, он узнал, что Исаак Ньютон написал 20-страничное толкование на стих 3:16 из первого послания апостола Павла к Тимофею. На основании подстрочника он даже предложил новый перевод для нескольких стихов. Все полученные им сведения Кнут собрал в книге «3:16. Освещение библейских текстов». Толкование каждого библейского стиха в этой книге сопровождается его каллиграфическим воспроизведением, над которыми трудились выдающиеся каллиграфы Старого и Нового света. Работа над книгой заняла достаточно долгое время и была оценена коллегами Кнута как его очередная экстравагантная выходка.

«В том году (1985-1986 академический год. — С. К.) я был в Бостоне на конференции по образованию в компьютерных науках. <…> Когда люди, сидевшие у столика регистрации, спросили меня: «Над чем ты в последнее время работаешь, Дон?» — я вынужден был ответить: «Я пишу книгу о Библии». Это было мощное средство для прекращения разговора! <…>
В те дни было приемлемо быть религиозным иудеем или приверженцем других религий, но никак не христианином».

Сложно сказать, насколько сильное в