Не раз видел на форуме обсуждения типа "куда идти дальше" и т.п.
Отвечаю — в С/С++
Объясняю на примерах почему
Пример1
У нас куча сущностей, каждая из которых может поддерживать любой набор из множества функциональных методов. Что мы делаем в С++? Мы делаем как-то так:
#include <библиотека общей функциональности>
class Entity1 : public func1, func2 {};
class Entity2 : public func1, func3 {};
class Entity3 : public func1 {};
4 строчки
кто меньше?
C#? Java? А ну-ка, объясните нам, дуракам, почему множественное наследование плохо? Забываю постоянно
Пример2
Вы точно знаете тип откуда-то взятых данных. Но описания для компилятора нет.
В С мы конвертим void* во что хотим. За это нас ненавидят сериализаторы и объясняют почему это плохо
Пример3
Вы используете стороннюю библиотеку, которая багами побеждает GC. Ваши действия?
В С/С++ проблема не может возникнуть априори
С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас