?

Log in

RIP Dennis Ritchie (1941-2011) - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

RIP Dennis Ritchie (1941-2011) [окт. 14, 2011|05:39 pm]
Anatoly Vorobey
На этой неделе умер один из моих кумиров, изобретатель языка C и один из авторов операционной системы Unix, Деннис Ритчи.

Обычным пользователям его имя неизвестно. Но профессионалы-компьютерщики знают, что трудно найти кого-то из живущих людей, кто больше Ритчи повлиял на компьютерный мир, а через него и на весь мир вокруг нас. Написанные на языке C программы управляют практически всеми компьютерами в современном мире, включая сюда отнюдь не только коробку под вашим столом или ноутбук у вас на коленях, но и телефон, на котором вы проверяете почту, и микроконтроллер, который управляет вашей микроволновой печью. Любая современная операционная система - ядро компьютера, которое организует запуск и нормальную работу всех программ - написана на C или потомке этого языка; бесчисленное количество самих программ-приложений - тоже. А книга о языке C, которую Ритчи написал в соавторстве с Керниганом, и 35 лет спустя остается эталоном учебника программирования - по полноте, ясности и одновременно краткости изложения - с которым сравнивают все другие.

Особенностью языка C было то, что он является языком программирования "высокого уровня", т.е. позволяет программисту писать программу, не заботясь об особенностях устройства каждой отдельной модели компьютера, процессора, итд.; - и в то же самое время позволяет программисту, когда ему это действительно нужно, использовать эти особенности и подстраиваться под них. Программисты называют это свойство C "близость к железу", подразумевая под железом метафорически устройство и особенности конкретной модели компьютера. До Ритчи практически единственным языком, "близким к железу", был ассемблер - язык машинных инструкций, собственно указывающих компьютеру, что делать - очень подробный язык, язык "низкого уровня", а главное - разный для разных моделей компьютеров. До Ритчи считалось само собой разумеющимся, что операционная система, организующая работу компьютера, должна быть написана на ассемблере отдельно и заново для каждой модели - и то же самое считалось необходимым для любой программы, которой нужно было пользоваться "близостью к железу". Были, конечно, языки "высокого уровня", но на них можно было решать задачи тоже только "высокого уровня", а чтобы сделать что-нибудь близкое к железу, но необходимое для пользователя, переходили на ассемблер.

Ритчи сделал что-то, что казалось очевидно безнадежным - он нашел золотую середину, изобрел язык программирования, который может одновременно абстрагироваться от конкретных деталей "железа", и подлаживаться под них, когда необходимо. Над этим не работало много других специалистов - потому, что почти никто не мог представить, что это должно быть именно так; а он представил и сделал. Изобретенный им язык лег в основу всего "системного" (т.е. "близкого к железу") программирования, и остается его основой до сих пор. А изобретенная им вместе с Томпсоном операционная система Unix до сих пор (пройдя сквозь много вариантов и версий) используется на значительной части компьютеров в мире, а также оказала огромное влияние на все остальные современные операционные системы.

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

Comments:
[User Picture]From: hervejoncour
2011-10-14 03:47 pm
книжка Риччи по C читана года так в 90, кажется .... классная была книжка.
(Ответить) (Thread)
[User Picture]From: tetushka
2011-10-14 03:50 pm
Жаль. Его книга была самой тоненькой из всех книг по программированию, которые мне попадались в жизни - и самой лучшей, особенно тогда, в начале.
(Ответить) (Thread)
[User Picture]From: dimrub
2011-10-14 03:52 pm
RIP.
(Ответить) (Thread)
[User Picture]From: ygam
2011-10-14 04:53 pm
А кто тебя на самолете катал, я забыл?
(Ответить) (Thread)
[User Picture]From: avva
2011-10-14 05:11 pm
Томпсон.
(Ответить) (Parent) (Thread)
[User Picture]From: french_man
2011-10-14 04:59 pm

курица вс яйцо

Толя, вот есть нечто, чего я не понимаю. Все говорят, что юникс написан на Си. Но чтоб оттранслировать этот написанный на си юникс, нужно его погрузить в какую-то уже готовую среду. Эта среда юниксом быть не может. Что она тогда?
(Ответить) (Thread)
[User Picture]From: dimrub
2011-10-14 05:20 pm

Re: курица вс яйцо

Это называется cross compilation: когда компилятор для некоего языка, который должен производить машинный код для архитектуры X, сам бежит на архитектуре Y. Всегда, когда разрабатывают новую архитектуру или новую операционку, сначала пишут кросс-компилятор (затем иногда компилируют им самого его, и полученный код является уже не кросс- а нативным компилятором).
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: dmarck
2011-10-14 05:01 pm

Вот ещё отличная статья

"Dennis Ritchie: The Shoulders Steve Jobs Stood On"
http://www.wired.com/wiredenterprise/2011/10/thedennisritchieeffect/
(Ответить) (Thread)
[User Picture]From: olkab
2011-10-14 05:17 pm
Да.
(Ответить) (Thread)
[User Picture]From: amigofriend
2011-10-14 05:34 pm
Да, в общем-то Ритчи для компьютеров был как Лес Пол для музыки. RIP
(Ответить) (Thread)
[User Picture]From: burrru
2011-10-14 05:44 pm
Очень хорошие и правильные слова. Светлая память.
(Ответить) (Thread)
[User Picture]From: sinm
2011-10-14 06:10 pm
Доступно написано. Кажется, что немало времени потратил на этот текст. Спасибо.
(Ответить) (Thread)
[User Picture]From: avva
2011-10-15 10:42 am
Я старался, да. Спасибо.
(Ответить) (Parent) (Thread)
[User Picture]From: vodianoj
2011-10-14 07:03 pm
ז''ל
(Ответить) (Thread)
[User Picture]From: oleg96345
2011-10-14 07:39 pm
Странно, неужели никто в то время не сделал какой-то другой вариант такого языка, с такими же достоинствами?
(Ответить) (Thread)
[User Picture]From: ygam
2011-10-14 07:51 pm
PL/360, основанный на безумном языке PL/I.
PL/M
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: leonidph1972
2011-10-14 08:07 pm
RIP !
(Ответить) (Thread)
[User Picture]From: cryinstone
2011-10-14 10:41 pm
Хорошо написано.
Светлая память.
(Ответить) (Thread)
[User Picture]From: panchul
2011-10-15 01:43 am
RIP
(Ответить) (Thread)
From: (Anonymous)
2011-10-15 08:41 am

about C

“C is not a big language — it’s clean, simple, elegant, it lets you get close to the machine, without getting tied up in the machine.”

"Such higher-level languages had earlier been intended mainly to let people without a lot of programming skill write programs that could run on mainframes."
(Ответить) (Thread)
[User Picture]From: brandt1
2011-10-15 11:52 am
При всем уважении к Ритчи и avva позволю себе высказать несколько тезисов, не укладывающихся в общий настрой этого обсуждения:
- В программировании все же наиболее важно умение понимать и реализовать алгоритмы, а не язык. Паскаль был создан как правильный язык для реализации алгоритмов.
- Большей части программистов нужен именно язык высокого уровня без близости к железу
- За свою долгую карьеру программиста я работал на паре десятков языков и обошелся без использования С, хотя и учил его (сейчас использую С#). Это просто как пример того, что мир не сосредоточен вокруг С.
(Ответить) (Thread)
[User Picture]From: michk
2011-10-15 12:22 pm
- Большей части программистов нужен именно язык высокого уровня без близости к железу
На этот счёт есть разные мнения
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: nemirovd
2011-10-15 02:07 pm
Вот я перечиал много посмертных эпитафий о смерти Ритчи. Понятно, что он гений, великий человек. Опять же его смерть совпала по смерти со смертью Джобса.

Наверно, он был художником, творческим человеком, инженером исследователем не в первом поколении.

Я это все пониманию.

Но вопрос у меня такой: а получил ли Ритчи коммерческий результат от своих изобретений? Может он был акционером AT&T или получает лицензионные отчисления от коммерческих версий UNIX? Стал он миллиардером? (Я понимаю, что деньги могли его не интересовать, но все же.)
(Ответить) (Thread)
[User Picture]From: avva
2011-10-15 02:12 pm
Нет, он всю жизнь работал исследователем в Bell Labs, лицензионных отчислений не получал, акционером если и был, то частным, миллиардером наверняка не был. По сути дела, его карьера похожа на академическую за тем исключением, что ему не надо было преподавать.

(Ответить) (Parent) (Thread)
From: vfork
2011-10-15 04:23 pm
{ printf("Good bye world\n"); }
(Ответить) (Thread)
[User Picture]From: ezhik_israely
2011-10-16 01:40 am
дада, тоже подумалось об этом
(Ответить) (Parent) (Thread)
From: (Anonymous)
2011-10-15 05:51 pm

Но профессионалы-компьютерщики знают.. :)

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

Вы знаете, а ведь это звучит очень патетик. "профессионалы-компьютерщики" может и не самый верный источник спрашивать кто повлиял на весь мир вокруг нас, да и и сужение "из живущих людей" наводит на мысли.. а именно что после изобретения вакцин, пенецилина и высадки на Луну никаких особых достижений и нет. Весь этот информацианно-компютерная революция это только как двигать информацию назад и вперед, развлекая людей то ли играми но больше доступным порно которое как известно (правда ведь ?) в трафике главный игрок. Вы же (гугл) тоже делаете ничего больше но организуете потоки информации рекламодателей и вольных сёрферов интернета так чтобы они пресекались (как рекламодатели просят в том числе). Ну конечно, арабская весна и и захват уол-стрита..но ведь не интернет и иже с ним двигатель же этого в самом деле. Может главное достижение Денниса Р и информационной революции в том он помог раскрутиться оутсорсингу и перераспределить поток денег в тот же например в Индию или Китай, где бывшие коммунисты оказались на высоте и подняли миллиарды людей из нишеты и голода. Ну в общем и при этом ему не перепрыгнуть например Норман Борлауг кто уж прямо а не косвенно миллиарды людей от голодной смерти спас. Но он конечно в 2009 умер так что не из ныне живущих опять же. А может ему всё таки стоит главный приз 20 века отдать как повлиявшему на весь мир вокруг нас, а не на личный список вебстраничек которые вокруг каждого из нас ?

Ну а Деннису Р нет слов- почёт и уважение и вечный покой. Я вот тоже зарплату получаю в том числе и за то что иногда поинтерамы пользуюсь
(Ответить) (Thread)
From: (Anonymous)
2011-10-15 08:07 pm

Re: Но профессионалы-компьютерщики знают.. :)

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

Вы со своей стороны тоже неподготовлено вступили.
Прошлое столетие по праву считают атомным столетием,
и пусть достижение с горьким послевкусием, и оставившее нас
на текущий момент в некоторой растерянности.

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

Луна? Орбитальная космонавтика, да, а Луна – ига в амбиции, на приоритеты, политический, маленький шаг, который оказался преждевременным, это как большая иллюзия, вера в всеобъемлющую силу науки(как в свое время первый человек в космосе).

Текущее развитие сильно привязано к раскручиванию спирали потребление,
когда теряется грань между реальностью и рекламой(шоу).
Но если вы адепт чистоты, попробуйте выкинуть сотовой телефон.

etc,etc,etc
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: alaev
2011-10-16 08:23 am
Да, книжка была замечательная. Читал её ешё при Советах, распечатанной на матричном принтере.
(Ответить) (Thread)
From: (Anonymous)
2011-10-16 04:49 pm
C был первым универсально используемым языком программирования. До этого были широко используемые FORTRAN и COBOL, но они использовались в ограниченных хотя и массивных нишах.
(Ответить) (Thread)
[User Picture]From: meshko
2011-10-17 04:52 pm

оффтопик

Меня давно занимает вопрос о том, как правильно употреблять слово "изобретать". Мне почему-то режет слух, когда его употребляют так, как в этом посте. Те кажется. что можно изобрести двигатель внутреннего сгорания, объектно-ориентированное программирование, виртуальную память, мышь, но не конкрентый язык программирования. То есть для слова "изобретение" нужна какая-то конкретная новая идея, а не удачное инженерное решение (как Си). Это относится и к русскому и английскому invent. Это у меня неправильное ощущение?
(Ответить) (Thread)