Здравствуйте, vdimas, Вы писали:
V>Там, где мне на шарповом проекте приходилось писать кучу утилит, хелперов и т.д., там на плюсах объем этих хелперов, во-первых, на порядки меньше (исходный код не в пример более повторно применим), во-вторых, сами эти хелперы пишутся быстрее и шире применимы.
Я бы хотел дополнительно отметить, что благодаря удачной компоновке как языка так и развитости оптимизаций — стоимость абстракций реально или нулевая или около того. А это, имхо, одно из необходимых условий для легкочитаемого и производительного кода.
С другой стороны то, что заложили в дотнет почти с самого начала, затем генерики — даже при туповатом джите показывает хорошие (удовлетворительные) результаты.
Опять же — C++ сам как язык долго стоял, дикая энерционность в поддержке стандартов от производителей компиляторов (про gcc наверное лучше промолчать — ведь его только что-бы скомпилировать — нужна правильная трава, а если кросс-компиляция и не дайбог ещё и какой-нибудь musl — то ещё и правильные патчи). Сейчас то ли стандартов стало больше (и новый на носу) но кажется сииуация всё куда лучше.
Но C++ безжалостен в плане набора. Печатать нужно много. Хотя мне вот лично, в некоторых случаях куда больше нравится когда хедер отдельно — можно сосредоточится на контракте класса. Когда код вперемешку — охвата не хватает. Object browser/class view/document outline и т.п. имхо не сильно решают: детали лезут слишком активно или фичу не умеет ide (document outline студией почему-то не поддерживается, хотя в 2017 ещё не смотрел это). Да и вообще — взяли и почитали файл. А тут ide. Х.з.

Понятно что в шарпе определил интерфейс и порядок, но — есть тысяча случаев когда интерфейс/контракт есть, но доп. публичных базовых классов или интерфейсов не хочется (не нужны). Короче — C# неповоротлив. C++ как раз очень подвижен и приспосабливаемый. Но ужа с ежом так никто и не скрестил — или няшность или хардкор.
Брюзжание:
Но, млин, банальное отсутствие тайп алиасов (прозрачные и не прозрачные) на уровне метаданных это жестковато, я уже не говорю о том, что ввести нормально свой тип на основе примитивных — нельзя. Ну энамы не в счёт. Да и вообще — более 10 лет застоя в JIT это жестко. Хотя дело начало двигаться.