@qwqeqwe2017

Скажите, эта паста верна? Если нет, то почему?

У меня есть коллега, который презирает уровни доступа С++. Он работает на низком уровне, использует С++, как С с классами. Драйвера, софт для embedded и т.п. Когда я ему начинаю говорить про типобезопасность, инкапсуляцию, он говорит, что возьмет и получит нужные данные по смещению. Ну и что ему возразишь? Ничего. Он прав. Если кто-то захочет - он сделает. Даже в мейнстримовых песочницах можно. Вопрос цены только.
Конечно это не значит, что нужно все это забыть. Но категоричность сбавить можно было бы :)
  • Вопрос задан
  • 354 просмотра
Пригласить эксперта
Ответы на вопрос 4
arusef
@arusef
Novice .NET dev
В данном случае запрашиваемая вами "истинность" неприменима. Это всего лишь его мнение по поводу использования такого инструмента, как С++, причем в весьма узком смысле: он пишет дрова и софт для embedded. То есть, если это "С с классами", то зачем ему вообще нужен С++? Очевидно же, что от ООП и стандартной библиотеки там, где он работает, практически ничего нет.
Но теперь по существу. Уровни доступа - чисто ООПшная штука для облегчения жизни, и используя нормальные объекты С++ в сыром виде всегда есть большой риск выстрелить себе в ногу. С одной стороны, потому что private члены, по логике, лучше не трогать снаружи, а с другой - зачем использовать смещения, когда компилятор всё это и так делает за нас в виде обычных полей? Ещё раз: уровни доступа защищают код не от злоумышленников, а от нас самих.
В общем, печально, что есть такие "специалисты" в 2017.
Ответ написан
@red-barbarian
Самый простой язык это ассемблер. Никаких недосказанностей, что написано , то и выполнится. Только программы (тексты) получаются непонятные.
ООП и прочие парадигмы придуманы, что бы уменьшить сложность. Т.е. текст должен быть понятен как автору через пол года, так и человеку который читает его впервые.
Именно поэтому так много говорят о скромности программиста. Нужно понимать, что интеллект не безграничный и лучше написать просто, без хакерских показух.
Конкретно, ООП придумано для разбивания модели на части. Этот подход очень сильно помогает уменьшить сложность программы. При правильном подходе.
Итог. Нужно смотреть на вещи:
- будет ли программа активно развиваться?
- будет ли программа сопровождаться?
- структура программы не совсем ясная?
И т.п. Если ответы "да", то возможно следует посмотреть на оо подход.
Ответ написан
dio4
@dio4
team leader, system engineer, master of sports
Бен Клеменс: "Те, кто хотел стабильности и переносимости, писали на С. Те же, кому были нужны все новые и новые возможности, чтобы купаться в них, как в ванне с шампанским, получили в свое распоряжение С++. И все были счастливы." "Язык С в XXI веке"
ссылка тут
Ваш коллега прав.
А вот и индекс использования языков программирования. Где С и где С++? И кстати, где все остальные? )) Выводы сами делайте. Добавлю от себя лично, что С стабильно в тройке первых! И все остальное, сколь-нибудь значимое - тоже на С написано, не забывайте!
ссылка тут
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
There is more than one way to skin a cat. Я не понял, честно говоря, в чем состоит вопрос? Чел пишет, насколько я понял, дрова. Вы не понимаете, почему он не использует "магию С++"? А она ему нужна? Я так понял, Вы ему не начальник, не подчиненный, Ваша работа от него не зависит. Так не все ли равно Вам, каким образом он пишет - с классами, без классов, да хоть на ассемблере :) если код достаточно откомментирован.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы