avva: (Default)
[personal profile] avva
На этой неделе умер один из моих кумиров, изобретатель языка C и один из авторов операционной системы Unix, Деннис Ритчи.

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

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

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

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

Date: 2011-10-14 03:47 pm (UTC)
From: [identity profile] hervejoncour.livejournal.com
книжка Риччи по C читана года так в 90, кажется .... классная была книжка.

Date: 2011-10-14 03:50 pm (UTC)
From: [identity profile] tetushka.livejournal.com
Жаль. Его книга была самой тоненькой из всех книг по программированию, которые мне попадались в жизни - и самой лучшей, особенно тогда, в начале.

Date: 2011-10-14 03:52 pm (UTC)

Date: 2011-10-14 04:53 pm (UTC)
From: [identity profile] ygam.livejournal.com
А кто тебя на самолете катал, я забыл?

Date: 2011-10-14 05:11 pm (UTC)
From: [identity profile] avva.livejournal.com
Томпсон.

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

Date: 2011-10-14 04:59 pm (UTC)
From: [identity profile] french-man.livejournal.com
Толя, вот есть нечто, чего я не понимаю. Все говорят, что юникс написан на Си. Но чтоб оттранслировать этот написанный на си юникс, нужно его погрузить в какую-то уже готовую среду. Эта среда юниксом быть не может. Что она тогда?

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

Date: 2011-10-14 05:20 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Это называется cross compilation: когда компилятор для некоего языка, который должен производить машинный код для архитектуры X, сам бежит на архитектуре Y. Всегда, когда разрабатывают новую архитектуру или новую операционку, сначала пишут кросс-компилятор (затем иногда компилируют им самого его, и полученный код является уже не кросс- а нативным компилятором).

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

From: [identity profile] french-man.livejournal.com - Date: 2011-10-14 05:23 pm (UTC) - Expand

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

From: [identity profile] dimrub.livejournal.com - Date: 2011-10-14 05:30 pm (UTC) - Expand

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

From: [identity profile] kodt-rsdn.livejournal.com - Date: 2011-10-14 07:22 pm (UTC) - Expand

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

From: [identity profile] french-man.livejournal.com - Date: 2011-10-14 09:29 pm (UTC) - Expand

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

From: [identity profile] racoonbear.livejournal.com - Date: 2011-10-15 06:08 am (UTC) - Expand

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

From: [identity profile] avva.livejournal.com - Date: 2011-10-14 08:15 pm (UTC) - Expand

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

From: [identity profile] 38irtimd.livejournal.com - Date: 2011-10-23 09:51 pm (UTC) - Expand

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

From: [identity profile] norian.livejournal.com - Date: 2011-10-14 08:22 pm (UTC) - Expand

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

Date: 2011-10-14 05:01 pm (UTC)
From: [identity profile] dmarck.livejournal.com
"Dennis Ritchie: The Shoulders Steve Jobs Stood On"
http://www.wired.com/wiredenterprise/2011/10/thedennisritchieeffect/

Date: 2011-10-14 05:17 pm (UTC)

Date: 2011-10-14 05:34 pm (UTC)
From: [identity profile] amigofriend.livejournal.com
Да, в общем-то Ритчи для компьютеров был как Лес Пол для музыки. RIP

Date: 2011-10-14 05:44 pm (UTC)
From: [identity profile] burrru.livejournal.com
Очень хорошие и правильные слова. Светлая память.

Date: 2011-10-14 06:10 pm (UTC)
From: [identity profile] sinm.livejournal.com
Доступно написано. Кажется, что немало времени потратил на этот текст. Спасибо.

Date: 2011-10-15 10:42 am (UTC)
From: [identity profile] avva.livejournal.com
Я старался, да. Спасибо.

Date: 2011-10-14 07:03 pm (UTC)

Date: 2011-10-14 07:39 pm (UTC)
From: [identity profile] oleg96345.livejournal.com
Странно, неужели никто в то время не сделал какой-то другой вариант такого языка, с такими же достоинствами?

Date: 2011-10-14 07:51 pm (UTC)
From: [identity profile] ygam.livejournal.com
PL/360, основанный на безумном языке PL/I.
PL/M

(no subject)

From: [identity profile] malaya-zemlya.livejournal.com - Date: 2011-10-14 10:36 pm (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2011-10-14 10:37 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2011-10-15 10:03 am (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2011-10-15 03:55 pm (UTC) - Expand

(no subject)

From: [identity profile] xeye.livejournal.com - Date: 2011-10-15 05:53 pm (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2011-10-14 10:38 pm (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2011-10-14 10:40 pm (UTC) - Expand

(no subject)

From: [identity profile] vasja-iz-aa.livejournal.com - Date: 2011-10-14 08:24 pm (UTC) - Expand

Date: 2011-10-14 08:07 pm (UTC)

Date: 2011-10-14 10:41 pm (UTC)
From: [identity profile] cryinstone.livejournal.com
Хорошо написано.
Светлая память.

Date: 2011-10-15 01:43 am (UTC)

about C

Date: 2011-10-15 08:41 am (UTC)
From: (Anonymous)
“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."

Date: 2011-10-15 11:52 am (UTC)
From: [identity profile] brandt1.livejournal.com
При всем уважении к Ритчи и avva позволю себе высказать несколько тезисов, не укладывающихся в общий настрой этого обсуждения:
- В программировании все же наиболее важно умение понимать и реализовать алгоритмы, а не язык. Паскаль был создан как правильный язык для реализации алгоритмов.
- Большей части программистов нужен именно язык высокого уровня без близости к железу
- За свою долгую карьеру программиста я работал на паре десятков языков и обошелся без использования С, хотя и учил его (сейчас использую С#). Это просто как пример того, что мир не сосредоточен вокруг С.

Date: 2011-10-15 12:22 pm (UTC)
From: [identity profile] michk.livejournal.com
- Большей части программистов нужен именно язык высокого уровня без близости к железу
На этот счёт есть разные мнения

(no subject)

From: [identity profile] brandt1.livejournal.com - Date: 2011-10-15 01:54 pm (UTC) - Expand

(no subject)

From: [identity profile] ztarlitz.livejournal.com - Date: 2011-10-16 02:09 am (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2011-10-26 05:32 pm (UTC) - Expand

Date: 2011-10-15 02:07 pm (UTC)
From: [identity profile] nemirovd.livejournal.com
Вот я перечиал много посмертных эпитафий о смерти Ритчи. Понятно, что он гений, великий человек. Опять же его смерть совпала по смерти со смертью Джобса.

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

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

Но вопрос у меня такой: а получил ли Ритчи коммерческий результат от своих изобретений? Может он был акционером AT&T или получает лицензионные отчисления от коммерческих версий UNIX? Стал он миллиардером? (Я понимаю, что деньги могли его не интересовать, но все же.)

Date: 2011-10-15 02:12 pm (UTC)
From: [identity profile] avva.livejournal.com
Нет, он всю жизнь работал исследователем в Bell Labs, лицензионных отчислений не получал, акционером если и был, то частным, миллиардером наверняка не был. По сути дела, его карьера похожа на академическую за тем исключением, что ему не надо было преподавать.

Date: 2011-10-15 04:23 pm (UTC)
From: [identity profile] vfork.livejournal.com
{ printf("Good bye world\n"); }

Date: 2011-10-16 01:40 am (UTC)
From: [identity profile] ezhik-israely.livejournal.com
дада, тоже подумалось об этом
From: (Anonymous)
"Но профессионалы-компьютерщики знают, что трудно найти кого-то из живущих людей, кто больше Ритчи повлиял на компьютерный мир, а через него и на весь мир вокруг нас."

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

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

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

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

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

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

etc,etc,etc

:)

From: (Anonymous) - Date: 2011-10-16 07:40 pm (UTC) - Expand

Date: 2011-10-16 08:23 am (UTC)
From: [identity profile] alaev.livejournal.com
Да, книжка была замечательная. Читал её ешё при Советах, распечатанной на матричном принтере.

Date: 2011-10-16 04:49 pm (UTC)
From: (Anonymous)
C был первым универсально используемым языком программирования. До этого были широко используемые FORTRAN и COBOL, но они использовались в ограниченных хотя и массивных нишах.

оффтопик

Date: 2011-10-17 04:52 pm (UTC)
From: [identity profile] meshko.livejournal.com
Меня давно занимает вопрос о том, как правильно употреблять слово "изобретать". Мне почему-то режет слух, когда его употребляют так, как в этом посте. Те кажется. что можно изобрести двигатель внутреннего сгорания, объектно-ориентированное программирование, виртуальную память, мышь, но не конкрентый язык программирования. То есть для слова "изобретение" нужна какая-то конкретная новая идея, а не удачное инженерное решение (как Си). Это относится и к русскому и английскому invent. Это у меня неправильное ощущение?

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 03:25 am
Powered by Dreamwidth Studios