LINUX.ORG.RU

Интервью с Бьярном Страустрапом

 ,


0

0

Бьярн Страустрап, автор одного из наиболее широко используемых и успешных языков программирования — C++, пару дней назад дал 8-страничное интервью computerworld.com.au, где рассказал то, что программистам полезно знать о C++:

  • его историю,
  • развитие языка в настоящее время,
  • и его будущее.

>>> Подробности

Ответ на: комментарий от DiKeert

То, что такой ярый С++-ник был вынужден работать 5 месяцев на ненавистном C#, не в лучшую сторону характеризует востребованность С++-а, не находишь?

Legioner ★★★★★
()
Ответ на: комментарий от void_ptr

>Кто-то уже отменил #include <complex.h> ?

Все равно ты не сдалаешь это так просто и выразительно как с объектами.

DiKeert ★★
()
Ответ на: комментарий от Legioner

>То, что такой ярый С++-ник был вынужден работать 5 месяцев на >ненавистном C#, не в лучшую сторону характеризует востребованность >С++-а, не находишь?

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

DiKeert ★★
()
Ответ на: комментарий от anonymous

Да уж пипец какой простой. Бъярн в своем интервью признает, что С++ по сути компромисный язык. А простых компромисов не бывает.

void_ptr ★★★★
()
Ответ на: комментарий от DiKeert

> ЗАчем в Qt это сделали....

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

Legioner ★★★★★
()
Ответ на: комментарий от void_ptr

> Кто-то уже отменил #include <complex.h> ?

О, complex поминают. Между прочим комплексная арифметика в программах редкость, а вот векторные операции c векторами типа xy,xyz,xyzw сплошь и к ряду. complex.h в этих условиях как насмешка, а С++ с перегрузкой операторов - самое то.

anonymous
()
Ответ на: комментарий от Legioner

да, на большее они не способны ;) Такой же свободой и еще большей обладают С. Но там она нужна и там она естественна, в отличие от С++. Гослинг это понимал. Ява не лишена недостатков, но у С++ нет преимуществ. Большие, как любил говорить строус, щас могут писаться и пишутся на многих языках. Ява с нетом догоняют и обгоняют плюсы по быстродействию. Короче эпоха плюсов прошла, и слава патрику!

anonymous
()
Ответ на: комментарий от DiKeert

Не, по сравнению с C#, как языком (и джавой и прочим мейнстримовым говном), C++ рулит. Вот только у C# есть .NET, есть reflection, есть GC, есть security, а у С++ этого нет и имитируется с очень большим трудом.

Legioner ★★★★★
()
Ответ на: комментарий от Corran_Horn

2Corran_Horn (*) (28.06.2008 0:47:54):

> Перевод:
> Часть 1: http://translate111.narod.ru/
> Часть 2: http://translate111.narod.ru/111.htm

Это Вы намеренно такой перевод подсунули, чтобы культивировать
отвращение к C++ и его создателю? :-D


=============================================
- Где делает название C ++, прибывают из?

- Как "C с Классами" (мой предок к C ++) стал популярным в пределах
Bell Labs, некоторые люди нашли, что название слишком много полного
рта и начало называть это C.
=============================================

anonymous
()
Ответ на: комментарий от DiKeert

Вот реверанс в сторону C#. У него есть 2 замечательные фичи. Это индексаторы объектов и свойства.

(Для тех кто не знает С#) Индексатор - это фича, которая позволяет обращаться к объекту как к массиву. При чем на это обращение пишешь свою функцию, которая и выполяется. Возращаются данные полученные в результате ее работы.

Свойство - тоже самое, только не к массиву, а к переменной. Пользователю кажеться, что он изменяет переменную в объекте. А на самом деле есть функция, которая отлавливает попытку записи и что-то делает в этот момент. А есть функция, которая отлавливает попытку чтения и тоже может что-то выполнить.

Вот эти фичи очень помогают частенько.

DiKeert ★★
()
Ответ на: комментарий от DiKeert

а разве это не делается простой перегрузкой оператора скобки и =?

lester ★★★★
()
Ответ на: комментарий от DiKeert

>(Для тех кто не знает С#)

Открой для себя Delphi. Еше не посадили ту траву, которую курили создатели шарпа, а в Дельфях эти фичи уже были. Дельфи создали плохую репутацию орды быдлокодеров, но сам язык в этом не виноват, он весьма хорош. И при наличии ГМ и прямых рук на нем писать можно качественно.

redgremlin ★★★★★
()
Ответ на: комментарий от DiKeert

>Свойство - тоже самое, только не к массиву, а к переменной. >Пользователю кажеться, что он изменяет переменную в объекте. А на самом деле есть функция, которая отлавливает попытку записи и что-то делает в этот момент. А есть функция, которая отлавливает попытку чтения и тоже может что-то выполнить.

Хайлсберг из Delphi протащил эту фичу в C#, подложив тем самым жырную свинью.
Свойства по сути неоднозначны и сопряжены с кодом инициации. Невозможно определить атомарность изменения того или иного свойства — а вдруг код сеттера меняет ещё что-нибудь у объекта... или не меняет ничего?

Кроме того, в C# нет проверяемых исключений, которые полезны для разработки надёжных приложений (см. Бертран Мейер, Eiffel).

iZEN ★★★★★
()
Ответ на: комментарий от redgremlin

Угу, и компоненты были в нём весьма неплохо реализованы. Борманы дураки, погнались за дотнетом, хотя это никому не надо было, и потеряли ту нишу, в которой были сильны.

Legioner ★★★★★
()
Ответ на: комментарий от iZEN

> Свойства по сути неоднозначны и сопряжены с кодом инициации. Невозможно определить атомарность изменения того или иного свойства — а вдруг код сеттера меняет ещё что-нибудь у объекта... или не меняет ничего?

А это уже дело класса. И абстракция от этого важна.

> Кроме того, в C# нет проверяемых исключений, которые полезны для разработки надёжных приложений (см. Бертран Мейер, Eiffel).

Проверяемые исключения не нужны. Доказано джавой :)

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

> Ява с нетом догоняют и обгоняют плюсы по быстродействию. Короче эпоха плюсов прошла, и слава патрику!

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

lester ★★★★
()
Ответ на: комментарий от Legioner

>Проверяемые исключения не нужны. Доказано джавой :)

Ты просто их неасилил.

В JEE проверяемых исключений мало из-за семантики использования (приложение внутри приложения).

iZEN ★★★★★
()
Ответ на: комментарий от lester

>С++ ( как и С ) не прощает топорного кода

Ещё как прощает. Топорный код обнаруживается только на этапе выполнения. Компилятор отловить его не в состоянии (у C тем более, так как нет жёсткой проверки типов). Сумерки "богов", в общем.

И зачем нужны такие сложные компиляторы C/C++? Если на оптимизациях можно заработать геморрой, а неоптимизированный машкод работает не быстрее явовского (модуловкского, паскалевского).

iZEN ★★★★★
()
Ответ на: комментарий от lester

>насчет "эпохи плюсов" - с плюсов уходят те кто на них толком не умеет прогить( вроде моего, к счастью, бывшего напарника ),

Индукция от одного сомнительного эпизода. Очаровательно.

>но кому приходилось это делать, С++ ( как и С ) не прощает топорного кода

И впоследствии обвешивают код на, например яве, привычными костылями и велосипедами?

Absurd ★★★
()
Ответ на: комментарий от Legioner

>Проверяемые исключения не нужны. Доказано джавой :)

Смотря что писать. В том коде, который на Жаве пишуть чаще всего (серверный код) исключения - это часть интерфейса.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Индукция от одного сомнительного эпизода. Очаровательно

вы ошибаетесь - я всего лишь привел пример

> И впоследствии обвешивают код на, например яве, привычными костылями и велосипедами?

пусть лучше уж там прикручивают костыли, чем постоянно зевают в с/с++ проверять аргументы и индексы на валидность, а память на отсутсвие ликов :)

lester ★★★★
()
Ответ на: комментарий от redgremlin

>Вообще-то, версии с 6 (емнип), язык стал называться именно Delphi.

я это и написал: Object Pascal в исполнении разработчиков FreePascal, это НЕ Delphi (как язык Borland/CodeGear) это намного лучше.

sniper21 ★★★★★
()
Ответ на: комментарий от lester

>> И впоследствии обвешивают код на, например яве, привычными костылями и велосипедами?

>пусть лучше уж там прикручивают костыли, чем постоянно зевают в с/с++ проверять аргументы и индексы на валидность, а память на отсутсвие ликов :)

Кто там что-то говорил про дублированный код.

Absurd ★★★
()

> он рассказал то, что программистам полезно знать о C++: его историю, развитие языка в настоящее время, и его будущее.

Слишком много знать нужно. Потому Java и популярней.

CtrlAltBs
()
Ответ на: комментарий от Absurd

проверка параметров и индексов( как и расстановка ассертов ) это как по мне неотъемлимая часть кода и логики программы, я ж спать спокойно не буду если не пропишу их :) насчет памяти - согласен, в той же Java это сделано лучше, но "костыля" smart_ptr мне вполне хватает( там где он действительно нужен )

lester ★★★★
()

И вообще, будет ли сегодня новость на главной об отставке Билла? Я считаю, что он этого заслужил. Гораздо более, чем какие то домены. Так или иначе она оказывал воздействие и на OpenSource.

CtrlAltBs
()
Ответ на: комментарий от iZEN

> Modula-2 (3)

> Ada95 (2005)

В отличии от Ada (где Ada2005 является развитием Ada95), Modula-3 -- это отличный от Modula-2 язык программирования. К тому же давно заброшенный.

Да и вообще смешно: процедурный Modula-2 является конкурентом объектно-ориентированному C++ :) Даже при всех недостатках C++.

eao197 ★★★★★
()
Ответ на: комментарий от iZEN

> Кроме того, в C# нет проверяемых исключений, которые полезны для разработки надёжных приложений (см. Бертран Мейер, Eiffel).

Можете показать пальцем на checked exceptions в Eiffel?

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

> Она то в состоянии его получить а как тогда будет выглядеть сказка про кроссплатформеность ? Кстати с приходом SWT ( а ведь имнено с ним пишуться достойные дектопные проги типа Eclipse, Azureus etc ) все эта кроссплатформеность накрылась медным тазом ...

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

2) Вы когда-нибудь на SWT писали? Бинарник получается все так же кроссплатформенным и перекомпиляции не требует, нужно только подкинуть нужную библиотеку, которая и обеспечит native vidgets.

И вообще, что такое "сказка про кроссплатформеность"? На ява написано и внедрено очень много кроссплатформенного ПО production-уровня. Просто ява кроссплатформенна по определению, по своему принципу. Не нужно прилагать ни каких усилий для обеспечений мультиплатформенности. И, если программист, не занимается дерганием функции из native-библиотек, то программа получается кроссплатформенное. Да и даже если дергает, то никто не мешает портировать эту библиотеку на другую платформу. Другое дело, что native вызовами приходится заниматься не так уж и часто, яркий пример все та же SWT.

Но все выше сказанное не означает, что "С++ не нужен". Это две разных технологии (намеренно не пишу два разных языка), созданные для разных целей и применяемые в разных областях.

anonymous
()
Ответ на: комментарий от lester

>с плюсов уходят те кто на них толком не умеет прогить

вот о том и речь. В идеальном мире, сплошь населенном гениями, С++ мог бы и выжить. А в реальности есть много негениев (а так-же, не к ночи будь они помянуты, индусы). И вот когда в команду, в которой далеко не все гении, попадает проект, к которому приложили руки индусы - тут и удается прочувствовать всю мощь плюсов.

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

Мне кажется, что сейчас основной удел C++ - развитие старых проектов, что-то новое на C++ пишется редко.

ISanych
()
Ответ на: комментарий от ISanych

>В идеальном мире, сплошь населенном гениями, С++ мог бы и выжить.

Умный программист тупым кодом решает сложные проблемы, а не наоборот.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Умный программист тупым кодом решает сложные проблемы, а не наоборот.

вы хотели сказать ленивым кодом? :)

lester ★★★★
()
Ответ на: комментарий от iZEN

>> Проверяемые исключения не нужны. Доказано джавой :)

> Ты просто их неасилил.

Ну тогода их весь мир ниасилил.

tailgunner ★★★★★
()
Ответ на: комментарий от redgremlin

> Открой для себя Delphi... И при наличии ГМ и прямых рук на нем писать можно качественно.

Sorry, что так прям вмешиваюсь. На Дельфях зае...ся писать из-за отсуствия нормальных моделей (события вида OnGetData/OnPaintItem (не помню точно как они называются) не особо на модельку тянут). А писать туеву хучу обработчиков, чтобы сделать какой-нибудь примитивный hex-viwer в виде таблички, или подсветку синтаксиса, или представление чего-нибудь в виде дерева угребешься. Вот с этого места AWT/Swing, QT и т.д. становятся предпочтительнее.

Хотя на простых тестовых или учебных задачках Delphi нет равных (особенно в плане скорости разработки приложения).

anonymous
()
Ответ на: комментарий от anonymous

>А писать туеву хучу обработчиков, чтобы сделать какой-нибудь примитивный hex-viwer в виде таблички, или подсветку синтаксиса, или представление чего-нибудь в виде дерева угребешься

Ананимус, может лучше будешь говорить, о чем знаешь? hex-viewer пишется на коленке за две минуты, про подсветку читай исходники SynEdit до просветления,ничего сложного там нет, с деревом TCustomTreeView наследуешь.

>А писать туеву хучу обработчиков

Так. Этого к Дельфям не пускать. Рекомендую осилить ООП, конкретно наследование, и компонентную модель VCL/CLX/LCL.

redgremlin ★★★★★
()
Ответ на: комментарий от anonymous

>>подсветку синтаксиса

для задачи написания подсветки синтаксиса давно сделан компонент Synedit (http://synedit.sourceforge.net/) помоему просто и легко.

Все жё борятся за простоту и скорость разработки, только почему то когда видят компоненты Delphi говорят что это только для лентяев.... при этом пишут фреимворки и либы для остальных языков (prototype, JQuery, Boost, smarty: простите что всё в кучу, но я знаю что для чего ;-)

Только не понятно.... где логика? Почему для всех языков писать фреймворки и либы это нормально, а когда для Delphi _уже всё написано_, то это годится только для лентяев?

sniper21 ★★★★★
()
Ответ на: комментарий от redgremlin

redgremlin, два поста отправлены одновременно с точностью до секунды 0_o

sniper21 ★★★★★
()

если вам не нравится лепить компоненты на форму, то никто не мешает сделать это Ъ-способом

uses SynEdit;

var SynEdit: TSynEdit;

begin

SynEdit := TSynEdit.Create(Application);

SynEdit.Lines.LoadFromFile("myfile.txt");

end.

sniper21 ★★★★★
()
Ответ на: комментарий от anonymous

> > +1 aist1 * (*) (28.06.2008 0:18:46)

aist1 - ты дятел? кроме смайлика "+1" еще что-то знаешь?

анонимус, там же ясно написано - аист, какой еще дятел ???

anonymous
()
Ответ на: комментарий от anonymous

Люди, дайте линк на то как Виталий Луговский стройно доказал что C++ ненужен, плз.! Хочется полюбоваться красотой мысли.

baaba ★★★
()
Ответ на: комментарий от anonymous

>страуструп не нужен

Гхм, персонажи утверждающие подобное тем более;)

gaux ★★
()
Ответ на: комментарий от anonymous

>C++ не нужен

К D поэтому присматриваюсь.

gaux ★★
()
Ответ на: комментарий от anonymous

>программистом полезно незнать о Ц++, чтобы сохранить разум.

Да, им полезно начать с джавы и шарпа;D

gaux ★★
()
Ответ на: комментарий от iZEN

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

DiKeert ★★
()

STL XX only. and anway, keep away Cxx-stuff.

anonymous
()
Ответ на: комментарий от askh

> Рацпредложение: есл....

Как тут у вас говорится, плюс пятьсот!

Я знаком с очень многими студентами, сильно не любящими подтирать за собой, и потому пишут на Java. Им даже не пытаются давать C и С++. Ибо ещё в школе они узнали что Java это будущее и очень круто, что программист это чувак с Java-ой. Это очень хорошо. Почему? Объясню. Факт наличия мега "технологий" программирования позволяет держать толпы и орды недопрограммистов подальше от нормальных программ. Кроме того нагромождения абстракций очень полезны для прикладных наук - люди развиваются и им как и любым учёным нужны лабораторные крысы. Зачем их пугать конкретикой и объяснять что есть процессоры и шины данных, адресов. Что есть временная и пространственная сложность алгоритмов. Что любой Java-программист способен из O(n) легко сделать O(n^2) а потом также легко доказать что так и было.

Ибо современное веяние это то что учатся своему делу только лохи, нормальные чуваки рубят бабло! И квинтессенция этому Java. Все домохозяйки ломанулись туда где бабло. Сама по себе Java может и хороша, но те кто там сейчас веет флагом, это ужос! Пройдёт ещё пару десятилетий и Java будет низкоуровневым отстоем а новые "программисты", ещё более необразованные, будут вещать про нейронные интерфейсы и что программировать будем на UMLv10.

alx_me ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.