Тут сегодня в debian-russian кто-то высказался, что де у C++ есть плюсы и минусы. Минусов больше. Не могу не согласиться. Я знаю целых два плюса C++. Оба - в названии.
Ну это как писать. Если не плодить виртуальных объектов - будет как на C.
А для больших систем тормоза от языка слабо зависят. Гном без плюсов не сильно быстрее КДЕ с плюсами.
> Java и то получается быстрее это преувеличение, правильно сказать - иногда получается написать на Java код который быстрее C++. Ну и упоминать рантайм C++ и тут же хвалить Java, которой только на запуск надо пару сотен мегабайт - это как бы нелогично
В синтаксическом сахаре и всяких вкусностях типа конструкторов с деструкторами. Восход Солнца руками через структуры и функции - делал, больше не хочу.
Если придираться, то невиртуальное наследование (которого в C нет) тоже не лишено смысла и раза полтора в жизни мной использовалось. Если не придираться, а по существу — то умеренное использование виртуального к проблемам с быстродействиеми не приводят. То есть, в 99% чувствительный к скорости выполнения код обычно по архитектуре не способен содержать таких сущностей, которые вызывали бы у меня желание напендюрить туда виртуальных вызовов. Разве есть места, где не так?
Например ради лучшего статического контроля. C++ даже 20-летней давности, без шаблонов и исключений, намного высокоуровнее Си (который чуть выше ассемблера). Пожалуй, даже Паскаля с наследниками обошёл. И при этом сохранил все низкоуровневые возможности.
no subject
Date: 2012-10-18 07:41 am (UTC)Ну это как писать. Если не плодить виртуальных объектов - будет как на C.
А для больших систем тормоза от языка слабо зависят. Гном без плюсов не сильно быстрее КДЕ с плюсами.
> Java и то получается быстрее
это преувеличение, правильно сказать - иногда получается написать на Java код который быстрее C++. Ну и упоминать рантайм C++ и тут же хвалить Java, которой только на запуск надо пару сотен мегабайт - это как бы нелогично
no subject
Date: 2012-10-18 07:44 am (UTC)А если не пользоваться виртуальными объектами и исключениями, то зачем вообще С++?
Ради темплейтов?
no subject
Date: 2012-10-18 07:49 am (UTC)no subject
Date: 2012-10-18 08:37 am (UTC)Виртуальные вызовы тормозят независимо от языка, хоть на C их напиши, хоть на хаскеле. Тут уж надо выбирать, что надо - скорость или гибкость.
no subject
Date: 2012-10-18 12:12 pm (UTC)no subject
Date: 2012-10-18 12:23 pm (UTC)На C++ то же самое делается темплейтами. Это, конечно, плохо, что для одного и того же используются разные механизмы.
no subject
Date: 2012-10-18 10:15 am (UTC)no subject
Date: 2012-10-18 10:20 am (UTC)no subject
Date: 2012-10-18 10:27 am (UTC)Если придираться, то невиртуальное наследование (которого в C нет) тоже не лишено смысла и раза полтора в жизни мной использовалось. Если не придираться, а по существу — то умеренное использование виртуального к проблемам с быстродействиеми не приводят. То есть, в 99% чувствительный к скорости выполнения код обычно по архитектуре не способен содержать таких сущностей, которые вызывали бы у меня желание напендюрить туда виртуальных вызовов. Разве есть места, где не так?
no subject
Date: 2012-10-18 03:55 pm (UTC)