Re: Почему настоящие программисты избегают C++
От: csvb  
Дата: 19.02.05 07:56
Оценка:
Здравствуйте, d Bratik, Вы писали:

DB>1.Отсутствие модулей. Имитация понятия модуль в виде пары h-файл – cpp-файл приводит к многочасовым компиляциям системы.


DB>2.Использование целочисленных типов данных без знака (unsigned int) для номеров элементов и количественных значений в стандартной библиотеке stdc++. Приводит к следующим ошибкам:


DB>
DB>std::vector<int> v;
DB>// Следующий код работает бесконечно, поскольку (size_type)(-1) == 4 млрд.
DB>for (std::vector<int>::size_type i = 0; v.size() - 1; ++i)
DB>{
DB>  ...
DB>}
DB>


DB>3.Отсутствие встроенной проверки на выход за диапазоны массива. Приводит к необходимости писать «обертки» для классов-контейнеров (в частности, для класса vector).


DB>4.Отсутствие встроенных средств инициализации динамической памяти нулями при конструировании объектов оператором new. Оборачивается не выигрышем, а проигрышем в производительности, поскольку приводит к необходимости писать код инициализации в конструкторах.


DB>5.«Автоматизм» конструкторов и деструкторов для объектов, создаваемых динамически и имеющих виртуальные методы; работа виртуальных методов как не виртуальных при их вызове из конструкторов и деструкторов; отсутствие стандартного базового класса. Значительно затрудняет решение проблемы повторного входа в объекты (reentrance problem) при создании библиотек визуальных компонентов и систем GUI.


DB>6.Отсутствие оператора try {…} finally {…}. Приводит к созданию программ, неустойчивых к исключительным ситуациям. Попытка имитировать этот оператор с помощью оператора try {…} catch {…} приводит к большой избыточности кода.



Более 15 лет пишу деловой и системный софт на С++ для Windows и Unix (Linux).
Перечисленные проблемы никогда не были важными.
Исходя из своего опыта: у настоящих программистов другие проблемы.
P.S.:
С уважением отношусь к Delphi и C++ Builder,
но не встречал среди коллег, использующих данное ПО,
проектов хотя бы в 100 тысяч строк кода.
Согласитесь, весьма небольшой объем.
P.P.S.:
К сожалению, Borland практически перестал развивать линию C++,
хотя, на мой взгляд, вплоть до Borland C++ 4.0, это был
лучший компилятор.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.