В сообщении от 25 июля 2006 11:54 Vladimir Efremov
написал(a):
> > Только C++ - это другая идеология, и если вы ее не
> > принимаете, то использовать этот язык неудобно и вообще
> > глупо.
>
> Вот тут я бы хотел не согласиться :)
> Есть довольно много вещей, которые мы не понимаем (до
> конца, во всяком случае), но которыми не можем не
> ползоваться. Вспоминается высказывание Хевисайда
> (кажется) относительно применения преобразования Лапласа
> - "мы не понимаем, как работает пищевариение, но не
> отказываем себе в хорошем ужине".
>
> Так и с C++ - можно не очень разбираться в идеологии STL,
> а знать несколько практических приёмов - и при этом
> начисто избавиться от указателей, а взамен получить кучу
> простых в применении классов и алгоритмов, позволяющих
> строить программы с такой же лёгкостью, как, например, на
> Python (ну, почти). Есть, конечно, и оборотная сторона:
> можно попасть в ситуацию, когда диагностика компилятора
> будет абсолютна непонятна. А всё из-за какой-нибудь
> маленькой синтаксичекой ошибки.
Наверное я высказался слишком категорично - не идеология, а
модель. Особенно, если помнить, что все это реализует
единственная (если отбросить детали) платформа с
Фон-Неймановской архитектурой. То есть все эти модели - это
в основном способ представить то же самое с той или другой
стороны.
C++ - это реализация объектно-ориентированной модели
программирования. На мой взгляд удачная - то есть
соответствующая роли самой этой модели (опять же - по моему
мнению). И использовать этот язык нужно не всегда. Для меня
он удобен только в больших проектах, когда нужна
самодисциплина или интерфейс между исполнителями.
Наверное сказывается моя нынешняя ситуация, когда приходится
делать и тонкого клиента на C (это железка с Linux - не
Intel, но с 4Mb flash + 16 Mb RAM) и "умный" сервер на
достаточных ресурсах, где мне больше подходит C++
Как-то с одной стороны переключаться тяжело, но с другой я
знаю или догадываюсь, как C++ + библиотека реализуют то,
что я от них хочу (и возможно поэтому я не использую C++ на
клиенте, хотя такая возможность есть)
А насчет странных синтаксических ошибок в C++ - изучайте его
лучше и не стесняйтесь использовать "самоограничивающие"
конструкции: const, throw, explicit,.. - помогает :-)