- PVSM.RU - https://www.pvsm.ru -
Деннис Ритчи – создатель языка программирования Cи. Он вместе с Кеном Томпсоном разработал Cи для создания операционной системы UNIX. «У Ньютона есть фраза о стоящих на плечах гигантов», – говорит Брайан Керниган. «Мы все стоим на плечах Денниса».
«Практически все в веб создано на основе – Cи и UNIX», – рассказал изданию Wired Роб Пайк (Rob Pike), легенда программирования. – «На языке Cи написаны браузеры. На ядре UNIX работает почти весь Интернет, и оно также написано на языке Си. Веб серверы – написаны на языке C. А если не на нем, то на Java или C++. А эти языки производные от Си. Python и Ruby также базируются на Cи. Я ручаюсь за то, что все сетевое оборудование работает на программах, написанных на С. Действительно трудно переоценить то, что, сколько всего в современной информационной экономике основано на работе Денниса».
«Недаром же Windows, когда-то написали на Cи, – добавляет он. А UNIX лежит и в основе настольной операционной системе Apple, Mac OS X и IOS. Эти системы установлены в iPhone и iPad».
Деннис Макалистэр Ритчи (Dennis MacAlistair Ritchie) родился 9 сентября 1941 года. Его родной город – Бронксвилль, штат Нью-Йорк. Детство Денниса проходило в Нью-Джерси. Он окончил престижный американский ВУЗ — Гарвард. Особый интерес юного инженера вызвала местная компьютерная система Univac I. Там он получил степень бакалавра по физике и прикладной математике. После окончания обучения Ритчи устроился лаборантом в компьютерную лабораторию института MIT. Там он занимался поддержкой парка машин, а также разработкой софта.
Примерно в это же время он заинтересовался разработкой операционных систем для более компактных, настольных, компьютеров. (Тогда вычислительные машины «стандартного размера» занимали целые комнаты). MIT и General Electric поддержали его проект. Несмотря на отсутствие образования в области разработки ПО, для Денниса программирование никогда не было проблемой. Написание программ было для него подобно разгадыванию пазла.
В 1967 году Ритчи начал работать в лаборатории Bell Labs, где и сформировалась база для всех наиболее известных на сегодняшний день компьютерных изобретений. Но на тот момент Bell Labs был ведущим телекомпровайдером в стране.
Bell Labs
Начав работать в Bell Labs, Ритчи не стал фокусироваться на каком-то одном проекте: «Мне просто хотелось быть среди людей с разнообразным опытом и множеством идей. Поэтому я начал работать над несколькими проектами сразу, чтобы найти свой путь в профессии».
В компании Деннис начал работать с Кеннетом Томсоном, который присоединился к Bell Labs годом ранее, в 1966 году. Оба поняли, что «миниатюрные» настольные компьютеры будут набирать все большую популярность уже в начале 1970-х годов. Они также решили, что таким компьютерам необходим механизм, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами и выполнение прикладных программ, осуществляющий ввод и вывод данных.
Так разработчики пришли к идее операционной системы. Изобретение языка Cи и роль Ритчи в разработке UNIX вместе с Кеном Томпсоном сделали его пионером современной вычислительной техники, как пишут в сети.
Все началось в 1963 году, задолго до того, как Ритчи пришел в Bell Labs, – с проекта МАС (Multiple Access Computer, Machine-Aided Cognition, Man and Computer) начался как чисто исследовательский проект в MIT.
В рамках проекта МАС была разработана операционная система CTSS (Compatible Time-Sharing System). Во второй половине 60-х было создано несколько других систем с разделением времени, например, BBN, DTSS, JOSS, SDC и Multiplexed Information and Computing Service (MULTICS) в том числе.
Multics – совместная разработка MIT, Bell Telephone Laboratories (BTL) и General Electric (GE) по созданию ОС с разделением времени для компьютера GE-645. Последний компьютер под управлением Multics выключили 31 октября 2000 года.
Однако BTL отошел от этого проекта еще в начале 1969 года.
Кен Томпсон и Деннис Ритчи захотели продолжить работу самостоятельно. Томпсон работал над игрой Space Travel на GE-635. Ее написали сначала для Multics, а потом переписали на Фортране под GECOS на GE-635. Игра моделировала тела Солнечной системы, а игроку надо было посадить корабль куда-нибудь на планету или спутник.
Ни софт, ни железо этого компьютера не годились для такой игры. Томпсон искал альтернативу, и переписал игру под бесхозный PDP-7. Память была объемом 8К 18-битных слов, и еще был процессор векторного дисплея для вывода красивой для того времени графики.
Томпсон и Ритчи полностью вели разработку на кросс-ассемблере на GE и переносили код на перфолентах. Томпсону это активно не нравилось, и он начал писать ОС для PDP-7, начиная с файловой системы. Так появилась UNIX.
Ядро UNIX было написано на ассемблере, но вскоре Деннис и Кен поняли, что им необходим язык «более высокого уровня», который дал бы им больше контроля над всеми данными. Примерно в 1970 году, они попытались создать вторую версию ядра на языке Fortran, но результат не оправдал ожиданий. Тогда Ритчи предложил новый язык, основанный на создании Томпсона, известный как B(Би).
PDP-7 UNIX также положил начало высокоуровневому языку B, который создавался под влиянием языка BCPL. Деннис Ритчи сказал, что В — это Си без типов. BCPL помещался в 8 Кб памяти и был тщательно переработан Томпсоном. В постепенно вырос в С.
Изображение из книги «Язык Си»: M. Уэйт, С. Прата, Д. Мартин
В был интерпретируемым языком – то есть исходный код частями преобразовывался в машинный код в процессе выполнения специальной программой. Cи был компилируемым языком. Он переводился в машинный код, а затем непосредственно выполнялся в CPU. Но в те дни Cи считался языком высокого уровня. Он предоставил Ритчи и Томпсону больше гибкости, в которой они нуждались, и в то же время, выполнялся быстрее.
Первая версия языка Си не сильно отличалась от версии, которую мы знаем сегодня. Хотя она была чуть проще. Она предлагала структуры данных и «типы» переменных. И это то, что Ритчи и Томпсон использовали для создания их нового ядра UNIX. «Они создали C для того, чтобы написать программу», – говорит Пайк, который присоединился к Bell Labs спустя 10 лет. «А программу, которую они хотели написать, называлась ядро UNIX».
«Когда вы пишете большую программу как UNIX – вы должны управлять взаимодействиями между самыми разными компонентами: пользователями, файловой системой, дисками, выполнением программы, и для того, чтобы управлять этим эффективно, вы должны иметь хорошее представление о информации с которой работаете. Мы называем ее структурами данных», – говорит Пайк.
«Написать ядро без структуры данных, с таким же строением и совершенством, как ядро UNIX – было бы намного сложнее. Им необходим был способ группировки всех данных, а реализовать это в Fortran было не возможно».
В то время это был необычный способ написания операционной системы, и именно это позволило Ритчи и Томпсону, в конечном счете, перенести операционную систему на другие платформы, что они и сделали в конце 70-х. «Это открыло шлюзы для работы UNIX на любой платформе», – говорит Пайк. «Все это стало возможным благодаря Cи».
«Разработка языка программирования Cи стала огромным шагом вперед и правильным компромиссом … В Си нашелся правильный баланс, позволяющий писать на высоком уровне, что стало более продуктивным, а в нужный момент, можно было контролировать все что происходит», – рассказывает Билл Далли, главный научный сотрудник NVIDIA и Bell Professor of Engineering в Стэнфорде. «[Си ] задает тон в программировании в течение нескольких десятилетий».
Как уже отмечалось Пайком, структуры данных, которые Ритчи встроил в Cи, в конечном итоге, привели к объектно-ориентированной парадигме, используемой такими современными языками, как C++ и Java.
Революция началась в 1973 году, когда Ритчи опубликовал свою научную работу о языке, а спустя пять лет, вместе со своим коллегой Брайаном Керниганом выпустил книгу: «Язык программирования Cи». Ранее Керниган уже писал учебники по языку, и в какой-то момент, он убедил Денниса написать книгу с ним.
Пайк прочитал книгу, будучи студентом Торонтского университета. Он взял книгу, когда возвращался домой из-за болезни. «Этот справочник – образец ясности и четкости изложения по сравнению с недавно вышедшими справочниками. Он по праву является классикой», – говорит он. «Я прочитал его, когда лежал больной в постели, и он заставил меня забыть о болезни».
Как и многие студенты университета, Пайк уже программировал на этом языке. Си распространился по всем кампусам колледжа, поскольку в Bell Labs начали раздавать исходный код UNIX. Помимо всего операционная система дала толчок к развитию современного движения свободного программного обеспечения. Пайк не преувеличивает, когда говорит, что вклад Ритчи невозможно переоценить. И хотя Ритчи получил премию Тьюринга в 1983 году и Национальную медаль в области технологий в 1998 году, ему до сих пор не воздали должное.
Керниган и Пайк описывают Ритчи как необычайно скрытного человека. «Более 20 лет я проработал на противоположной стороне зала, и все же, считаю, что не знал его хорошо», – говорит Пайк.
Стив Джобс также был скрытным человеком, и его позиционирование на скрытности только усилило культ личности, окруживший его. Ритчи жил в совершенно иное время и работал в совершенно иных условиях в отличии от таких как Джобс. Возможно, поэтому Ритчи не был столь популярен.
«Джобс был зримым королем, а Ритчи, преимущественно, незримым королем», – так сказал Мартин Ринард, профессор электротехники и компьютерных наук Массачусетского технологического института и член Computer Science and Artificial Intelligence Laboratory.
«Гений Джобса состоит в том, что он имел вкус и создавал продукты, которыми люди хотели пользоваться. И он мог создавать вещи, которые, по-настоящему, нравились людям. Ритчи создал то, что технари смогли использовать для создания базовой инфраструктуры. Людям не обязательно ее видеть, несмотря на то, что они используют ее каждый день».
Основная проблема UNIX, с точки зрения ее же авторов, заключалась в том, что в силу своей архитектуры ОС не могла прозрачно приспособиться к значительно изменившемуся со времен ее разработки IT-миру. Проще говоря, UNIX умирала от собственных проблем, а все попытки приспособить ее к современным условиям приводили к усложнению ОС, введению множества разрозненных, сложных API, новых прослоек, сетевых протоколов, форматов данных, что сделало когда-то простую, продуманную, элегантную ОС тяжелым, неповоротливым и сложным в сопровождении комком кода.
Вспоминая успехи UNIX, Ритчи продолжал до самой смерти исследования в области операционных систем и языков программирования. Он внес значительный вклад в разработку операционных систем Plan 9 и Inferno, а также языка программирования Limbo.
Когда исследователи из Bell Labs поняли, что UNIX уже не исправить они решили начать с нуля и разработали новую, никак не связанную и несовместимую с UNIX, операционную систему с эксцентричным именем Plan 9.
Главная идея Plan 9 заключалась в том, чтобы довести концепцию «все есть файл» до логического триумфа и построить из синтетических файлов всю ОС (а если говорить конкретнее – представить все ресурсы операционной системы файлами). Причем сделать это так, чтобы к файлам имели доступ не только локальные приложения и пользователи, но и любой удаленный клиент. В результате появился файловый протокол 9P.
В 1995 году компания Lucent Technologies, новый владелец исследовательских лабораторий Bell Labs, перевела многих разработчиков Plan 9 в другую команду, которая занялась созданием операционной системы Inferno, построенной на базе Plan 9.
Руководство компании не без оснований полагало, что Plan 9, способная прозрачно и легко работать на компьютерах, организованных в распределенную вычислительную сеть, отлично покажет себя на маломощных мобильных устройствах и терминалах, которые в то время были просто обязаны перекладывать львиную долю своих функций на другие машины, чтобы обеспечить оптимальную производительность и удобство использования.
Кроме переносимости и производительности, Inferno обладает еще одной очень важной особенностью: наличием языка прикладного программирования Limbo, который был разработан с нуля специально для Inferno и существует только в рамках этой ОС. Его синтаксис во многом повторяет синтаксис Си, но имеет вкрапления из множества других языков.
12 октября 2011 года Ритчи был найден мёртвым у себя дома в Нью-Джерси, где проживал в одиночестве. Первые новости о смерти сообщил его бывший коллега Роб Пайк: «Деннис Ритчи скончался в эти выходные у себя дома». Причина и точное время смерти остались неизвестными. Незадолго до этого он лечил рак простаты, также у него было больное сердце. Ритчи умер спустя неделю со смерти Стива Джобса, но в отличие от Джобса, смерть Ритчи была мало освещена в СМИ.
Автор: semen_grinshtein
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/yazy-ki-programmirovaniya/184918
Ссылки в тексте:
[1] Источник: https://habrahabr.ru/post/309546/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.