ООП - зло и не только для микроконтроллеров

Beginer123
Offline
Зарегистрирован: 23.11.2018

весь текст в общем-то здесь: https://habr.com/ru/post/451982/

От себя только добавлю - это ровно то, чему меня учил Архат и похоже именно это и стало причиной его тролления тут. Он оказался - прав: ООП не просто зло, и не столько средство распила буджетов программистами, сколько хорошо встроенная в ИТ-отрасль диверсия.

комментировать не буду, не силен в теориях, да и так .. студент, и не самый лучший. Просто на почитать - очень полезно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ой, Архатовский клоняра нарисовался. И, как всегда, бредит. Держите меня семеро :)

negavoid
Offline
Зарегистрирован: 09.07.2016

Почитал, сочувствую автору - поляку (или чеху, судя по фамилии?). ООП - лишь инструмент. Применяет его девелопер. Данному девелоперу удобнее свои костыли? - ок, это его право и его видение. Будет работать в команде из 100 человек с базой на миллионы sloc - может, всё же, допоймёт, для чего же нужен ООП.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Архат, ты ведь заеб@л уже своими срачами и вот очередной вброс. Обслужи как себя сам! Подтяни второго клона (от которого вчера писал) и пусть твои клоны меж собой посрутся, а мы попкорн поедим.

sadman41
Offline
Зарегистрирован: 19.10.2016

Острые концы яиц не просто зло, и не столько средство распила буджетов поварами, сколько хорошо встроенная в пищевую отрасль диверсия.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ля, чо творится :) Вчера сашка-алергик поносом промчался, щас у архаровца обострение. Не даёт покоя желание лаврами обрясть :))

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Так, Архатушка вчера тоже отметился. Я не был до конца уверен, но сейчас уже сомнений не осталось.

b707
Offline
Зарегистрирован: 26.05.2017

Beginer123 пишет:

 Он оказался - прав:

откуда такой вывод? оттого что какой-то автор решил потроллить программисткое сообщество "альтернативным мнением"?

Знаете. в чем разница между автором материала и Архатом? - в том что первый намеренно стебется. а архат искренне верит во всю эту чущь типа "заговора девелоперов"

nik182
Offline
Зарегистрирован: 04.05.2015

Только вчера целое ессе написал против ООП в МК и вот оно сегодня опять вылезло. 

ДОЛОЙ ООП ИЗ МК! 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

nik182 пишет:

ДОЛОЙ ООП ИЗ МК! 

Надеюсь, это стёб.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

nik182 пишет:

ДОЛОЙ ООП ИЗ МК! 

Аминь!

nik182
Offline
Зарегистрирован: 04.05.2015

Это частичный стеб. При програмировании систем реального времени ООП всегда будет уступать по скорости реакции прямому программированию. Вот поэтому долой из РВ. В постобработке сколько угодно. 

sadman41
Offline
Зарегистрирован: 19.10.2016

А что считать постобработкой? Вот, к примеру, существует библиотека Ethernet. Классы там, инкапсуляция по полной программе. Долой ея или нет?

nik182
Offline
Зарегистрирован: 04.05.2015

Не припомню я что б эзернет РВ называли. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Так и я не припомню, чтобы какие-то ООП-штучки в рилтайме юзали. Поэтому хотел уточнить что именно долой.

Green
Offline
Зарегистрирован: 01.10.2015

Да и Беня плюсы не переваривает...)

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Мужики, Вы чего обсуждаете? 

Архат привёл идиотскую, безграмотную статью в стиле "я не умею проектировать объектную среду и у меня получается частокол ссылок, а потому в топку её" и Вы кинулись это обсуждать и даже с этим спорить?

Ну поспорьте ещё вот с этими - https://theflatearthsociety.org/home/ - или с этими - http://www.mhc.ru

С дураками опасно спорить - люди могут между Вам разницы не заметить!

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, почему сразу нельзя спорить? Как говаривал марк Твен: «Право на глупость — одна из гарантий свободного развития личности».

sadman41
Offline
Зарегистрирован: 19.10.2016

Как Вы такие сайты находите?

Нет, я вполне могу понять причину излишнего увлечения инкапсуляцией, разбиением на слои API и пр. Программизмом занимаются люди с определённым складом ума, который, замечу, в независимости от воли индивида, диктует потребность упорядочить всё. Нормы в этом деле нет, поэтому один считает некий уровень нормальным, второй - шизофреническим. Функциональное программирование так же может быть подвержено оверинжинирингу (либо субъективной оценке оного) с излишней декомпозицией алгоритма. 

Да и в конце концов - многие ли останавливаются на "последней" рюмке водки? А природа процесса тут точно та же...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

Как Вы такие сайты находите?

Про себя скажу. - много тусуюсь на научных и околонаучных мероприятиях по всему миру. Там в курилках такого наслушаешься. Ну, а когда уже знаешь, что общество сторонников плоской земли существует, сайт найти - как два пальца :)

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

sadman41 пишет:

Как Вы такие сайты находите?

Петрович меня опередил. Я только хотел написать, что я не находил - это он как-то тут ссылку давал.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Реально тема какая то из пальца высосаная.... Не нравится не ешь. Кто то заставляет ?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ворота пишет:

С дураками опасно спорить - люди могут между Вам разницы не заметить!

+100500

Green
Offline
Зарегистрирован: 01.10.2015

Так разбейте дураков одной фразой! Или примером. Что бы всем было ясно и бесповоротно. А то ведь сомнения гложат...) Для ПК понятно, а для МК? А то всё круглая, круглая...)

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

nik182 пишет:
Это частичный стеб. При програмировании систем реального времени ООП всегда будет уступать по скорости реакции прямому программированию. Вот поэтому долой из РВ. В постобработке сколько угодно.
Когда учился, проходили лабы на серии К589, на секциях КМ1804 был только теоретический курс.
Когда практически начал работать с однокристалками, были КР1816ВЕ51 и КМ1801ВМ3.
Ядро 51-е нравилось, а pdp-11 ещё больше нравился. Ни о каком ООП и не слыхивал тогда.
Прошди годы... Сменилось государство...
Вдруг неожиданно узнал что сигнальники в модемах уже на си программируются, был очень удивлен, как же так, ведь на асме всегда быстрее.
Может ООП не так уж и плох ;)

Green
Offline
Зарегистрирован: 01.10.2015

Алексей. пишет:

Может ООП не так уж и плох ;)

Вот, вот. Нужно ведь только объяснить людЯм в чём фишка. Понятно что мода, что тенденции, что без этого никуда... Но на самом деле, реально, в чём выигрыш? Для МК имеется ввиду.

nik182
Offline
Зарегистрирован: 04.05.2015

О! РDP-11 ядро. Я его тоже люблю до сих пор. Короткая и гибкая система комманд. Писать асм было легко.

А плох или хорош ООП как всегда упирается в конкретного человека. Если понимаешь, что ты делаешь, что приобретаешь и что теряешь от применения ООП то от его применения будет польза. Используя бездумно, следуя моде, можно таких монстров нагородить. Работать то будет, но вопрос на сколько эффективно. 

В любом случае за всё надо платить. За удобства ООП увеличением использования памяти и уменьшением быстродействия. Где эта плата не имеет принципиального значения для выживаемости системы применения ООП вполне оправдано. Имхо. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

мне, ни разу не программисту, ассемблер на PIC-ах нравится )))

а насчет плоской земли, буквально последние сообщения

bwn
Offline
Зарегистрирован: 25.08.2014

Beginer123 пишет:

От себя только добавлю - это ровно то, чему меня учил Архат и похоже именно это и стало причиной его тролления тут. Он оказался - прав:

Версия 2.0? Новый Левий Матфей? 
Осталось собрать еще одиннадцать и не забыть про Иудушку. Ну а форумчане это, по видимому, синедрион. А кто будет Иродом, Понтием и Лонгином? А, вспомнил, на Понтия Пилата, Александр заявлялся.
Кароч, с апостолами проблемка, одного явно мало.((((

Green
Offline
Зарегистрирован: 01.10.2015

ua6em пишет:

мне, ни разу не программисту, ассемблер на PIC-ах нравится )))


Не, ассемблер PIC как раз таки г.но.( То ли дело 8051.)

sadman41
Offline
Зарегистрирован: 19.10.2016

Green пишет:

ua6em пишет:

мне, ни разу не программисту, ассемблер на PIC-ах нравится )))


Не, ассемблер PIC как раз таки г.но.( То ли дело 8051.)

Классический импринтинг прям ))

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

ООП - результат комерционализации программного облеспеччения, когда привлекается много людей и новые без понятия какие  например переменные  использовать, поэтому ввели иерархию через  наследников (объекты) и  всякие заморочки с переменными. Это казалось логично, для МК это  тупизм. Недавно столкнулся, взбесило реально.

Статья понравилась,  некоторые веши вижу в новых горе бибдлиотеках для ардуино после перехода  на GCC C11 началась шизофрения  по созданию классов и структуризация  пограмм, вместо  нормальной работы библиотеки, некоторые авторы даже  хвалятся этим  readme -мы  перешли на GCC C11 - наш вывод стал более  правильный и программа лучше читается,  пишет автор - Долба.б)))

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Green пишет:

Нужно ведь только объяснить людЯм в чём фишка. 

Каким людям? Архату? Ну-ну, объясняй. У меня как раз и попкорн ещё остался :)

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

bwn пишет:
Лонгином?
Выдвигаю свою кандидатуру. Голосуйте за меня! Готов к дебатам, если чо.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

bwn пишет:

Beginer123 пишет:

От себя только добавлю - это ровно то, чему меня учил Архат и похоже именно это и стало причиной его тролления тут. Он оказался - прав:

Версия 2.0? Новый Левий Матфей? 
Осталось собрать еще одиннадцать и не забыть про Иудушку. Ну а форумчане это, по видимому, синедрион. А кто будет Иродом, Понтием и Лонгином? А, вспомнил, на Понтия Пилата, Александр заявлялся.
Кароч, с апостолами проблемка, одного явно мало.((((

Prove to me that you're divine

change my water into wine

That’s all you need do

Then I’ll know it’s all true

C’mon King of the Jews...

$)))))

(c) Знают все!

leks
Offline
Зарегистрирован: 22.10.2017

Уверуйте, легче станет.

Говорят в те давние времена больше сотни было подстать пророку.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Green пишет:

ua6em пишет:

мне, ни разу не программисту, ассемблер на PIC-ах нравится )))


Не, ассемблер PIC как раз таки г.но.( То ли дело 8051.)

с 8051 дел не имел

Green
Offline
Зарегистрирован: 01.10.2015

Семейство x51 сейчас опять популярность набирает, ввиду низкой цены (~$0,25). Селево не даст соврать.)

Beginer123
Offline
Зарегистрирован: 23.11.2018

Ой, сколько понаписали-то! :)

Только комментарии к статье значительно информативней и солидней что-ли.

А может кто-нибудь в двух словах пояснить третью ссылку из статьи: http://wiki.c2.com/?ArgumentsAgainstOop ? А то с гугло-толмачем у меня как-то плохо получилось, мало что понял. Особенно в приложении к программированию микроконтроллеров Ардуино УНО, Нано - они же как "главные".

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Вот ты и поясни, а мы послушаем. Нападать на инструмент и драть глотку о его вреде (или пользе) - это больше по твоей части.

Так что, поясняй родной. Никто, кроме тебя! Тем более, ты в этом деле спец, тебя же

Beginer123 пишет:
учил Архат
Не расколешься, кстати, как именно учил? По-старинке, с помощью зеркала, или хайтекно - через ютуб?

b707
Offline
Зарегистрирован: 26.05.2017

Beginer123 пишет:

 гугло-толмачем у меня как-то плохо получилось, мало что понял.

Вмексто того чтоб шарится по всяким левым сайтам и устраивать у нас тут срач - лучше б английский подтянули

Beginer123
Offline
Зарегистрирован: 23.11.2018

b707 пишет:

Beginer123 пишет:

 гугло-толмачем у меня как-то плохо получилось, мало что понял.

Вмексто того чтоб шарится по всяким левым сайтам и устраивать у нас тут срач - лучше б английский подтянули

С удовольствием, но такое обилие терминов, по большей части мне малознакомых и слабопонятных, делает текст трудночитаемым. Вот и попросил местных гуру прокомментировать что там имелось ввиду про вредность ООП в микроконтроллерах для Ардуино.

Вот взять типовой класс String - оно верно для него или нет?

sadman41
Offline
Зарегистрирован: 19.10.2016

Beginer123 пишет:

Вот и попросил местных гуру прокомментировать что там имелось ввиду про вредность ООП в микроконтроллерах для Ардуино.

Вот взять типовой класс String - оно верно для него или нет?

Использование за обедом полного набора столовых приборов вместо одной ложки - это полезно или вредно? 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Наслаждаясь приступом прокрастинации (ну не страдать же от него, в самом деле?) потрачу немного времени...

1. Стринг, как и векторы и списки и так дале не могут быть плохими или хорошими.

2. И даже в МК. Если в задаче нет недостатка памяти, то можно написать со стрингами, перерасход памяти не важен для задачи.

Ну вот как бы проиллюстрировать? - Если нужно собачку в космос запустить, вот кровь-из-носу, как нужно, и есть только примитивные средства управления, то можно доводить до 100% использованиея всех ресурсов, вычищать и отттачивать каждый байт кода. То есть прикладывать очень ДОРОГИЕ человеческие ресурсы, компенсируя недостаток материальных.

Вот отстраненная иллюстрация: я живу в доме под Москвой, ты - в Новосибирске. Я могу доехать до тебя относительно удобно на машине, очень удобно - на моем кемпере (автобус с душем, туалетом, кухней), супербыстро - на самолете, и долго, под дождями, с гамаком и палаткой - но мотоцикле. Как опытный байкер - я конечно могу использовать мотоцикл. И топлива меньше потрачу и извращенное удовольствие получу: ветер, косуха, романтика ;)). Вот так и опытный програмист - может выжать досуха ресурсы AVR просто из (того самого) извращенного удовольствия. Но нахера? Если не стоит задача самоутверждения: "Зырьте, как я могу!!!", то проще добраться от Москвы до Новосиба - на машине, на крайняк - на поезде. Продолжая аналогию - нужно выбирать инструмент который УДОБНО использовать и на него хватает средств, а не совершать чудеса героизма. В хобби, если человеку не удобно переучивать себя, то можно купить контролер побольше. Как  человек ставит задачу?  Можно решать именно задачу (попасть из Москвы в Новосиб), можно ставить другую задачу: "впихнуть в АВР некий код", аналог - "проехать 3500 км на байке". Это разные задачи. Обе имеют право на существование. И решаются по-разному.

-------------------------

Мне показалось, что у тебя случилась подмена понятий. Ты считаешь архиважной вторую задачу, хотя она чаще всего - совсем не актуальна.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

sadman41 пишет:

Использование за обедом полного набора столовых приборов вместо одной ложки - это полезно или вредно? 

Да ладно, ложки.  Но там-то предлагают по-старинке, мясо руками рвать, сурово вглядываясь из пещеры во тьму. 

Beginer123
Offline
Зарегистрирован: 23.11.2018

wdrakula пишет:

Наслаждаясь приступом прокрастинации (ну не страдать же от него, в самом деле?) потрачу немного времени...

1. Стринг, как и векторы и списки и так дале не могут быть плохими или хорошими.

2. И даже в МК. Если в задаче нет недостатка памяти, то можно написать со стрингами, перерасход памяти не важен для задачи.

Ну вот как бы проиллюстрировать? - Если нужно собачку в космос запустить, вот кровь-из-носу, как нужно, и есть только примитивные средства управления, то можно доводить до 100% использованиея всех ресурсов, вычищать и отттачивать каждый байт кода. То есть прикладывать очень ДОРОГИЕ человеческие ресурсы, компенсируя недостаток материальных.

Вот отстраненная иллюстрация: я живу в доме под Москвой, ты - в Новосибирске. Я могу доехать до тебя относительно удобно на машине, очень удобно - на моем кемпере (автобус с душем, туалетом, кухней), супербыстро - на самолете, и долго, под дождями, с гамаком и палаткой - но мотоцикле. Как опытный байкер - я конечно могу использовать мотоцикл. И топлива меньше потрачу и извращенное удовольствие получу: ветер, косуха, романтика ;)). Вот так и опытный програмист - может выжать досуха ресурсы AVR просто из (того самого) извращенного удовольствия. Но нахера? Если не стоит задача самоутверждения: "Зырьте, как я могу!!!", то проще добраться от Москвы до Новосиба - на машине, на крайняк - на поезде. Продолжая аналогию - нужно выбирать инструмент который УДОБНО использовать и на него хватает средств, а не совершать чудеса героизма. В хобби, если человеку не удобно переучивать себя, то можно купить контролер побольше. Как  человек ставит задачу?  Можно решать именно задачу (попасть из Москвы в Новосиб), можно ставить другую задачу: "впихнуть в АВР некий код", аналог - "проехать 3500 км на байке". Это разные задачи. Обе имеют право на существование. И решаются по-разному.

-------------------------

Мне показалось, что у тебя случилась подмена понятий. Ты считаешь архиважной вторую задачу, хотя она чаще всего - совсем не актуальна.

Спасибо, только вот осталось непонятным: в вашей аллегории Арудино Уно - это самолет, поезд, мотоцикл или лисапед?

Или скажем так: есть задача попасть из Москвы в Новосибирск. Есть Ардуино Уно - ну пусть будет мотоцикл. КМК, ООП - это вариант оснастить этот мотоцикл сауной, туалетом и кухней и все же попытаться доехать до Новосиба.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Beginer123 пишет:
Вот и попросил местных гуру
Не скромничай, Архат. Большего гуру, чем ты, здесь нет и никогда не было. Так что, ты уж прокомментируй статейку сам, просвети нас убогих.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Зря вы кормите тролля. Добром не кончится, а ему только того и надо.

sadman41
Offline
Зарегистрирован: 19.10.2016

DetSimen пишет:

sadman41 пишет:

Использование за обедом полного набора столовых приборов вместо одной ложки - это полезно или вредно? 

Да ладно, ложки.  Но там-то предлагают по-старинке, мясо руками рвать, сурово вглядываясь из пещеры во тьму. 

Што, опять двадцатилетняя ссылка в шахты assembler-а ?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Так сам же первым и начал кормёжку - #1

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Beginer123 пишет:

Спасибо, только вот осталось непонятным: в вашей аллегории Арудино Уно - это самолет, поезд, мотоцикл или лисапед?

Или скажем так: есть задача попасть из Москвы в Новосибирск. Есть Ардуино Уно - ну пусть будет мотоцикл. КМК, ООП - это вариант оснастить этот мотоцикл сауной, туалетом и кухней и все же попытаться доехать до Новосиба.

Ты ничего не понял. Если без аналогий, то не надо вообще использовать Уно для задач такой сложности, где помешает использование ООП.

На маленьких задачах некритичен перерасход памяти, а для больших нужно взять другой контроллер. Никак не может быть первичной (кроме целей обучения) задача - впихнуть "три энкодера и 5 шаговых моторов плюс термостат и веб сервер" - в Уно (пример условный).

======================

Полный ответ такой: Если ты хочешь, но не можешь запрограмировать свой код используя ООП и у тебя не стоит за спиной СМЕРШевец с автоматом, то выбери другой контроллер.

Другое дело, если ты просто не любишь кодить в ООП. Это уже просто вкусовщина, пока ты единственный разработчик в проекте - кодь хоть в машинных кодах - твое дело.

Как бы "контрольный в голову": плохи не те програмисты, которые применяют String в МК, а те, кто его плохо применяет.

В java бесконтрольное создание стрингов в объектах часто проходит безнаказанно из-за сборщика мусора. Но нормальные програмисты за собой чистят, перед выходом.