Re[3]: Кому ваще этот С++ нужен?
От: 0BD11A0D  
Дата: 19.05.15 23:00
Оценка:
Здравствуйте, Константин, Вы писали:

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

К>Это ты Simula 67 сейчас обозвал "мощным объектно-ориентированным"?

Ничего про нее не знаю, кроме того, что вспомнил (возможно неправильно) из рассказа С. Сейчас посмотрел:

Simula 67 introduced objects,[1]:2, 5.3 classes,[1]:1.3.3, 2 inheritance and subclasses,[1]:2.2.1 virtual methods,[1]:2.2.3 coroutines,[1]:9.2 and discrete event simulation,[1]:14.2 and features garbage collection.[1]:9.1


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

BDA>>Во-первых, фокус с функционала переместился на «архитектуру».

К>Не столько на архитектуру, сколько на попытках запихнуть в стандартную С++ библиотеку функционал, который бы примерно одинаково работал на всех поддерживаемых платформах, т.е. и на PIC12, и на Itanium.
К>Поскольку этого практически невозможно достичь (слишком разные они все), имеем то шо имеем.

Подождите, но ведь C как-то умудряется примерно одинаково работать там и сям. Что мешало инкапсулировать printf? Допустим, то, что было в сях, обернули, чего не было — проигнорили. Разве это не будет достаточно логично? Но ведь так не сделали.

BDA>>Во-вторых, шаблоны пошли вразрез с тем, что добавлял Страуструп.

К>А с этим нет.
К>Это не шаблоны виноваты в том, что афтары STL и Boost их так используют.
К>В качестве примеров хороших, годных шаблонов посмотри на ATL, там тоже есть и строки, и контейнеры, и смартпоинтеры, только сделано всё по-нормальному, и работает обычно сильно быстрее, а иногда так даже на порядки быстрее, чем то же самое в STL.

На самом деле вы согласны, просто еще этого не знаете. Имелись в виду не абстрактные шаблоны, а the шаблоны, то есть те, что Степанов с Ли сочинили. Разумеется, шаблонные классы от Майкрософт (хоть ATL, хоть — в другом языке — FCL) лишены указанной... особенности. Но! В стандарт они не вошли, а вошло сами знаете что.

BDA>>Единственное преимущество, которое у плюсов остается, это ВЕНДОРОНЕЗАВИСИМОСТЬ.

К>Не только.
К>Например производительность, возможность писать низкоуровневый код если нужно, относительная кросс-платфременность.

Первые два пункта: это до тех пор, пока вы остаетесь в рамках старой парадигмы «Си с классами». Я встречал то ли на кремниевой тайге, то ли на геймдеффе (падонкавском, а не который .ру) душещипательный рассказ о неудовлетворительном падении перфоманса после попыток использовать (правильным образом, конечно) STL. То есть, при попытке использовать удобства, которые есть в других языках, в тех приложениях, которым перфоманс жизненно важен (3D-движках, например) результат будет принципиально неудовлетворительным. Что остается? Скорость в два раза выше в тех приложениях, в которых это не принципиально? Кого это волнует, кроме «пофиксившихся» на идее.

Третий пункт: я не думаю, что кросс-платформенность важна настолько, насколько мы привыкли думать. Возьмите мой пример с Джавой. У хостеров нет проблем с тем, чтобы запустить ее на своих серверах. Желания только нет. Как, впрочем, и плюсовые кастомные CGI.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.