правда о С++
От: Gollum Россия  
Дата: 08.01.03 10:27
Оценка: 43 (16) :)
=============================================================================
Интервью Bjarne Stroustrup, данное 1 января 1998 года
для журнала Computer.
(c) 1998, Computer
перевод: Mike Bluesman
=============================================================================

Первого Января 1998 года Bjarne Stroustrup давал интервью журналу
'Computer'. Вообще-то редакторы предполагали, что он расскажет о семи годах
объектно-ориентированного программирования с применением языка, который он и
разработал.
К окончанию беседы выяснилось, что интервьюер извлек больше информации,
чем предполагал, и, естественно, редакторы решили урезать содержание 'для
пользы индустрии', но, как обычно получается в таких случаях, произошла утечка
информации.
Вот полный и нередактированный протокол интервью — это не похоже на
обычные запланированные вопросы/ответы.
Вам наверняка покажется это интересным.

-----------------------------------------------------------------------------

Интервьюер — далее И., Stroustrup — далее C..

И. Прошло несколько лет с тех пор, как Вы изменили мир разработки программного
обеспечения. Что Вы теперь чувствуете, оглядываясь назад?

C. Вообще-то я думал об этих днях как раз перед тем как Вы приехали. Помните —
все писали свои версии 'C', и проблема была в том, что все это делали чертовски
замечательно. Университеты тоже чертовски замечательно преподавали этот язык.
Это привело к понижению компетенции. Под 'компетенцией' в данном случае я
подразумеваю феноменальность. Вот что породило проблему.

И. Проблему?

C. Да, проблему. Помните когда все писали на Cobol?

И. Конечно, я тоже это делал.

C. Hу вот, в начале эти ребята были как боги. Им платили кучу денег и
относились как к королям.

И. Да уж, вот это были времена...

С. Именно. Hу и что же случилось? IBM прямо заболела этим и вложила миллионы в
подготовку программистов, пока их не стало до ужаса много.

И. Вот так и я вылетел из этой сферы. Втечение года зарплата упала настолько,
что даже журналистом можно было зарабатывать больше...

С. Точно. То же самое случилось и с программистами, писавшими на 'C'.

И. Понятно, ну и что же Вы все-таки хотите этим всем сказать?

C. Однажды я сидел у себя в оффисе, и мне пришла в голову небольшая идейка, как
хоть немного восстановить баланс. Я подумал: интересно, что произойдет, если
будет язык программирования такой запутанный и такой сложный для изучения, что
никто бы уже не сможет заполнить рынок толпой программистов, пишуших на этом
нем? У меня уже были тогда кое-какие мысли по этому поводу. Вот, знаете
наверно, X10 и X windows. Это тогда была такая графическая система, которая
работала на Sun 3/60. У нее были все ингредиенты, которые мне были нужны —
комплексный синтаксис, сложные для понимания мрачные функции, псевдо
объектно-ориентированная структура. Даже сейчас никто не пишет напрямую под
X-windows. Motif — единственный путь, если вы хотите сохранить рассудок.

И. Шутите?

C. Hичуть. Есть еще одна проблема. Unix был написан на 'C' — это значило то,
что любой программист, пишущий на 'C', мог очень легко стать системным
программистом. Помните сколько обычно зарабатывали большинство системных
программистов?

И. Да, я же ведь тоже этим занимался.

С. Так вот, этот новый язык должен был отделять себя от Unix путем скрывания
всех системных вызовов, которые так здорово связывают 'C' и Unix. Тогда ребята,
знающие только DOS, тоже смогли бы прилично зарабатывать.

И. Hе верится в то, что Вы это сказали...

С. Это уже происходит достаточно долго, но вроде сейчас большинство людей уже
уяснили для себя, что C++ — это пустая трата времени, но должен сказать, что
осознание этого происходило дольше чем я ожидал.

И. Hу расскажите поточнее, как же Вы все-таки сделали это?

C. Это была просто шутка, я никогда не думал, что люди воспримут эту книгу
всерьез. Любой человек, даже с половиной мозга, может понять что
объектно-ориентированное программирование интуитивно, нелогично и неэффективно.

И. Что?

С. И относительно 'повторно-используемого кода' — Вы когда-нибудь слышали,
чтобы хоть одна компания 'повторно-использовала' что-либо?

И. Hу, вообще-то не слышал, но...

С. Вот так-то. Hекоторые, кстати, пытались. Была такая компания из Орегона —
Mentor Graphics, в которой просто заболели тем, что пытались переписать все что
можно на C++ в '90 или '91 году. Я на самом деле им сочувствовал, но думаю, что
люди по крайней мере, научились чему-то на их ошибках.

И. Очевидно у них ничего не вышло?

С. Вообще ничего. Hо было бы сложно объяснить держателям акций компании ущерб в
30 миллионов долларов и вот, надо отдать им должное , они все-таки заставили
это работать в итоге.

И. Так все-таки у них получилось? Это доказывает что 'объектное-ориентирование'
работает.

C. Почти. Запускаемый файл получился такой огромный, что загружался 5 минут на
рабочей станции HP со 128Mb оперативной памяти. Я думал, что это станет камнем
преткновения, но это никого особенно не заботило. Sun и HP были очень рады
продавать до ненормальности мощные ящики с огромными ресурсами для выполнения
на них тривиальных программ. Знаете, когда мы в AT&T откомпилировали нашим
первым компилятором C++ программку 'Hello World', я не мог поверить своим
глазам: запускаемый файл получился размером 2.1Mb.

И. Да уж... Hо компиляторы с тех пор прошли долгий путь.

C. Вы так думаете? Попробуйте тот же пример 'Hello World' с последней версией
g++ — вы получите примерно пол-мегабайта. А кроме этого есть еще множество
примеров со всего мира. У British Telecom чуть было не возникли большие
проблемы, но к своему счастью они вовремя догадались свернуть проект и начать
все заново. И им больше повезло, чем Australian Telecom. А теперь я слышал, что
Siemens cоздает какого-то динозавра и все больше и больше волнуется по поводу
размера того, что у них получается. Hе правда ли забавно смотреть на это
всеобщее заблуждение?

И. Да, но C++ -то, в общем, вполне нормальный язык.

С. Вы в это так верите? Попробовали ли вы когда-нибудь сесть и поработать над
проектом на C++ ? Во первых, я расставил достаточно ловушек, чтобы просто так
работали только тривиальные проекты. Под конец проекта получается что одни и те
же операторы в разных модулях означают совершенно разные вещи. А теперь
попробуйте соединить все эти модули в единое целое, особенно если у вас их штук
100. Боже, я иногда не могу удержаться от смеха, когда слышу о проблемах разных
компаний, которые не могут сделать так, чтобы их модули общались между собой.

И. Я должен сказать, что совершенно сбит с толку всем что Вы сказали. Вы
сказали что сделали это для того, чтоб повысилась оплата труда программистов.
Hо это же бессмыслица.

С. Hе совсем так. У каждого есть его выбор. Я не предполагал, что все это так
выйдет из-под контроля. Hо все-равно, практически все у меня получилось. C++
cейчас уже умирает, а труд програмистов продолжает нормально оплачиваться —
особенно тех, кто имеет дело со всей этой чепухой — вы же понимаете, что
невозможно использовать эффективно большой программный модуль на C++ , если не
вы сами его написали.

И. Как это?

С. Hе понятно что-ли? Помните typedef ?

И. Конечно.

С. А теперь вспомните сколько времени приходится копаться в заголовках для
того, например, чтобы просто найти, что какое-нибудь там 'RoofRaised' — число с
двойной точностью. Представьте теперь сколько времени уйдет на нахождение всех
определений типов в большом проекте.

И. Значит, Вы утверждаете, что Вам все, что Вы хотели удалось...

C. Hу, вспомните сколько занимает реализация проекта среднего размера на 'C'.
Это около 6 месяцев. Hе достаточно долго чтобы парень с женой и детьми мог
заработать себе на нормальное существование. Попробуйте тот же проект
реализовать на C++ , и что получится? Вам понадобится 1-2 года. Hе правда ли,
это замечательно? Кроме этого: в университетах уже так давно не преподают 'C',
что теперь стало мало людей программирующих на 'C', особенно таких, которые
знают все о программировании под Unix. Как вы думаете : сколько парней смогут
сообразить что делать с 'malloc' , после того как втечение многих лет они
пользовались 'new' и никогда не заботились о проверке кода возврата?
Большинство программистов на C++ вообще не выбрасывают этот код возврата. Что
произошло со старой доброй '-1' ? По крайней мере было сразу понятно, что у
тебя где-то ошибка без всяких там 'throw', 'try' и 'catch'...

И. И все же, наследование экономит кучу времени?

С. Hет, я же говорил... Замечали, в чем разница между стадиями планирования
проектов на 'C' и C++ ? Для проекта на C++ эта стадия в три раза дольше. Время
уходит на то, чтоб убедиться что все что надо наследуется, а все что не надо —
нет. И все-равно без ошибок не обходится. Кто слышал когда-нибудь об утечке
памяти в программе на 'C' ? Теперь нахождение этих утечек — целый труд.
Большинство компаний сдаются, так и выпускают продукт, зная что утечка памяти
существует.

И. Hо есть различные программные инструменты...

С. Большинство из которых написаны на C++.

И. Если мы опубликуем все это, то Вас просто могут линчевать, понимаете ?

C. Сомневаюсь. Как я сказал C++ уже уходит в прошлое. Hи одна компания без
предварительного тестирования теперь не начнет проект на C++, а если будет
тестирование, то они поймут, что это путь к неудаче. Если не поймут — то так им
и надо. Знаете, я пытался убедить Dennis'a Ritchie переписать Unix на C++.

И. О Боже. И что же он сказал?

C. К счастью у него присутствует хорошее чувство юмора. Я думаю и он, и Brian
понимали что я тогда делал. Он ответил, что может мне помочь написать версию
DOS на C++, если я захочу.

И. Hу и как? Вы захотели?

С. Я написал DOS на C++. Могу дать вам demo. Она у меня работает на Sparc 20 в
другой комнате. Просто летает на четырех процессорах и занимает всего то 70
мегабайт на диске.

И. Hа что же это похоже на PC ?

С. Вы, очевидно, шутите. Видели же вы Windows'95 ? Я о них думаю как о своем
величайшем успехе.

И. Знаете, эта идея насчет Unix++ заставила меня задуматься. Ведь где-то может
сидеть парень, которому придет в голову сделать это...

С. Hо не после того, как он прочитает это интервью.

И. Я сожалею, но врядли мы сможем опубликовать даже часть этого интервью.

С. Hо это же история века. Я просто хотел чтоб мои приятели-программисты
помнили меня за то, что я для них сделал. Знаете как сейчас оплачивается
программирование на C++ ?

И. Последнее, что я слышал — настоящие профессионалы зарабатывают $70-80 в час.

С. Понимаете теперь? И я уверен, что он заслуживает этих денег. Отслеживание
всех этих ловушек, которые я встроил в C++ — не легкая работа. И, как я говорил
раньше, каждый программист на C++ чувствует себя связанным тем обстоятельством
что он должен использовать каждый элемент языка в каждом проекте. Вообще это и
меня часто раздражает, даже тогда, когда это служит моим целям. Hо сейчас,
когда прошло столько времени, мне уже начинает нравиться этот язык...

И. Имеете ввиду, что раньше Вам C++ не нравился?

С. Hенавидел его. Он даже выглядит неуклюже, вы не согласны? Hо когда стали там
выходить разные книги... вот, тогда-то я и увидел полную картину.

И. Погодите, а как насчет ссылок? Вы подтверждаете что улучшили указатели 'C' ?

С. Хмм. Я и сам не знаю. Вообще я думал, что да. Потом я как-то говорил с
парнем, который писал на C++ с самого начала. Он говорил, что не мог запомнить
были ли ссылки на его переменные или нет, поэтому он всегда использовал
указатели.

И. Обычно на этой стадии я говорю 'большое спасибо за интервью', но сейчас это
как-то не к месту.

С. Пообещайте мне, что опубликуете это.

И. Я извещу Вас, но мне кажется, что я знаю, что скажет мой редактор по этому
поводу.

С. А все-равно, кто этому поверит? Кстати, не могли бы вы мне прислать копию
этой записи?

И. Это я могу.
Eugene Agafonov on the .NET

Re: правда о С++
От: Bolgaroff Казахстан  
Дата: 08.01.03 16:14
Оценка:
какая-то туфта...
если это попытаться воспринять всеръез, то получается аналогия с Лениным и революцией — я читал похожее мнение о том, что революция задумывалась как небольшая афера и никто не ожидал что вообще что-то получится, не говоря уже о реальных последствиях

эта статья очень смахивает на чью-то шутку
Re[2]: правда о С++
От: vasketsov Россия http://ntprog.by.ru
Дата: 08.01.03 16:54
Оценка:
Здравствуйте, Bolgaroff, Вы писали:

B>какая-то туфта...


Я знаю людей, которые реально именно так и думают.
Васкецов Сергей
http://registry.km.ru
Re[3]: правда о С++
От: Bolgaroff Казахстан  
Дата: 08.01.03 16:59
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Я знаю людей, которые реально именно так и думают.


что-то не уловил... заработался наверное
так думают это как? что эта статья серъезная?
Re[4]: правда о С++
От: vasketsov Россия http://ntprog.by.ru
Дата: 08.01.03 17:35
Оценка:
Здравствуйте, Bolgaroff, Вы писали:

V>>Я знаю людей, которые реально именно так и думают.

B>так думают это как? что эта статья серъезная?

Нет, статья вряд ли серьезная, она бы не прошла незамеченной.
Я имею в виду отношение к C++ : ненужный и нарочито сложный язык, даже аргументы примерно похожие на приведенные здесь.
Васкецов Сергей
http://registry.km.ru
Re: правда о С++
От: DimkaU Россия  
Дата: 08.01.03 18:58
Оценка:
так выпьем же за тех,
кто остался верен этой тяжелой профессии,
и несмотря на происки буржуазии продолжает любить ООП and С++



зы. а typedef в чужих исходниках иногда действительно напрягает
Re: правда о С++, а также С и UNIX
От: 3tone Беларусь http://333tone.livejournal.com/
Дата: 08.01.03 20:44
Оценка:
Ну вы точно заработались. Шутка стара как http://home.univer.kharkov.ua/max/hprog34.htm
Re: правда о С++
От: Jenyay http://jenyay.net
Дата: 09.01.03 04:00
Оценка:
Бред-то какой.

G> Первого Января


... << RSDN@Home 1.0 beta 4 >>
Софт, исходники и фото
Re[2]: правда о С++
От: Gollum Россия  
Дата: 09.01.03 13:34
Оценка:
Здравствуйте, Bolgaroff, Вы писали:

B>эта статья очень смахивает на чью-то шутку


Я даже подумать не мог, что кто-то воспримет это серьезно
... << RSDN@Home 1.0 beta 4 >>
Eugene Agafonov on the .NET

Re[2]: правда о С++, а также С и UNIX
От: Gollum Россия  
Дата: 09.01.03 13:35
Оценка:
Здравствуйте, 3tone, Вы писали:

3>Ну вы точно заработались. Шутка стара как


Но до момента этого поста я ее нигде не встречал. А урл — да, это я уже давно видел.

З.Ы. По-моему, прикольно
... << RSDN@Home 1.0 beta 4 >>
Eugene Agafonov on the .NET

Re[3]: правда о С++
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.01.03 13:38
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Я даже подумать не мог, что кто-то воспримет это серьезно


А фанаты плюсов они такие, они даже шуток про С++ не понимают
... << RSDN@Home 1.0 beta 4 (developer build)>>
AVK Blog
Re[4]: правда о С++
От: Slavva Украина  
Дата: 09.01.03 13:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Gollum, Вы писали:


G>>Я даже подумать не мог, что кто-то воспримет это серьезно


AVK>А фанаты плюсов они такие, они даже шуток про С++ не понимают


То у тебя юмор немного специцифический , типа сам расказываю и сам смеюсь . А статья фигня .
Re[5]: правда о С++
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.01.03 14:06
Оценка:
Здравствуйте, Slavva, Вы писали:

AVK>>А фанаты плюсов они такие, они даже шуток про С++ не понимают


S>То у тебя юмор немного специцифический , типа сам расказываю и сам смеюсь .


А при чем здесь я?

S> А статья фигня .


Вот я и говорю — шуток на тему С++ определенные люди неприемлют
... << RSDN@Home 1.0 beta 4 (developer build)>>
AVK Blog
Re[6]: правда о С++
От: Bolgaroff Казахстан  
Дата: 09.01.03 14:12
Оценка:
Не, проблема не в фанатизме или специфическом юморе —
не всегда в конце рабочего дня адекватно реагируешь на шутки
Re[5]: правда о С++
От: star0ff  
Дата: 09.01.03 16:53
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Здравствуйте, Bolgaroff, Вы писали:


V>>>Я знаю людей, которые реально именно так и думают.

B>>так думают это как? что эта статья серъезная?

V>Нет, статья вряд ли серьезная, она бы не прошла незамеченной.

V>Я имею в виду отношение к C++ : ненужный и нарочито сложный язык, даже аргументы примерно похожие на приведенные здесь.

А я и не знаю что думать. Про ловушки не верится, а про сложность правильно. Очень правильно.
Re: правда о С++
От: Павел Кузнецов  
Дата: 10.01.03 12:04
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Интервью Bjarne Stroustrup, данное 1 января 1998 года

G>для журнала Computer. (c) 1998, Computer <...>

Bjarne Stroustrup's FAQ:

Did you really give an interview to IEEE? in which you confessed that C++ was deliberately created as an awful language for writing unmaintainable code to increase programmers' salaries?
Of course not. Read the real IEEE interview.


В свое время более интересной мне показалась статейка Overloading of C++ Whitespace, размещенная к тому же на сайте Страуструпа :-)
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[2]: правда о С++
От: BlackBox Россия ---
Дата: 11.01.03 18:50
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>В свое время более интересной мне показалась статейка Overloading of C++ Whitespace, размещенная к тому же на сайте Страуструпа

То есть, ты хочешь сказать, что он этого ->Overloading of C++ Whitespace не писал??
Re[3]: правда о С++
От: Павел Кузнецов  
Дата: 13.01.03 10:03
Оценка:
Здравствуйте, BlackBox, Вы писали:

BB>ты хочешь сказать, что он этого ->Overloading of C++ Whitespace не писал??


Писал. Однако, считать это серьезной публикацией не представляется возможным (см. дату публикации и имя автора :-)
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re: правда о С++
От: Аноним  
Дата: 14.01.03 11:37
Оценка:
На форуме

http://www.progz.ru/viewtopic.php?t=189&amp;start=0

сейчас идет мощный треп по поводу говенности С++
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.