84 года Дональду Кнуту
На его книгах обучилось не одно поколение программистов, в том числе, и в нашей стране. Созданная им в 70-х годах прошлого века система набора текста TeX до сих пор активно используется по всему миру для верстки высококачественных документов, таких как исследовательские работы, технические руководства и учебники. Его называют пионером в области компьютерных технологий, особенно в сфере языков программирования, а также «отцом анализа алгоритмов». Речь идет о почетном профессоре Стэнфордского университета Дональде Эрвине Кнуте, известном ученом, математике и авторе популярной технической литературы.
Дональд Кнут появился на свет 10 января 1938 года в городе Милуоки, штат Висконсин, во времена, когда IT-технологий и кибернетики в привычном нам виде еще не существовало. Происходил он из семьи выходцев из Германии — его отец Эрвин Генри Кнут преподавал бухгалтерский учет и владел небольшой типографией, а мать, Луиза Мари Бонинг, была домохозяйкой. Способности к математике и аналитическому мышлению Дональд проявил еще в школе. Однажды, когда Кнут учился в восьмом классе, выпускавшая сладости компания Ziegler Candy объявила конкурс: победитель должен был составить максимально возможное количество английских слов путем перестановки букв в названии шоколадного батончика «Ziegler’s Giant Bar». Определявшая итоги конкурса комиссия посчитала, что всего существует 2500 таких слов.
Чтобы решить задачу, юный Дональд Кнут пожаловался матери на боли в животе, не пошел в школу, обложился книгами и принялся составлять алгоритм перестановки букв в заданной фразе с подбором слов по словарю. В результате у него получилось 4500 вариантов — намного больше, чем рассчитывали организаторы. Естественно, он выиграл конкурс. Школа получила в подарок телевизор и большую коробку шоколадных батончиков «Ziegler’s Giant Bar», которых хватило всем одноклассникам Кнута.
Поступив в 1956 году в Технологический институт Кейса в Кливленде, Огайо, Кнут впервые познакомился с компьютером IBM 650 и увлекся программированием. Уже спустя два года он написал программу, которая помогла институтской спортивной команде выиграть первенство по баскетболу. Оценив особенности и возможности каждого игрока, Кнут присвоил им определенный индекс, показывавший вероятность заработать очки тем или иным членом команды в разных условиях. Используя эти знания, тренер мог выпускать игроков на поле на разных этапах игры, увеличивая шансы на победу. Это сработало: команда стала призёром, а об изобретении Дональда Кнута написали издания CBS Evening News и Newsweek.
Тогда же, в период обучения в институте Кейса, Кнут стал редактором студенческого научного журнала «Engineering and Science Review», признанного лучшим техническим университетским изданием 1959 года. Закончив бакалавриат, магистратуру, а затем получив степень Ph.D., Дональд Кнут стал доцентом Калифорнийского технологического института, где начал работу над книгой о компиляторах. Однако он быстро пришёл к выводу, что не сможет полноценно осветить тему без изложения теории — так родилось издание «Искусство программирования», постепенно разросшееся до семитомника, первый том которого был опубликован в 1968 году. Серия охватывает широкий спектр тем, включая фундаментальные алгоритмы, структуры и сортировку данных, а также сложные вычисления.
В начале 70-х издательство «Эддисон-Уэсли», выпускавшее книги Кнута, перешло на более современную технологию компьютерной верстки, из-за чего, по мнению автора, качество макетов книг резко упало. В те времена еще не существовало специализированных приложений для издателей, они пользовались обычными текстовыми редакторами. Компьютерная верстка значительно ускоряла процесс предпечатной подготовки, редактуры и корректуры изданий, и художественная литература от этого, безусловно, выиграла. А вот с техническими книгами, включавшими сложное форматирование, фрагменты кода, многоуровневую систему заголовков, формулы и перекрестные ссылки, получалось не очень. Чтобы помочь любимому издателю, Кнут взялся за разработку специальной программы, которая позволила бы верстать качественные технические книги — прежде всего, его собственные. Так на свет появился TeX, а позже — технология METAFONT — метаязык для описания векторных шрифтов.
Дональд Кнут выплачивал читателям вознаграждение в размере 2,56 доллара за любые опечатки или ошибки, обнаруженные в его книгах. По словам самого Кнута,»256 пенсов — это один шестнадцатеричный доллар». Кроме того, он платил 32 пенса за «любые ценные предложения». Примечательно, что подписанные лично Дональдом Кнутом банковские чеки стоят среди коллекционеров значительно дороже обозначенной на них суммы.
Помимо технической литературы Дональд Кнут отметился и в религиозной — он является автором работы »3:16 Bible Texts Illuminated», в которой исследует Библию с помощью процесса систематической выборки и анализа глав 3, стих 16 каждой книги Священного Писания. Кроме этого, Кнут прекрасно играет на органе и сочиняет музыку: в 2018 году он представил произведение для органа «Fantasia Apocalyptica», которое он описывает как «перевод греческого текста Откровения Святого Иоанна Богослова на музыку».
Книги Дональда Кнута переведены на многие языки мира, в том числе, на китайский, где были опубликованы под китайской версией имени автора — Гао Ден (高德纳). Впервые это имя появилось на обложке китайского издания «Искусства программирования» в 1977 году. В предисловии к этой книге Кнут объясняет, что принял свое китайское имя, потому что желает, чтобы его знало как можно больше программистов в активно развивающемся Китае. В 1989 году это имя появилось на первой странице популярного в Китае «Журнала компьютерных наук и технологий», что, по словам Кнута, «заставляет меня чувствовать себя ближе ко всем китайцам, хотя я не могу говорить на вашем языке».
За свою карьеру Дональд Кнут внес огромный вклад в развитие IT, и в 1974 году он был удостоен премии Тьюринга, неофициально считающейся Нобелевской премией в области компьютерных наук. Помимо исследовательской и писательской деятельности, Кнут был наставником и советником многих студентов, преподавая программирование и математику в различных американских университетах. В 2006 году у Дональда Кнута диагностировали рак, он перенес несколько операций, но, несмотря на проблемы со здоровьем и преклонный возраст, он до сих пор несколько раз в год читает неофициальные лекции под названием «Компьютерные размышления» в Стэнфордском университете, которые всегда проходят с полным аншлагом. Вклад Кнута в информатику оказал значительное влияние на эту область и помог сформировать наше современное представление об алгоритмах, языках программирования и информатике в целом.