Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

10 запаведей программиста :)   Найти похожие ветки 

 
КаПиБаРа ©   (2005-09-14 15:34) [0]

Давайте напишем...


 
Андрей Жук ©   (2005-09-14 15:36) [1]

1. Пиши на С++


 
pavel_guzhanov ©   (2005-09-14 15:37) [2]

не навреди


 
Ega23 ©   (2005-09-14 15:37) [3]

10 запаведей программиста :)

0. Пешы граматна!


 
ANB ©   (2005-09-14 15:40) [4]


> Андрей Жук ©   (14.09.05 15:36) [1]


Интервью Bjarne Stroustrup
c Computer Magazine
перевод Mike Bluesman

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

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

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

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

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

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

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

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

И.: Шутите?
C.: Ничуть. Есть еще одна проблема. Unix был написан на "C" - это значило то, что любой программист, пишущий на "C", мог очень легко стать системным программистом. Помните сколько обычно зарабатывали большинство системных программистов?

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

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

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

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

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

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

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

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

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


 
ANB ©   (2005-09-14 15:41) [5]


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

И.: Как это?
С.: Не понятно что-ли? Помните typedef ?

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

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

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

И.: Но есть различные программные инструменты...
С.: Большинство из которых написаны на C++.

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

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

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

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

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

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

И.: Последнее, что я слышал - настоящие профессионалы зарабатывают $70-80 в час.
С.: Понимаете теперь? И я уверен, что он заслуживает этих денег. Отслеживание всех этих ловушек, которые я встроил в C++ - не легкая работа. И, как я говорил раньше, каждый программист на C++ чувствует себя связанным тем обстоятельством что он должен использовать каждый элемент языка в каждом проекте. Вообще это и меня часто раздражает, даже тогда, когда это служит моим целям. Но сейчас, когда прошло столько времени, мне уже начинает нравиться этот язык...

И.: Имеете ввиду, что раньше Вам C++ не нравился?
С.: Ненавидел его. Он даже выглядит неуклюже, вы не согласны? Но когда стали там выходить разные книги... вот, тогда-то я и увидел полную картину.

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

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

И.: Я извещу Вас, но мне кажется, что я знаю, что скажет мой редактор по этому поводу.
С.: А все-равно, кто этому поверит? Кстати, не могли бы вы мне прислать копию этой записи?

И. Это я могу.

Примечание переводчика :

Я не программирую на C++. Я не являюсь знатоком русской словестности. Посему прошу извинения за возможные ошибки в переводе.

специальный перевод для Hacknet Review выполнил Mike Bluesman, март 1998

18 лет
Email: CalcSite@narod.ru
icq: 231579671 редко там появляюсь


 
Игорь Шевченко ©   (2005-09-14 15:47) [6]

ANB ©   (14.09.05 15:40) [4]

И охота тебе всякую ерунду постить ?


 
ANB ©   (2005-09-14 15:57) [7]


> Игорь Шевченко ©   (14.09.05 15:47) [6]
- я вчера прочитал, долго ржал, потом залез в код нашего проекта на С++ и задумался . . .


 
oldman ©   (2005-09-14 16:00) [8]


> 10 запаведей программиста :)


1. Не пей!
2. Не пей никогда!
3. Не пей ни за что!
4. Не пей ни с кем!
5. Не пей ничего!
6. Не пей ни из чего!
7. Не пей ни за чего!
8. Не пей ни за кого!
9. Не пей ни вместо кого!
10. Не пей ваще!!!

:)))


 
Ega23 ©   (2005-09-14 16:01) [9]

- я вчера прочитал, долго ржал, потом залез в код нашего проекта на С++ и задумался . . .


Вот-вот.
Помнится пробовал разобрать исходники 2000_DDK\src\wdm\usb\bulkusb\. Чуть крыша не съехала. А ведь это - example. От самого Microsoft. Какой же тогда код у обычного программиста получается???


 
Джо ©   (2005-09-14 16:02) [10]


> [9] Ega23 ©   (14.09.05 16:01)

И охота всякую гадость читать? :)


 
Ega23 ©   (2005-09-14 16:04) [11]

И охота всякую гадость читать? :)

Да конечно неохота. Только тогда ты мне "кампанент давай! с кодом! Штобы с USB работал!"


 
Игорь Шевченко ©   (2005-09-14 16:06) [12]

Ega23 ©   (14.09.05 16:01) [9]


> Помнится пробовал разобрать исходники 2000_DDK\src\wdm\usb\bulkusb\


Нормальный исходник, хорошо оформленный, что тебе не нравится ? :)


 
ANB ©   (2005-09-14 16:08) [13]


> Игорь Шевченко ©   (14.09.05 16:06) [12]
- а если плохо оформленный ? . . .


 
Ega23 ©   (2005-09-14 16:09) [14]

Нормальный исходник, хорошо оформленный, что тебе не нравится ? :)


Как раз те самые typedef"ы, про которые Страуструб (если это он) в своём интервью говорит.


 
Vovchik_A ©   (2005-09-14 16:10) [15]

1. Не лакать воду языком - это закон. Разве мы не люди ?
2. Не есть ни мяса ни рыбы - это закон. Разве мы не люди ?
3. Не обдирать когтями кору с деревьев - это закон. Разве мы не люди ?

(с) Герберт Уэлс "Остров Доктороа Моро"

Ну и далее по тексту :)


 
Ega23 ©   (2005-09-14 16:10) [16]

Как раз те самые typedef"ы, про которые Страуструб (если это он) в своём интервью говорит.

Задолбался, в общем, grep запускать.


 
Axis_of_Evil ©   (2005-09-14 16:32) [17]

0) don"t do it
1) don"t do it yet


 
Игорь Шевченко ©   (2005-09-14 16:33) [18]

Ega23 ©   (14.09.05 16:09) [14]


> Как раз те самые typedef"ы


А они тебя-то каким боком касаются ? Все они описаны в Ntddk.h, ты их просто используй и будет тебе счастье.

Тебя же не напрягает использовать переопределенные типы в программе на Delphi, а их там не меньше, чем в DDK.


 
DiamondShark ©   (2005-09-14 16:48) [19]

1. Кто поймал, тот и съел.
2. Что поймал, то и съел.
3. Принимать форму того сосуда, в который тебя наливают.

В. Андреев, "Резервация".


 
Ega23 ©   (2005-09-14 16:52) [20]

А они тебя-то каким боком касаются ? Все они описаны в Ntddk.h, ты их просто используй и будет тебе счастье.

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


 
ANB ©   (2005-09-14 17:06) [21]

Ой ой. Холиварчик начинается. А я всего лишь хотел сказать А.Жуку, что его правило №1 не очень кошерно для сайта программистов на делфи . . .


 
TUser ©   (2005-09-14 17:56) [22]

1. Не флудь!!


 
Джо ©   (2005-09-14 18:01) [23]

1. Флудь. И да зачтется тебе :)


 
Суслик ©   (2005-09-14 18:03) [24]

1. не протирай мышки начальству


 
KilkennyCat ©   (2005-09-14 18:04) [25]

11. Не убий коллегу ноутбуком...


 
Андрей Жук ©   (2005-09-14 18:10) [26]

2. Не лей кофе на клавиатуру


 
vrem   (2005-09-14 18:12) [27]

Не торопись исправлять даже явно ошибочное в чужом коде - возможно этим элегантно решается какая то проблема :)


 
k2 ©   (2005-09-14 18:14) [28]

Андрей Жук ©   (14.09.05 18:10) [26]
2. Не лей кофе на клавиатуру

ибо клавиатура предпочитает борщ


 
Prohodil Mimo ©   (2005-09-14 18:17) [29]

Пореже появляйся на форумах :о)


 
Ega23 ©   (2005-09-14 18:59) [30]

Что-то самое главное забыли: РАБОТАТЬ НАДО!


 
Джо ©   (2005-09-14 19:01) [31]

А почему нет про "ГОУТУ"?


 
Джо ©   (2005-09-14 19:02) [32]

В таком духе:

1. Не используйте goto.
2. Если чешется, то goto 1.


 
TUser ©   (2005-09-14 20:09) [33]

Я часто говорю сам себе
Если нечто можно сделать либо быстро, либо правильно - то надо делать медленно.

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


 
Prohodil Mimo ©   (2005-09-14 20:32) [34]

TUser ©   (14.09.05 20:09) [33]

лучше день потерять, потом за час долететь. (с) Крылья, ноги, хвосты.

зачастую придерживаюсь этого :о)


 
Prohodil Mimo ©   (2005-09-14 20:33) [35]

Ega23 ©   (14.09.05 18:59) [30]
Что-то самое главное забыли: РАБОТАТЬ НАДО!


в [29]я к тому и клонил



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.029 c
14-1127069788
Fl@sh
2005-09-18 22:56
2005.10.09
Жена+Інтернет+знакомство


1-1127064068
Delet
2005-09-18 21:21
2005.10.09
Как в ListView отображать файлы из TreeView?


14-1127070344
Fl@sh
2005-09-18 23:05
2005.10.09
Винт+перезагрузка


1-1127198832
ZeroDivide
2005-09-20 10:47
2005.10.09
Винда не может завершить работу, когда мой процесс запущен !


4-1123418703
psa247
2005-08-07 16:45
2005.10.09
ProcessID -> Путь Filename.exe