Re[2]: Что Вам мешает в С++?
От: remark Россия http://www.1024cores.net/
Дата: 21.06.08 20:29
Оценка:
Здравствуйте, StevenIvanov, Вы писали:

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


R>>Что Вам мешает в С++?


SI>если вкратце — отсутствие мощности и выразительности лиспа. Насколько это красивый язык — и не описать.


SI>подробнее -


SI>1) Очень высокая сложность языка.

SI>следствия:
SI>— сложность обучения => сложность подготовки специалистов (контрпример — тот же Lisp, который описывается несколькими предложениями и вообще прост как 3 рубля. Либо тот же VB )
SI>— сложность написания спец тулов (для С# и рефакторер нормальный есть и форматтер и дебаггер и код-эксплорер в одной IDE и еще куча всего. Для С++ тоже вроде как есть, но какое-то некрасивое все)
SI>— сложность написания компилятора 100% соответствующего стандарту (только Comeau C++ 100% ISO compliant). Из за этого еще одно "под-следствие" — internal compiler error'ы Я лично сталкивался несколько раз
SI>— сложность в разработке coding standards/coding practices

OK

SI>2) Устаревшая система сборки сложного проекта (#include/подключение сторонних библиотек/build проекта) — уже упоминалось. Решено в C#.


OK

SI>3) Непродуманная стандартизация.

SI>— Включены малополезные вещи типа экспорта шаблонов и теневой системы типов, исключено такое, как например стандарт на манглер, что не позволяет по-человечески экспортировать класс в библиотеке, который можно использовать в проекте, собираемом другим компилятором (этой частной проблемы нет, например в C#).
SI>— Можно еще много чего вспомнить, надо только вот полазить по этому форуму, но лень что-то.

По поводу манглинга имен — OK
По поводу экспорта шаблонов и теневой системы типов — а с какой периодичностью это мешает в работе — приводит к ошибкам или существенно увеличивает время разработки?
з.ы. а что такое теневая система типов?
з.з.ы. а для C# много компиляторов? Их действительно можно использовать так что одним скомпилировали, а используем с другим?


SI>4) Невозможность быстро экспортировать в С++ крупный проект на С — возникает куча утомительных ошибок с преобразованием типов и проч. Не совсем недостаток, просто drawback из-за того, что в С++ введены такие вещи, как строгая типизация


Тут непонятно. А в какой язык будет легче экспортировать крупный проект на С?

SI>5) Макросы, живущие отдельно от языка. Причина многих бед и катаклизмов Контрпример — в LISP макросы не являются злом, напротив придают языку колоссальную мощь.


Тут тоже не понятно. Если они для тебя причина постоянных бед, то зачем ты их используешь?

SI>6) По сравнению с С# нет вкусностей типа делегатов и потрясающе мощного рефлекшна.


ОК


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.