vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Тут сегодня в debian-russian кто-то высказался, что де у C++ есть плюсы и минусы. Минусов больше.
Не могу не согласиться. Я знаю целых два плюса C++. Оба - в названии.

Date: 2012-10-18 07:41 am (UTC)
From: [identity profile] max630.net
> сильно увеличивается ... время выполнения

Ну это как писать. Если не плодить виртуальных объектов - будет как на C.

А для больших систем тормоза от языка слабо зависят. Гном без плюсов не сильно быстрее КДЕ с плюсами.

> Java и то получается быстрее
это преувеличение, правильно сказать - иногда получается написать на Java код который быстрее C++. Ну и упоминать рантайм C++ и тут же хвалить Java, которой только на запуск надо пару сотен мегабайт - это как бы нелогично

Date: 2012-10-18 07:49 am (UTC)
From: [identity profile] potan.livejournal.com
Темплейты - очень удобный способ создавать огромный код и не помещающиеся в кеш объекты ;-).

Date: 2012-10-18 08:37 am (UTC)
From: [identity profile] max630.net
Темплейты всё же лучше чем программирование на препроцессоре

Виртуальные вызовы тормозят независимо от языка, хоть на C их напиши, хоть на хаскеле. Тут уж надо выбирать, что надо - скорость или гибкость.

Date: 2012-10-18 12:12 pm (UTC)
filin: (Default)
From: [personal profile] filin
На хаскеле их можно развиртуализовать на этапе компиляции.

Date: 2012-10-18 12:23 pm (UTC)
From: [identity profile] max630.net
Это делается только в тех случаях когда тип можно определить на этапе компиляции.

На C++ то же самое делается темплейтами. Это, конечно, плохо, что для одного и того же используются разные механизмы.

Date: 2012-10-18 10:15 am (UTC)
From: [identity profile] taelhash.livejournal.com
Э-э-э. Классы?

Date: 2012-10-18 10:27 am (UTC)
From: [identity profile] taelhash.livejournal.com
В синтаксическом сахаре и всяких вкусностях типа конструкторов с деструкторами. Восход Солнца руками через структуры и функции - делал, больше не хочу.

Если придираться, то невиртуальное наследование (которого в C нет) тоже не лишено смысла и раза полтора в жизни мной использовалось. Если не придираться, а по существу — то умеренное использование виртуального к проблемам с быстродействиеми не приводят. То есть, в 99% чувствительный к скорости выполнения код обычно по архитектуре не способен содержать таких сущностей, которые вызывали бы у меня желание напендюрить туда виртуальных вызовов. Разве есть места, где не так?

Date: 2012-10-18 03:55 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Например ради лучшего статического контроля. C++ даже 20-летней давности, без шаблонов и исключений, намного высокоуровнее Си (который чуть выше ассемблера). Пожалуй, даже Паскаля с наследниками обошёл. И при этом сохранил все низкоуровневые возможности.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
1516 17 18 192021
22232425262728
2930     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2025 08:33 pm
Powered by Dreamwidth Studios