На его книгах обучилось не одно поколение программистов, в том числе, и в нашей стране. Созданная им в 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 году у Дональда Кнута диагностировали рак, он перенес несколько операций, но, несмотря на проблемы со здоровьем и преклонный возраст, он до сих пор несколько раз в год читает неофициальные лекции под названием «Компьютерные размышления» в Стэнфордском университете, которые всегда проходят с полным аншлагом. Вклад Кнута в информатику оказал значительное влияние на эту область и помог сформировать наше современное представление об алгоритмах, языках программирования и информатике в целом.
Комментарии (24)
ShashkovS
10.01.2023 15:19+8Очень крутой!
Из его четырёхтомника мне очень нравится фрагмент вероятно из третьего тома про внешнюю сортировку данных на лентах.
Грубо говоря, раньше данные хранились на лентах, никакого быстрого произвольного доступа, только последовательный. В такой ситуации очень естественно использовать сортировку слиянием. И вот после описания сортировки слиянием при помощи четырёх лент, там есть такой пассаж (по памяти).Иногда хочется сортировать данные ещё быстрее, и XXX придумал, как это сделать. Однако с тех пор появились жёсткие диски, и этот алгоритм стал никому не нужен. Однако он настолько красив, что я его сейчас расскажу.
И дальше страниц 10-20 жёстких тонкостей.
jobless
11.01.2023 09:36В середине 80х прошлого века, у подножия Ключевской сопки видел глаза программиста наблюдающего за компиляцией программы на фортране. Всё дело в том, что компиляция происходила на Урал-11 у которого давно рассыпались барабаны и оставались только лентопротяжки. Для удачного завершения требовалось что бы без сбоев отработали одновременно 5(пять) устройств по которым распределялись исходники, компилятор,библиотеки,временные файлы и результат.
AndrChm
11.01.2023 00:36+1Вот в этой ветке https://habr.com/ru/company/productivity_inside/blog/703038/comments/#comment_24975072 можно посмотреть, как к вкладу Д. Кнута в computer science и в программирование в частности, относятся те, кто позиционируют себя как программисты. Что с ними не так?
robertd
11.01.2023 07:20+1Преждевременная оптимизация -- корень всех бед! (с)
victor-homyakov
11.01.2023 22:11Согласно источнику https://ubiquity.acm.org/article.cfm?id=1513451, цитата о преждевременной оптимизации на самом деле принадлежит сэру Чарльзу Энтони Ричарду Хоару, Кнут просто ее популяризировал, и вот что скорее всего Хоар имел в виду:
However, Hoare was not saying, «concern about application performance during the early stages of an application's development is evil.» He specifically said premature optimization; and optimization meant something considerably different back in the days when he made that statement. Back then, «optimization» often consisted of activities such as counting cycles and instructions in assembly language code. This is not the type of coding you want to do during initial program design, when the code base is rather fluid.
aldmarinka
11.01.2023 18:22Спасибо, интересно было почитать биографию. Кнут для меня был как какое-то абстрактное имя автора, теперь представляю себе реального человека
GarryC
12.01.2023 14:16Природа мать,
Когда б таких людей
Ты иногда не посылала миру
Заглохла б книга жизни
RCgoff
12.01.2023 15:54Кроме этого, Кнут прекрасно играет на органе и сочиняет музыку
Кнут имеет настоящий механический орган у себя дома
fedorro
Каждый год под эту новость появляется желание прочитать его труды ☺️ В этом году таки я это сделаю! Дональду - долгих лет!
LuckyStarr
"- В этом году снова хочу прочитать Кнута
— А, что, в прошлом прочитали?
— Нет, тоже хотел"
fedorro
Именно так и есть! ????
spirit1984
akuli
Мы всё хотим, но руки сами почему-то никак не могут дойти.
akuli
Я так и не заставил себя
akhalat
Для себя выявил следующую проблему, завершающую любую попытку систематического чтения трудов Кнута, и многих подобных фундаментальных книг по Computer Science (того же Кормена): абсолютно неадекватный, как и по числу, так и по сложности, объем задач «для самостоятельного решения» после каждой главы. Когда на тебя вываливают штук 20-30 задач, которые даже при средней сложности требуют несколько дней на решение каждой (а ещё любят туда включать и полноценные исследовательские задачи, и даже открытые научные проблемы — тот же Кормен, да и Кнут вместе с ним, предлагали доказать теорему Ферма (первые издания выходили когда доказательства ещё не существовало, после его открытия, в переизданиях, понизили сложность соответствующей задачи, лол)). Причём задачи для решения зачастую требуют не только понимания материала прошедшей главы, но и некислого так знания смежных областей, чаще всего математики. Я лично даже не представляю, сколько времени потребуется чтобы полноценно проработать все эти книги, с решением всех задач — по-моему, для этого нужно быть реально гением уровня Кнута / или убить где-то пару десятков лет в попытке к нему приблизиться… А если читать, пропуская задачки, то это поверхностное чтение, без особого толку, и быстро возникает ощущение неполноценности процесса (на самом то деле, так и есть). В общем, читать их «по-нормальному» — очень сложно и фактически невозможно, а «нахватать поверхам» из этих книг не получится: стиль изложения не тот, есть гораздо более подходящием материалы. Вот и получается, что удел этих книг в основном — пылиться на полках, ну или на жетских дисках, увы…
BeLord
Такие книги нужно начинать читать в юности и заканчивать на пенсии, в цикличном режиме по мере роста возвращаясь к прочитанному.
thevlad
По мне так Кормен гораздо проще и полезнее, там нет особо ядреной математики и тем более теоремы Ферма.