Оригинал материала находится по адресу ibusiness.ru/blogs/4344
19.10.2011

Незримое богатство Денниса Ритчи

Спросите у первого встречного, кто из великих айтишников скончался в октябре, и десять из десяти человек с улицы назовут вам Стивена Джобса. Но была и ещё одна потеря. Неделю спустя после сооснователя Apple ушёл из жизни Деннис МакАлистер Ритчи.

Этот эксцентричный бородатый весельчак отличался от всем известных компьютерных гениев, пожалуй, каждой чертой своего характера и образа жизни. Он не бросал институт ради бизнеса, недолюбливал публичность и поднимался на трибуну только чтобы скромно получить очередную награду, наконец, за семьдесят лет жизни так и не скопил миллиардов, да в общем никогда и не пытался. При всём этом Ритчи незримо присутствует буквально в каждом современном цифровом устройстве и программе — но кто помнит, кем он был и что именно сделал?

Детство и юность Денниса (род. 1941) прошли в пригороде Нью-Йорка в послевоенные годы. Неудивительно, что с компьютерами он впервые столкнулся уже студентом Гарвардского университета, где изучал физику и математику. Размышляя, чем заняться после окончания вуза, Ритчи принимает одно из тех остроумных решений, которыми впоследствии будет полна его жизнь: он решает, что недостаточно умён для карьеры физика, и обращается к вычислительной технике.

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

Далее следуют работа в легендарном Массачусетском технологическом (MIT), приглашение в «оборонку» и отказ от него («шестидесятые на дворе, поздновато для атомной бомбы, не находите?»), и место в Bell Labs, тогда исследовательском подразделении телефонного гиганта AT&T. Здесь Деннис проведёт следующие сорок лет жизни.

Первым крупным проектом Ритчи стал новый язык программирования. Тут стоит заметить, что в те годы компьютерные языки (Fortran, Cobol) писались, чтобы облегчить использование ещё неуклюжих вычислительных машин людьми, далёкими от цифровой техники: учёными, бизнесменами и т.п. Разработанный Ритчи и его коллегой, Брайаном Керниганом, язык C стал первым популярным языком для компьютерщиков (впрочем, Керниган уверяет, что работа была всецело проделана Деннисом). И есть какая-то ирония в том, что создали его «непрофессионалы»: Деннис был физиком, Керниган электротехником по образованию.

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

Но благодаря простоте и ясности, C стал популярным и за пределами узкого круга айтишников: его перенесли, вероятно, на каждую операционную систему и архитектуру из когда-либо существовавших. Что важнее, озвученные в нём принципы просочились дальше, заложив фундамент для более поздних и совершенных разработок: идеи, правила, грамматика C так или иначе используются в С++ и C#, Java, Python, PHP и бесчисленном множестве других языков программирования. Сам C по-прежнему делит первое место в рейтинге наиболее популярных со своим юным отпрыском, Java.

Коллега Ритчи, проработавший с ним два десятилетия, сказал однажды: «Мы все стоим на его плечах».

Вторым замечательным проектом Денниса стала операционная система UNIX. И здесь тоже не обошлось без «несерьёзности»: работа над тем, что впоследствии превратилось в одну из самых массовых компьютерных платформ, началась с игры. Кен Томпсон, коллега Ритчи по Bell Labs, написал в конце 60-х игрушку Space Travel, своего рода симулятор Солнечной системы с возможностью путешествия между планетами. «Симуляцию» в данном случае следует понимать со скидкой на технологии той эпохи, но главной проблемой была не примитивность программы, а стоимость машинного времени. Как позже вспоминал Ритчи, сеанс игры в Space Travel на большой ЭВМ легко мог обойтись в полсотни долларов. Конечно, для сотрудников лаборатории доступ к компьютерам был бесплатным, но начальство такое баловство не одобрило бы в любом случае.

В итоге, общими усилиями Space Travel перенесли на пылившийся в углу PDP-7 (сравнительно дешёвый миникомпьютер). А для пущего удобства игру научили сохранять результаты, оснастили набором полезных команд — и так, пунктик за пунктиком под игрушкой выросла целая новая операционная система, UNICS. Воплощённые в ней идеи были для своего времени новаторскими, если не революционными.

Если вкратце, она замечательна прежде всего модульной архитектурой: авторы программ, столкнувшись с какой-то задачей, не изобретают велосипед, а по возможности используют уже готовые блоки (здесь это легче). Но больше того, многопользовательская, многозадачная, с иерархической файловой системой, гибким взаимодействием между компонентами, работающая на дешёвых компьютерах UNICS позволила компьютерным экспериментаторам (термин «хакер» уже появился, но не был широко распространён) ставить любые опыты, не задумываясь о цене. В начале 70-х UNICS переписали на C и дали ей новое имя, под которым она дошла до настоящего времени: UNIX.

Кен Томпсон, изображённый вместе с Деннисом на этом знаменитом фото 1972 года, сам по себе легендарная личность, но — ирония судьбы, не иначе — известен ещё меньше, чем его коллега по проекту UNIX. Ему принадлежит авторство или соавторство идеи регулярных выражений и редакторов QED/ed, кодировки UTF-8, языка программирования Go (созданном им уже в Google). Он же помог построить и Belle — многократного мирового чемпиона по шахматам среди компьютеров.

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

Впрочем, об этом позже. Пока же позвольте заметить, что Ритчи и его коллегам, конечно, очень повезло. Во-первых, повезло оказаться в нужном месте в нужное время. Как раз тогда, благодаря только появившимся миникомпьютерам (занимавшим несколько шкафов, но по тем временам относительно небольшим, дешёвым и простым), вычислительная техника начала проникать в науку, образование и средний бизнес. UNIX и C оседлали волну. C был прост и легко переносим. Исходники UNIX раздавались бесплатно, потому что после недавнего антимонопольного разбирательства AT&T не имела права лезть на компьютерный рынок.

Во-вторых, Деннису очень повезло с работодателем. Либеральные порядки, царившие в Bell Labs сорокалетней давности, напоминают те, что практикуются сегодня компанией Google — где сотрудники пятую часть рабочего времени посвящают собственным, не связанным с основной деятельностью проектам. Больше того, говорят, именно у Bell Labs Сергей и Ларри позаимствовали эту идею.

Так или иначе, C и UNIX сделали dmr (компьютерный псевдоним Ритчи) одним из самых авторитетных айтишников всех времён и народов. Но, в отличие от подавляющего большинства современных звёзд ИТ-индустрии, Ритчи не был предпринимателем. Он был изобретателем. Вот почему поклонники морщатся, когда Денниса ставят в один ряд с таким чисто маркетинговым гением, как Стив Джобс. Изобретения Ритчи принесли ему несколько престижных наград, включая премию Тьюринга, которую он разделил с Томпсоном, присуждавшихся до последних дней жизни (в мае он стал лауреатом Japan Prize). Но главной наградой, конечно же, стали бесчисленные компьютерные проекты, выросшие на почве, которую он подготовил.

Деннис Ритчи косвенно присутствует в подавляющем большинстве цифровых продуктов — компьютерных программ, устройств, веб-сайтов — с которыми мы сталкиваемся каждый день. Microsoft Windows написана на C и наследует часть UNIX-спецификаций. iOS и Mac OS X — прямые потомки UNIX. Android — вариант операционной системы Linux, которую Линус Торвальдс написал, опираясь на документацию по UNIX, и именно на Linux работают Google и добрая половина веб-серверов в мире. Само сообщество открытых исходников (open source) сформировалось не в последнюю очередь благодаря принципам и работе, выполненной Ритчи и его коллегами. То же можно сказать и о языках программирования.

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

Ушёл он так же незаметно, как и всё, что осталось после него. Друзья нашли Денниса мёртвым в его доме, 12 октября. Его увлечениями были книги, путешествия, но главное — компьютеры: своё место в Bell Labs он покинул только в 2007, уже тяжело болея.


Деннис_Ритчи,личность,история_успеха,ностальгия,C,программирование,Bell_Labs,UNIX,Кен_Томпсон,PDP,open_source,хакер

На форуме есть подходящий раздел.