Основная причина использования C ++ вместо управляемого языка в наши дни состоит в том, чтобы получить преимущества, которые C ++ приносит в таблицу. Одним из столпов C ++ является «вы не платите за то, что вам не нужно». Однако можно утверждать, что иногда вы не хотите платить за обратную совместимость с C. Многие из странных особенностей C ++ можно отнести к этой обратной совместимости. Какие еще языки существуют, где «вы не платите за то, что вам не нужно», включая обратную совместимость с C?
Редактировать / уточнить: настоящий убийца для меня во втором предложении. Существует ли действительно разработанный с нуля язык, который не навязывает то, что вам не нужно, в вашем коде? C ++ имеет это как философию дизайна: не хотите RTTI? Не существует Не хотите вывоз мусора? Это не там. Проблема с C ++ в том, что он (IMO) нарушает это требование, когда отказывается отрываться от прошлого. Я не хочу, чтобы обратная совместимость с 20-летним кодом мешала мне двигаться вперед. С ++ не хочет этого делать. Что есть / имеет?
Edit2: я полагаю, я должен был быть более ясным о стоимости. Есть несколько потенциальных затрат. Первоначально я сосредоточился на стоимости времени выполнения.
В C ++ полиморфизм через виртуальные методы имеет свою стоимость. Но не все методы оплачивают эту стоимость. Невиртуальный метод C ++ вызывается с теми же затратами времени выполнения, что и обычная старая функция C (имеющая хотя бы один параметр). C ++ не требует от вас использования полиморфизма. В других языках ООП все методы являются виртуальными, поэтому нельзя избежать затрат на полиморфизм.
Затраты времени выполнения являются наиболее важными, но другие затраты смягчают это. Очевидно, что язык ассемблера будет иметь наименьшие накладные расходы во время выполнения, но затраты на письменное и техническое обслуживание языка ассемблера являются огромным ударом по нему.
Имея это в виду, идея состоит в том, чтобы найти языки, которые предоставляют полезные абстракции, которые, когда они не используются, не влияют на затраты времени выполнения.