Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
C *некотороми* и я согласен. 12.10.03 18:01 Число просмотров: 2966
Автор: amirul <Serge> Статус: The Elderman
|
> Но анализ говорит о том, что автор занимался C/C++ весьма > поверхностно. Фраза "Элементарные операции со строками > требуют знакомства с STL и шаблонами." меня порядком > развлекла :) Но сейчас просто что вспомню:
1) Два простейших цикла до 4-х миллиардов и рандом внутри. Скорость зависит от реализации самого rand, а не от того как язык компилит циклы (уж
это умеет делать компилятор любого языка). Если бы там был "правильный" рандом на MD5 к примеру, разница в скорости была бы еще больше.
2) Мутная прога. Непонятную программу можно написать на любом языке (и на виртовской линейке тоже), а вот эффективную - не всегда. То что это МОЖНО сделать не значит, что это следует делать.
3) for, который на самом деле можно сделать while-ом: покажите такой язык программирования, где нельзя.
4) Избыточность. То бишь наличие в C++ сходных и по функциям и (самое интересное) по получаемым результатам механизмов. Спорно. Чаще всего те или иные механизмы позиционируются на разных участках шкалы скорость-используемая память. Практически любую задачу, реализованную с помощью виртуальных функций можно переписать на шаблонах и наоборот, но шаблоны совсем не то же самое, что виртуальные функции.
5) Множственное наследование. Как аргумент против него: возможна ситуация, которую придется обходить. Ага. А если жить на улице, то квартиру не ограбят. Кроме того, вилкой можно выколоть себе глаз, так что давайте есть руками. Множественное наследование не исключает одиночное, а дополняет его. Никто не заставляет пользоваться множестенным наследованием, если не умеешь.
6) Критика printf-а. Следует различать сам язык и его библиотеку (хотя она тоже входит в стандарт языка). printf является обычной функцией, реализованной на языке. Иначе реализовать было просто нельзя. В паскале же ввод/вывод вообще введен в сам язык (в этом месте можно перечитать аргументы против страуструповского желания ввести в C++, причем не в язык, а в библиотеку, инстременты для создания GUI и работы с DB - автор непоследователен, вирту можно, страуструпу нельзя)
7) Для меня END LOOP ничуть не более понятен, чем } (если циклов, скажем штуки 4), но при этом набирать его гораздо дольше. Для обеспечения понятности во первых принято за закрывающей скобкой писать комментарий, к чему она относилась, во вторых все современные IDE позволяют быстро перейти к парной скобке - посмотреть чего там такое и вернуться обратно. Причем делается это горячими клавишами за пару секунд.
И т.д.. Сейчас больше не вспомню. Кое какие аргументы действительно имеют резон, но БОЛЬШИНСТВО не выдерживают критики. Скажем так, я встречал и более качественную критику C++, к которой я подкопаться не мог. Точно так же как встречал критику паскаля и других виртовских языков.
|
|
|