Здравствуйте, 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) По сравнению с С# нет вкусностей типа делегатов и потрясающе мощного рефлекшна.
ОК