Выше степень формализации (и не только за счет объектов) , еще большая степень ухода от низкоуровневого программирования, как следствие - больше ограничений или соглашений, которые обойти нельзя или трудно.
UPD
> критерии: скорость выполнения кода, скорость компиляции, скорость обработки
> даных.
С этим тоже все логично. Повышение универсальности оплачивается избыточностью. В том числе, избыточностью кода.
Не всегда, но очень часто, избыточность - причина того, что Вы привели в качестве критериев.
Другие языки программирования и технологии
почему C++ тупее чем C? (ответ знаю, но интересует ваше мнение)
Потому что плюс на плюс дает минус )))
А с чего это он тупее?
Решение задач, которые на него возложены, средствами, которые он предоставляет, порождает необходимость решения дополнительных, совершенно ненужных логических задач - эт да. Но C++ не тупее C.
Шаблоны и макросы. Их нельзя скомпилировать, их можно поставлять только в исходном коде. Организация модульности средствами препроцессора. Куча заголовочных файлов, которые приходится каждый раз парзить при компиляции - это о скорости компиляции.
Постоянное выделение/освобождение памяти в куче, копирование объектов (скажем, возвраты по значению и передача параметров в большой цепочке вызовов при инкапсуляции в стиле C++) - являются причиной падения производительности программ C++ в сравнении с программами на процедурных языках, но это всё фигня по сути.
Главная причина падения производительности программ - повышение абстрактности, которое достигается уточнением терминов и понятий предметной области до реализации средствами примитивов, поддерживаемых вычислительной платформой. Для того, чтобы перейти на более высокий уровень абстракции, необходимо, чтобы предыдущий уровень был законченным, робастным и притом достаточно гибким - а это порождает дополнительный код, слой в такое состояние слой приводящий, поддерживающий его и корректно это состояние снимающий. Добавим теперь сюда код, обслуживающий переносимость (например, контракты и инварианты, которые в данной конкретной ситуации излишни, но, в случае отрыва ОО-кода от контекста и перенесения его в другую систему, могут оказаться весьма полезными) - вот тут производительность падает драматически.
Впрочем, вычислительное оборудование средней категории сейчас обходится дешевле месячной зарплаты программиста C++ средней категории, так что падение производительности приложений - не главная беда, если только речь не идёт о мобильных и встраиваемых системах.
Решение задач, которые на него возложены, средствами, которые он предоставляет, порождает необходимость решения дополнительных, совершенно ненужных логических задач - эт да. Но C++ не тупее C.
Шаблоны и макросы. Их нельзя скомпилировать, их можно поставлять только в исходном коде. Организация модульности средствами препроцессора. Куча заголовочных файлов, которые приходится каждый раз парзить при компиляции - это о скорости компиляции.
Постоянное выделение/освобождение памяти в куче, копирование объектов (скажем, возвраты по значению и передача параметров в большой цепочке вызовов при инкапсуляции в стиле C++) - являются причиной падения производительности программ C++ в сравнении с программами на процедурных языках, но это всё фигня по сути.
Главная причина падения производительности программ - повышение абстрактности, которое достигается уточнением терминов и понятий предметной области до реализации средствами примитивов, поддерживаемых вычислительной платформой. Для того, чтобы перейти на более высокий уровень абстракции, необходимо, чтобы предыдущий уровень был законченным, робастным и притом достаточно гибким - а это порождает дополнительный код, слой в такое состояние слой приводящий, поддерживающий его и корректно это состояние снимающий. Добавим теперь сюда код, обслуживающий переносимость (например, контракты и инварианты, которые в данной конкретной ситуации излишни, но, в случае отрыва ОО-кода от контекста и перенесения его в другую систему, могут оказаться весьма полезными) - вот тут производительность падает драматически.
Впрочем, вычислительное оборудование средней категории сейчас обходится дешевле месячной зарплаты программиста C++ средней категории, так что падение производительности приложений - не главная беда, если только речь не идёт о мобильных и встраиваемых системах.
Это с какой стороны посмотреть...
Похожие вопросы
- Интересует Ваше мнение по поводу Фотошопа. Пиратка или не пиратка? Качать или покупать.
- Какие, по вашему мнению, основные недостатки у C++ ?
- Почему многие отдают предпочтение C++ а не C# ?
- Учу C++! Уже знаю: типы данных, циклы. условия, привидения и т. д учу 5дней. вот программа! Как норм за 5 дней?
- А почему программы написанные на C/C#/C++ имеют больший вес чем на tasm/masm?
- Почему C и C++ всегда соединяют между собой?
- Не стыдно ли для программисту зная C# не знать при этом С/C++?
- C++ Лучший учебник, по вашему мнению???
- Ребят почему все говорят что c++ тяжелее c#? Если посмотреть синтаkсис c++ и c#,то более читаемый синтаkсис будет у C++
- Учусь програмировать на C++ по книге "C++ для чайников".Проблема.