Информация об изменениях

Сообщение Почему нужно идти в С/С++ от 13.03.2023 9:45

Изменено 13.03.2023 10:10 tapatoon

Почему нужно идти в С/С++


Не раз видел на форуме обсуждения типа "куда идти дальше" и т.п.

Отвечаю — в С/С++

Объясняю на примерах почему

Пример1
У нас куча сущностей, каждая из которых может поддерживать любой набор из множества функциональных методов. Что мы делаем в С++? Мы делаем как-то так:
#include <библиотека общей функциональности>
class Entity1 : public func1, func2 {};
class Entity2 : public func1, func3 {};
class Entity3 : public func1 {};


4 строчки
кто меньше?
C#? Java? А ну-ка, объясните нам, дуракам, почему множественное наследование плохо? Забываю постоянно

Пример2
Вы точно знаете тип откуда-то взятых данных. Но описания для компилятора нет.
В С мы конвертим void* во что хотим. За это нас ненавидят сериализаторы и объясняют почему это плохо

Пример3
Вы используете стороннюю библиотеку, которая багами побеждает GC. Ваши действия?
В С/С++ проблема не может возникнуть априори

С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас
Почему нужно идти в С/С++


Не раз видел на форуме обсуждения типа "куда идти дальше" и т.п.

Отвечаю — в С/С++

Объясняю на примерах почему

Пример1
У нас куча сущностей, каждая из которых может поддерживать любой набор из множества функциональных методов. Что мы делаем в С++? Мы делаем как-то так:
#include <библиотека общей функциональности>
class Entity1 : public func1, func2 {};
class Entity2 : public func1, func3 {};
class Entity3 : public func1 {};


4 строчки
кто меньше?
C#? Java? А ну-ка, объясните нам, дуракам, почему множественное наследование плохо? Забываю постоянно

Пример2
Вы точно знаете тип откуда-то взятых данных. Но описания для компилятора нет.
В С мы конвертим void* во что хотим. За это нас ненавидят сериализаторы и объясняют почему это плохо

Пример3
Вы используете стороннюю библиотеку, которая багами побеждает GC. Ваши действия?
В С/С++ проблема не может возникнуть априори

С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас