Фишка вот в чём. Всё это нет никакого резона писать не только на С++, но и на С. Можно на ассемблере. Если нужно только сбрасывать в цикле сторожевой таймер, или только передать одно значение на ЦАП. А если программа достаточно сложная, должна принимать решения в зависимости не от 3 -10, а от 500 условий? Причём условий имеющих разную природу? С++ нужен не для того, чтобы делать что-то через него. А для того, чтобы описать на нём предметную область, выделить в ней объекты-субъекты, определить что каждый из них может делать, и забыть об их внутреннем устройстве. Каждый из объектов теперь можно считать "чёрным ящиком", о котором мы знаем как он себя ведёт и собираем систему из них. Это и есть ООП. Конечно, любую предметную область можно описать и на процедурно-ориентированном языке. При этом хочешь -- не хочешь существует суперобъект "ПРОГРАМА", который всё и делает. Но предметные области не состоят из единственного объекта. Не состоят они и из "действий", непонятно кем производимых, над "данными". Предметные области состоят из сущностей которые взаимодейтствуют, влияют друг на друга, изменяют состояния друг друга, и, тем самым изменяют состояние всей системы. Так что объектно-ориентированное описание получается более адекватным. По поводу лаконичности: Лаконичным должен быть исполняемый код. Как этого добиться -- проблемы компилятора. Справляется. А исходный код должен быть понятен хотябы автору, даже через неделю. Ну устроены мы так, что подавай нам избыточность.
|