Рубріки: Истории

Гений с синдромом самозванца: история Денниса Ритчи, без которого не было бы Windows и macOS

Вікторія Пушкіна

Деннис Ритчи — не типичный IT-визионер. Он не бросал колледж, не создавал социальные сети, а когда умер в 2011 году, о нем было в разы меньше постов, чем о Стиве Джобсе (умершем в том же году). Зато он создал ОС Unix и язык C, на котором до сих пор пишет множество разработчиков, и оставил свой след практически во всей современной компьютерной технике.

В этом материале Highload рассказываем, как жил Деннис Ритчи и за что вся IT-индустрия ему благодарна.

Потребовал от библиотеки денег за свою диссертацию

Деннис Ритчи родился в 1941 году в пригороде Нью-Йорка. Его отец, Алистер Ритчи, был ученым, который работал в исследовательской компании Bell Labs. В этой самой компании в 1964 году начали разработку ОС Multics — первой операционной системы с разделением времени (то есть теперь пользователи могли работать за одним компьютером одновременно, а не ждать своей очереди) и прародительнице Unix и Linux.

После выпуска из школы Деннис Ритчи отправился изучать физику в Гарвард. Но, по его словам, после магистратуры убедился, что «недостаточно умен, чтобы быть физиком». Поэтому в аспирантуре он стал изучать прикладную математику.

Под кураторством Патрика Фишера, исследователя теории сложности вычисления, он написал и защитил в 1968 году диссертацию на тему Computational Complexity and Program Structure. Но формально степень PhD Деннис Ритчи не получил — потому что не принес копию своей диссертации в библиотеку Гарварда.

По воспоминаниям Патрика Фишера, Ритчи отказался платить взнос в библиотеку за предоставление своей работы, сказав, что это они должны платить ему.

Кстати, в 2020 году Музей компьютерной истории нашел утерянную копию диссертации. Сейчас она доступна в формате PDF, но только частично. Некоторые страницы выглядят так:

Первая страница копии диссертации Денниса Ритчи
Источник: Музей компьютерной истории

Если хотите ознакомиться с полным текстом, есть еще черновик.

Недостаточно умный, чтобы быть физиком и теоретиком алгоритмов, — но достаточно, чтобы создать ОС

Защитивший диссертацию Деннис Ритчи считал себя недостаточно умным не только чтобы быть физиком, но и чтобы быть «экспертом в теории алгоритмов». Так он сам написал в своей биографии. Однако бросать карьеру полностью он был не намерен. 

Пойдя по стопам отца, в 1967 году он начал работать в Bell Labs — сейчас это часть компании Nokia. Вместе с Кеном Томпсоном, Ритчи был задействован в проекте Multics вплоть до 1969 года. А когда Bell Labs вышла из проекта (далее Multics разрабатывали MIT и General Electrics), Ритчи и Томпсон начали работу над Unix.

Деннис Ритчи (справа) и Кен Томпсон (слева)
Источник: https://en.wikipedia.org/wiki/Dennis_Ritchie

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

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

Язык С — создан программистом для программистов

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

Поэтому Деннис Ритчи задался целью переработать язык В в язык, позволяющий генерировать машинный код. Так появился язык С.

Деннис Ритчи начал процесс изменения языка В в 1971 году — только тогда у него появился подходящий компьютер. Для того, чтобы довести его до идеала, Деннису понадобилось два года.

Кен Томпсон (сидит) и Деннис Ритчи (стоит) с компьютером DEC PDP-11, на который они установили Unix в 1971 году
Источник: Музей компьютерной истории

В 1973 году ядро Unix было полностью переписано на С, что означало, что теперь ОС легко можно было переносить на другие аппаратные платформы и вносить в нее изменения.

Разработчик Алексей Вторников пишет, что С был создан «программистом для программистов». Ритчи делал этот инструмент для себя и не думал о маркетинге. Главным для него было создать язык, на котором можно программировать операционные системы. И у него это прекрасно получилось.

Даже на 2021 год язык С считается самым популярным языком программирования по рейтингу TIOBE. А остальные языки в первой пятерке — созданы под его влиянием.

Скриншот актуального рейтинга TIOBE

Деннис Ритчи — человек, без которого не было бы современного ПО

В 2011 году, когда с разницей в неделю умерли от рака Деннис Ритчи и Стив Джобс, последнего в СМИ вспоминали гораздо больше. «Тру» айтишники создали об этом мем:

Мем Джобс vs. Ритчи

Но Джобса и Ритчи связывают не только мем и печальная дата. Учитывая, что С является прародителем почти всех современных языков программирования, включая Objective-C, без Денниса Ритчи Apple вообще бы не существовало. То же можно и сказать и о любом другом ПО современного мира.

По словам компьютерного историка Пола Черуцци, «Ритчи был вне поля зрения. Его имя не было нарицательным, но если бы у вас был микроскоп и вы могли бы смотреть в компьютер, вы бы увидели следы его работы повсюду». 

Наглядно показывает влияние Unix на современные операционные системы эта схема:

Вы можете заметить на схеме macOS и Linux. Windows в «чистом» виде здесь нет, однако он тоже представлен — ОС Xenix была продуктом Microsoft. Да и сама Windows написана на С, поэтому о чем здесь вообще говорить.

Не считал C достижением

C и Unix — достижения, которые сделали Денниса Ритчи знаменитым в профессиональном сообществе. Почему же тогда люди знают о нем незаслуженно мало? Ритчи был замкнутым человеком, и даже популярность Unix этого не изменила.

Сейчас бы наверно сказали, что у Ритчи был классический синдром самозванца. Например, он не считал С чем-то «значительным». И с громкими словами из предыдущего подзаголовка он вряд ли согласился.

Когда в интервью у него спросили, как это — быть кумиром многих программистов, он ответил: «Я ценю награды и признательность, но важно помнить, что, хотя Unix и C важны, мир компьютерных наук и технологий намного шире».

После прорыва своих изобретений он все так же продолжил работать в лаборатории Bell Labs. В 70-х он занимался криптографией (результаты исследований не опубликованы в интересах национальной безопасности США), затем успел поработать над еще операционками — Plan B и Inferno, — а также языком Limbo.

За свои успехи в работе Деннис Ритчи получил много наград, включая Премию Тьюринга, а в середине 90-х, после того как Bell Labs объединились с Western Electric, стал главой департамента System Software Research в новой компании Lucent Technologies. Там он и проработал до выхода на пенсию в 2007 году.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023