Деннис Ритчи (1941–2011) — одно из фундаментальных имён современного программирования. Если подумать, человеку пора ставить памятники в технопарках и кампусах IT-компаний. Потому что без него не существовало бы IT-индустрии в нынешнем виде.

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

Роль личности в истории зачастую велика. Если вычеркнуть из истории одного человека, то ключевые события не произойдут. Или случатся иначе. Трудно представить параллельный мир, в котором события пошли по такому альтернативному пути, никогда не изобрели Unix, Linux и C. Уж слишком всё там странное... ��отя жителям того мира странной покажется уже наша реальность.

Начало пути

Деннис Макалистер Ритчи (/dmr) родился в 1941 году в престижном пригороде Нью-Йорка, в семье известного учёного из Bell Labs Алистера Ритчи, соавтора учебника по теории релейных схем. Вскоре семья переехала в Саммит, Нью-Джерси.

Деннис Ритчи с отцом на своём мотоцикле BSA 650, фото конца 60-х
Деннис Ритчи с отцом на своём мотоцикле BSA 650, фото конца 60-х

В те времена Bell Labs была мировым центром исследований в физике, телекоммуникациях и др. За годы своей деятельности компания разработала множество революционных технологий, включая транзистор, лазер, кварцевые часы и др. Так что Деннис в каком-то смысле он пошёл по стопам отца, продолжив славные традиции знаменитой компании. ОС Unix и язык C пополнили череду открытий в Bell Labs.

Ритчи получил степень по физике и прикладной математике в Гарварде, а к 1968 году защитил докторскую диссертацию по теме «Вычислительная сложность и структура программ». В ней он описал одно из своих изобретений — программные циклы, как инструмент для вычисления примитивно-рекурсивных функций Гёделя.

Циклы в С
Циклы в С

Ритчи показал, что степень вложенности циклов является мерой их вычислительной сложности, а также показателем того, сколько времени требуется для их вычисления. Далее он показал, что оценка по глубине циклов в точности эквивалентна иерархии Гжегорчика. Скорость роста примитивно-рекурсивных функций действительно связана с их вычислительной сложностью, они идентичны. Научная статья на эту тему была опубликована на конференции ACM'67.

Правда, Ритчи официально не получил степень PhD, потому что не завершил обязательную процедуру передачи рукописи в библиотеку, при этом аспирант обязан оплатить переплёт за свой счёт (сейчас эти правила упразднили). Библиотека выдаёт справку, которая обменивается на диплом PhD. Как в шутку говорили друзья, бывают доктора наук без диссертации, а Деннис был доктором наук «без переплёта».

Страница из докторской диссертации Ритчи, которая считалась потерянной до 2020 года, а после находки стала предметом научных исследований. Специалисты пытаются понять, как она набрана и напечатана с множеством математических символов и многоуровневой типографикой за 16 лет до изобретения PostScript
Страница из докторской диссертации Ритчи, которая считалась потерянной до 2020 года, а после находки стала предметом научных исследований. Специалисты пытаются понять, как она набрана и напечатана с множеством математических символов и многоуровневой типографикой за 16 лет до изобретения PostScript

В те времена он уже подрабатывал исследователем в Bell Labs, занимался крайне увлекательным делом и «не слишком интересовался бытовыми мелочами» (по словам друзей). Этим можно объяснить его безразличие к бюрократическим формальностям Гарварда.

В 1969 году Ритчи официально перешёл на работу в Bell Labs, где продолжил разработку C.

Денниса Ритчи (справа) встречают два сотрудника Bell Labs: его отец Алистер Ритчи (слева) и пионер электронной коммутации Уильям Кейстер, фото примерно 1969 года
Денниса Ритчи (справа) встречают два сотрудника Bell Labs: его отец Алистер Ритчи (слева) и пионер электронной коммутации Уильям Кейстер, фото примерно 1969 года

В середине 90-х Деннис Ритчи стал главой отдела исследований ПО Lucent Technologies (его туда перевели в процессе реструктуризации AT&T по судебному решению), прежде чем уйти на пенсию в 2007 году.

Проекты Ритчи

Большинство проектов — и все самые известные, включая C, Unix и «библию по С» — Деннис Ритчи создал совместно с бессменным другом и соратником Кеном Томпсоном.

  • Язык программирования B (1969 г) создан Кеном Томпсоно�� (с некоторым участием Ритчи) для Multics, предшественника Unix.

  • Язык программирования С (1969–1973 гг). Как несложно заметить, названия Multics и Unix связаны каламбуром, а названия языков продолжают алфавитную последовательность. Здесь Ритчи считается основным разработчиком, а Томпсон помогал. Деннис сконцентрировался на разработке С, а Кен переписывал Unix на новом языке. Работа шла параллельно.

  • ОС Unix (1969–1973 гг), как и Multics, разработана для первых мини-компьютеров. В начале 70-х годов «мини-компьютер» представлял собой ряд шкафов, занимавших комнату. Производительность этих систем была совершенно ничтожна по сравнению с современными. Ограничения памяти и хранилища означали, что для многозадачной ОС требовался очень эффективный язык.

    Первые версии Unix были в основном написаны на ассемблере, но к 1973 году Unix почти полностью переписали на C.

    Unix 7 на PDP-11, директория пользователя /dmr
    Unix 7 на PDP-11, директория пользователя /dmr
  • Ритчи принимал участие в разработке Plan 9, концептуальной ОС с распределёнными ресурсами, которая намного опередила своё время, но так и не была официально выпущена, так же как и некоторые другие концептуальные разработки Bell Labs, в которых принимал участие Ритчи, включая ОС Inferno и язык программирования Limbo для распределённых систем.

  • Взлом шифровальной машины M-209 (1978 г.), совместно с Джеймсом Ридом и Робертом Моррисом. По просьбе АНБ авторы не выложили разработку в открытый доступ, поскольку M-209 ещё использовалась некоторыми иностранными государствами.

  • Книга «Язык программирования C» (1978 г.), широко известная как «K&R», в соавторстве с Брайаном Керниганом. По крайней мере для двух поколений программистов K&R стала введением не только в C, но и в компиляторы и общее структурное программирование. Несмотря на небольшой объём, книга установила стандарт качества как по содержанию, так и по оформлению. Например, отсюда повелась традиция начинать обучение с короткой программы «Hello world».

    Две строки кода с автографом Брайна Кернигана на бумаге от принтера продали с аукциона Algorithm в Нью-Йорке как произведение искусства
    Две строки кода с автографом Брайна Кернигана на бумаге от принтера продали с аукциона Algorithm в Нью-Йорке как произведение искусства
  • 36 научных статей по информатике, там можно почитать про другие разработки Ритчи с коллегами, такие как текстовый редактор QED (1972), макропроцессор М4, архитектуру Styx для распределённых систем (1999), которая реализована в Plan 9.

Как С повлиял на компьютерную технику

В начале 70-х компьютеры были медленные и громоздкие, а программирование ограничивалось машинными инструкциями. Написание кода означало работу с ассемблером. Код было утомительно вводить и тяжело поддерживать.

Операционная система Unix разрабатывалась для переноса на различные аппаратные платформы, поэтому язык C также создавался с учётом аппаратной переносимости.

C был больше, чем просто новым языком. Он сильно повлиял на развитие компьютерных систем. Новый уровень портативности полностью изменил ситуацию. Теперь Unix стала универсальной системой, с открытым кодом, форками, возможностью легко написать новую ОС для новой архитектуры и т. д. Это была настоящая революция. На диаграмме внизу можно оценить плодовитое наследие Unix:

Популярность C была тесно связана с популярностью Unix, а также его многочисленных ответвлений и потомков.

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

Вместе с Unix распространялся и C. Разработчики поняли, что это великолепный язык системного программирования, который подходят для ОС, СУБД, компиляторов и др. Он нашёл идеальный баланс между низкоуровневым управлением и высокоуровневой структурой. Этот баланс сделал его основным языком для серьёзной разработки.

Влияние на программирование

C стал основой для огромной части софта. После Unix он быстро завоевал популярность и в академических кругах, и в коммерческой индустрии. Университеты начали преподавать его как основной язык для изучения программирования. Компании применяли для создания ОС, встраиваемых систем, сетевых инструментов и др.

C не просто приобрёл популярность. Он сформировал шаблоны того, как разработаны современные языки, такие как C++, Java, C#, Go и Python, все они позаимствовали у него синтаксис и основные идеи. C задал стандарт структуры, стиля и логики в программировании. Разработчикам, знающим C, часто легче изучать и работать с другими языками.

Деннис Ритчи (по центру, в очках и полосатом свитере), на конференции компьютерщиков USENIX 1984
Деннис Ритчи (по центру, в очках и полосатом свитере), на конференции компьютерщиков USENIX 1984

Переносимость оказалась суперспособностью языка C: в конечном итоге хорошо написанная программа на стандартном C могла компилироваться на огромном количестве аппаратных платформ практически без изменений — на самом деле, это верно и сегодня. В результате компиляторы C доступны практически для любой аппаратной платформы, а изучение C по-прежнему является отличным способом начать программировать для огромного количества платформ. C остаётся одним из самых широко используемых языков программирования на планете.

Он до сих пор продолжает играть важную роль в некоторых областях. На языке C написано ядро Linux и значительные части Windows. Во встраиваемых системах его используют для программирования микроконтроллеров и аппаратных устройств, поскольку он обеспечивает скорость и низкое потребление памяти.

В остальной индустрии тоже есть место для С. Например, на нём написаны интерпретаторы для Python, Ruby и PHP, хотя сами разработчики пишут код на языках высокого уровня. Игровые движки типа Unreal Engine сочетают C и C++ для управления графикой и ресурсоёмкими операциями. Также на С пишут базы данных, такие как MySQL и PostgreSQL, чтобы обеспечить быструю и эффективную обработку данных. И это несмотря на то, что С считается небезопасным для памяти, но другой альтернативы нет.

Возможно, это не самый подходящий язык для веб- и мобильной разработки, но он по-прежнему лежит в основе современных программных систем. Разработчики, изучающие C, глубже понимают, как работают компьютеры, и эти знания остаются полезными во всех областях.

Нужно заметить, что C и Unix разработаны для программистов и инженеров, для краткости и эффективности кодирования. Их нельзя назвать дружелюбными или доступными для начинающих. Если вы хотите повергнуть нетехнических пользователей компьютеров в робкое молчание, командная строка Unix или страница кода на C гарантированно справятся с этой задачей.


В одной из прошлых статей серии «Великие программисты» мы рассказывали о Никлаусе Вирте. Его можно сравнить со Стивом Возняком (Apple) в некотором отношении. Оба создали похожие инновационные ПК с графическим дисплеем, мышью и женскими именами — Лиза (Apple) и Лилит (Вирт), первый для массовой публики, второй для обучения студентов.

Никлаус Вирт с графической станцией Lilith (1977−1984 гг.)
Никлаус Вирт с графической станцией Lilith (1977–1984 гг.)

Но каким бы авторитетом ни был Вирт (автор языка Pascal), Джобс или Возняк для компьютерной индустрии, Деннис Ритчи — на порядок более масштабная фигура. Это один из отцов-основателей современного программирования и вообще компьютерной отрасли как таковой, просто легенда. Код Unix сохранился в Linux, он лежит в основе Android, iOS и MacOS от Apple. Вся современная техника — это наследие Ритчи.

Может, только Кен Томпсон равен Деннису Ритчи по масштабу, ведь он был соратником в большинстве проектов.

 Ритчи (стоит) и Томпсон программируют на PDP-11, около 1972 г
Ритчи (стоит) и Томпсон программируют на PDP-11, около 1972 г

Если парное программирование даёт синергетический эффект и оно многократно эффективнее, то работать в одиночку мало смысла. В результате программисты постоянно программируют вместе, как Джефф Дин и Санджай Гемават в Google.

Ритчи сохранил живость ума до преклонных лет
Ритчи сохранил живость ума до преклонных лет

Факт в том, что Unix и C породили невероятно широкую и разнообразную технологическую экосистему. Микроконтроллеры, GPS, спутники, автомобильные системы, светофоры, интернет-маршрутизаторы, синтезаторы, цифровые камеры, телевизоры, приставки, веб-серверы, компьютеры, смартфоны и планшеты — и компоненты внутри них, всё это производные от работ Ритчи.

Деннис Ритчи ушёл из жизни 12 октября 2011 года в возрасте 70-ти лет на одной неделе с Джобсом. Он прожил долгую, плодотворную жизнь и оставил колоссальное наследие. Каждый из современных разработчиков может позавидовать ему в этом смысле. Впрочем, все мы ещё живы — и теоретически способны совершить нечто даже более великое (тут почему-то вспоминается мем про Гагарина и потомков...).

Несмотря на своё гигантское наследие, Ритчи никогда не стремился к публичности, власти или богатству. По общему мнению, он был тихим, скромным человеком с сильной трудовой этикой и «сухим чувством юмора».

© 2025 ООО «МТ ФИНАНС»