Кто-то становится известным, попадая историю, кто-то обретает славу делая ее. Деннис Ричи принадлежит ко второй категории людей. Когда многие из нас еще только учились ходить, он придумал язык "С", самый популярный язык программирования на сегодня. Общечеловеческая важность этого события не нуждается в подтверждении.
Но ему этого показалось
недостаточно. Деннис Ричи и Кен Томпсон разработали операционную систему
Unix. Операционную. Систему. Да-да, они создали UNIX!.
(Деннис Ричи считается
одним из авторов лозунга "Sex,Drugs & Unix!". Авторство лозунга
эпохи политкорректности "Vitamins,Condoms & Posix" неизвестно.Прим.
перев.)
Он не остановился и на этом - сейчас, под его руководством разрабатываются проекты Plan 9 и Inferno.
Вклад этого человека в науку оценен многими организациями - Награда за выдающиеся достижения в области систем и языков программирования ACM, 1974г.; Награда общества IEEE (1982); Bell Laboratories Fellow (1983); Награда общества вычислительных машин Тьюринга ACMT (1983); награда от фонда C&C компании NEC (1989): IEEE Hamming Medal (1990), и т.д.
Сейчас Деннис Ричи руководит департаментом исследований в области системного программного обеспечения в научном вычислительном центре компании Bell Labs/Lucent Technologies в Мюррей Хилл, шт. Нью Джерси.
LF: Многие дети хотели бы походить на Супермена. В точности так же вы являетесь идолом для нескольких поколений программистов на С и фанов UNIX во всем мире. Как себя чувствует человек, обожаемый тысячами программистов? Ведь совершенно невозможно представить современную жизнь без UNIX и С. Понимали ли вы, что творите БУДУЩЕЕ, когда создали С и начали работу над UNIX?
Dennis: Мне
часто задают эти вопросы, и почти всегда связывают их. Разумеется приятно
было бы сказать, что мы чувствовали и понимали, что создаем нечто, имеющее
подлинную ценность. Но, на самом деле, мы вовсе не считали, что творим
"историю", что наша работа окажется столь значимой. Я хотел сделать что-то,
что помогло бы мне и моим коллегам в работе, знаете, в духе "давайте сделаем
что-нибудь полезное. Об этом важно помнить, т.к. хотя UNIX, языки C/C++
занимают большое место в компьютерной науке, реальный мир технологий и
приложений гораздо обширнее. Это равно справдливо и для академических исследований
и для коммерческого программирования.
(Анатоль Франс
однажды заметил: "Никому не дано создавать шедевров, но что-то может стать
шедевром, благодаря любезности времени". Комментарий перев.)
LF:
UNIX - это прошлое и настоящее операционных систем, с буквой "С"
неизменно связывается слово "ЯЗЫК", но нельзя не отметить, что в последние
годы проявляется противостояние между этим языком и объектно-ориентированными
языками. Что вы думаете о таких языках, как С++ и Java и о яростной полемике
между программистами на C и С++?
|
Dennis: C++ извлек огромную выгоду из языка C, поскольку C получил широкое распространение задолго до появления С++. C++ может использовать C и как основу для создания новых языков и как инструмент для создания компиляторов для них. Язык C можно охарактеризовать как переносимый ассемблер, в то время как C++ пытается оперировать объектами и внести в программирование больший уровень абстракции. К общим недостаткам можно отнести стремление внести в языки незначительные улучшения, которые скорее напоминают никчемные побрякушки. Они оба несут в себе дух прагматизма, попытку понять, что же в реальности необходимо. Java - очевидный потомок C++ отбросивший некоторое наследие С и построенный на идее машинной независимости объектного кода, кстати, не такой уж новой, как может показаться. Это привело к взаимной вражде между Sun и Microsoft (и каждая из этих компаний обрядила хорошую идею в шутовской колпак собственной конструкции). Трудно угадать, чем все это кончится.
LF: Гипотетический вопрос: Имея за плечами огромный опыт и столько лет программирования на С, что бы вы изменили в С, если бы вы могли вернуться назад и начать разработку заново?
Dennis: Придумал
бы способ (с учетом лимита времени, который был у меня тогда), чтобы типы
аргументов функций были полностью определены, т.е. то, что спустя некоторое
время было предложено в стандартах ANSI/ISO а в стандарте 1989 года получило
название прототипов функций. Есть много мелких недоработок, которых можно
было бы избежать. Например толкование слова "static", иногда используемого
ошибочно. Я все еще не уверен в правильности синтаксиса объявления переменных,
допускающего использование переменной вне контекста типа. Впоследствии
это критиковалось весьма серьезно, но что сделано, то сделано.
(Ричи говорил об
этом еще в первом издании книги "The C Programming Language" Прим. перев.)
LF: В то время как C стал хорошо определенным и проработанным языком, операционные системы продолжают стремительно развиваться. Новые идеи возникают по мере того, как "железо" становится быстрее и дешевле. На ваш взгляд, в каких направлениях будут развиваться ОС? Пойдет ли развитие в сторону микро-нано-ядер или победят сторонники "монолитного" дизайна?
Dennis: Я не думаю, что это в действительности представляет интерес. Лично я предпочитаю такое окружение, которое дает приложению хорошо структурированное, единое пространство имен и средства доступа к ресурсам, т.е. линию Unix систем (к которым я отношу и Linux), Plan 9, Inferno. С моей точки зрения концепция микро- или нано-ядра не будет реально значимой, по крайней мере для систем общего назначения. Микро-ядра скорее будут использоваться в специализированных системах, управляемых макро-системами. Т.е. микро-ядро может существовать в рамках большой системы, но не само по себе. Но, разумеется, мир велик и в нем наверняка найдется место простой операционной системе, пригодной для небольшого, прикладного устройства, но не для компьютера общего назначения, будь то десктоп или мэйнфрейм.
LF: Сейчас UNIX это операционная система с большой историей. Она создавалась много лет назад, с тех пор возможности и потребности оборудования, сетей, сервисов и приложений увеличились чудовищным образом. В чем заключаются органичения UNIX и возможные препятствия ее использования с учетом роста требований пользователей в ближайшем будущем?
Dennis: Я не вижу фундаментальных или технологических препятствий если рассуждать в терминах базовых API ("system calls"). Не хочу рассматривать раличные политические или коммерческие факторы, "ристалища" между раличными производителями коммерческих версий Unix, равно как и между "бесплатными", включая Linux и семейство BSD систем.
LF: В последнее время много внимания уделяется проблеме 2000 года, потенциальному нарушению работы многих систем из-за печально известной ошибки Y2K. Вы верите апокалиптическим предсказаниям некоторых экспертов?
Dennis: По правде сказать, не могу дать компетентного ответа. Могу лишь сказать, что не собираюсь находиться в воздухе в 23:59 31 декабря 1999. За всю свою жизнь я ни разу не встречал новый год в самолете. Но это, вероятно, не имеет отношения к проблеме Y2K.
LF: Интервью было бы неполным, без рассказа об Inferno, операционной системе, над которой вы сейчас работаете. Что побудило вас начать разработку совершенно новой системы, к тому же с собственным языком программирования Limbo? Почему вы взялись за Inferno/Limbo если уже есть JavaVM/Java? Другими словами, что в Inferno есть такого, чего нет в Java?
Dennis: Inferno - дитя размышлений Фила Винтерботтома (Phil Winterbottom) и Роберта Пайка (Rob Pike). Работа началась задолго до начала цирковых представлений вокруг Java. У Java есть собственный прародитель (его называют Oak) и в то время, когда появились первые штрихи Inferno ничто не указывало на будущий феномен Java. Хотя мы знали о Java, это было чем-то бесформенное. Я полагаю, что между нами и компанией Sun произошла конвергенция, взаимопроникновение идей о создании языка, и его реализации в виде переносимой виртуальной машины. Но идея Inferno более интересна именно с точки зрения технологии ОС (т.е. и язык и операционноая система могут с одинаковым успехом работать самостоятельно как на дешевом и простом оборудовании так и в качестве приложения под Windows, Unix или Linux). В то же время Java-технологии компании Sun произвели взрыв на рынке броузеров и WWW.
LF: Вполне вероятно, что будущее Limbo как языка программирования тесно связано с ростом популярности Inferno как операционной системы. Есть ли смысл в переносе Limbo под другие ОС? Или дизайн и назначение языка неотделимы от Inferno?
Dennis: Технологически Limbo никак не связан с Inferno. Но на самом деле зависимость есть, просто в силу того, что новый язык зависит от окружения, в котором он используется.
LF: Если посмотреть на вашу карьеру в Bell Labs, то создается впечатление, что вы всегда занимались теми проектами, которые вам действительно нравились и, я полагаю, это справдливо и в отношении Inferno. Не правда ли, вы удовлетворены своим участием в работе над UNIX и разработкой C?
Dennis: Я действительно доволен моей работой в Bell Labs (которая продолжается).
LF: Мне трудно удержаться от сравнения между вами и всеми теми людьми, которые принимают участие в бесприбыльных или вовсе бесплатных проектах, просто потому, что им нравится эта работа, хотя, я уверен, они бы не отказались от денег за работу, выполняемую бесплатно. Можете ли вы представить себе участие в проектах, подобных Linux или, проще, представить себя вне Bell Labs? Расскажите о своем отношении ко всем этим людям с точки зрения человека с многолетним опытом работы в инновационной исследовательской лаборатории. Т.к. наш журнал адресован в основном Linux-сообществу мы не можем не спросить вас о Linux. Прежде всего хотелось бы знать ваше мнение о проекте Linux в целом, так и намерении многих компаний начать разработку программного обеспечения для этой ОС (например: планирует ли Bell Labs портировать Inferno под Linux)?
Dennis: Позвольте мне ответить на все вопросы вместе. Я считаю феномен Linux замечательным явлением, тем более, что он возник на непростом фундаменте Unix. Linux выглядит наиболее здравым прямым потомком Unix хотя существует несколько версий BSD-систем так же, как и различные официальные версии производителей рабочих станций и мэйнфреймов. Разумеется я сужу довольно поверхностно, т.к. не в состоянии обозреть все "свободные источники" Unix-подобных систем равно, как и уследить за всеми событиями, которые произошли и продолжают происходить в мире коммерческих систем.
LF:
Наш Главный Вопрос о Linux. Используете ли вы Linux? Если да, то каково
ваше мнение?
|
Dennis: На самом деле не использую - в смысле не использую в моей повседневной работе. Я работаю в двольно странном мире, сочетающем Plan 9, Windows и Inferno. Я восхищаюсь энергией и развитием Linux's. Иногда мне задают похожие вопросы в надежде услышать мою ревность или раздражение тем успехом, которым пользуется Linux по сравнению c Unix-системами известных компаний. Но ничего этого нет. И то и другое - суть продолжение и развитие тех идей, начало которым много лет назад положили Кен (Томпсон, прим. перев.) и я.
LF: И Microsoft.... Что вы думаете о монополии этой компании, захватившей весь рынок настольных машин? В некоторых фантастических фильмах мы видим мир, в котором большие машины управляют всей нашей повседневной жизнью. Но реальность рисует нам несколько иную картину. В многих случаях применение компьютеров ограничено сравнительно простыми случаями. Вы разработали операционную систему для программистов, людей, живущих в своем собственном, полуфантастическом мире. Вместе с тем вы представляете себе подлинное положение вещей. Что вы можете сказать о будущем компьютера? Какое место в этом будущем вы отводите Inferno и Linux?
Dennis: На самом деле здесь два вопроса. Microsoft действительно достигла относительной монополии в настольных системах, но это еще не весь огромный мир компьютеров. И коммерческие и бесплатные программы (такие как Linux) и целый мир систем помимо Windows или броузеров (например - высокопроизводительные системы, особо надежные или особо миниатюрные) все это занимает и будет занимать свое место. Я верю, что будущее есть и у Linux и у Inferno.
Webpage maintained
by Miguel ?ngel Sep?lveda
© Manuel Benet 1999 LinuxFocus 1999 |