Официальный сайт компании Arduino по адресу arduino.cc
ООП - зло и не только для микроконтроллеров
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пт, 17/05/2019 - 15:54
весь текст в общем-то здесь: https://habr.com/ru/post/451982/
От себя только добавлю - это ровно то, чему меня учил Архат и похоже именно это и стало причиной его тролления тут. Он оказался - прав: ООП не просто зло, и не столько средство распила буджетов программистами, сколько хорошо встроенная в ИТ-отрасль диверсия.
комментировать не буду, не силен в теориях, да и так .. студент, и не самый лучший. Просто на почитать - очень полезно.
Ой, Архатовский клоняра нарисовался. И, как всегда, бредит. Держите меня семеро :)
Почитал, сочувствую автору - поляку (или чеху, судя по фамилии?). ООП - лишь инструмент. Применяет его девелопер. Данному девелоперу удобнее свои костыли? - ок, это его право и его видение. Будет работать в команде из 100 человек с базой на миллионы sloc - может, всё же, допоймёт, для чего же нужен ООП.
Архат, ты ведь заеб@л уже своими срачами и вот очередной вброс. Обслужи как себя сам! Подтяни второго клона (от которого вчера писал) и пусть твои клоны меж собой посрутся, а мы попкорн поедим.
Острые концы яиц не просто зло, и не столько средство распила буджетов поварами, сколько хорошо встроенная в пищевую отрасль диверсия.
Ля, чо творится :) Вчера сашка-алергик поносом промчался, щас у архаровца обострение. Не даёт покоя желание лаврами обрясть :))
Так, Архатушка вчера тоже отметился. Я не был до конца уверен, но сейчас уже сомнений не осталось.
Он оказался - прав:
откуда такой вывод? оттого что какой-то автор решил потроллить программисткое сообщество "альтернативным мнением"?
Знаете. в чем разница между автором материала и Архатом? - в том что первый намеренно стебется. а архат искренне верит во всю эту чущь типа "заговора девелоперов"
Только вчера целое ессе написал против ООП в МК и вот оно сегодня опять вылезло.
ДОЛОЙ ООП ИЗ МК!
ДОЛОЙ ООП ИЗ МК!
Надеюсь, это стёб.
ДОЛОЙ ООП ИЗ МК!
Аминь!
Это частичный стеб. При програмировании систем реального времени ООП всегда будет уступать по скорости реакции прямому программированию. Вот поэтому долой из РВ. В постобработке сколько угодно.
А что считать постобработкой? Вот, к примеру, существует библиотека Ethernet. Классы там, инкапсуляция по полной программе. Долой ея или нет?
Не припомню я что б эзернет РВ называли.
Так и я не припомню, чтобы какие-то ООП-штучки в рилтайме юзали. Поэтому хотел уточнить что именно долой.
Да и Беня плюсы не переваривает...)
Мужики, Вы чего обсуждаете?
Архат привёл идиотскую, безграмотную статью в стиле "я не умею проектировать объектную среду и у меня получается частокол ссылок, а потому в топку её" и Вы кинулись это обсуждать и даже с этим спорить?
Ну поспорьте ещё вот с этими - https://theflatearthsociety.org/home/ - или с этими - http://www.mhc.ru
С дураками опасно спорить - люди могут между Вам разницы не заметить!
Ну, почему сразу нельзя спорить? Как говаривал марк Твен: «Право на глупость — одна из гарантий свободного развития личности».
Как Вы такие сайты находите?
Нет, я вполне могу понять причину излишнего увлечения инкапсуляцией, разбиением на слои API и пр. Программизмом занимаются люди с определённым складом ума, который, замечу, в независимости от воли индивида, диктует потребность упорядочить всё. Нормы в этом деле нет, поэтому один считает некий уровень нормальным, второй - шизофреническим. Функциональное программирование так же может быть подвержено оверинжинирингу (либо субъективной оценке оного) с излишней декомпозицией алгоритма.
Да и в конце концов - многие ли останавливаются на "последней" рюмке водки? А природа процесса тут точно та же...
Как Вы такие сайты находите?
Про себя скажу. - много тусуюсь на научных и околонаучных мероприятиях по всему миру. Там в курилках такого наслушаешься. Ну, а когда уже знаешь, что общество сторонников плоской земли существует, сайт найти - как два пальца :)
Как Вы такие сайты находите?
Петрович меня опередил. Я только хотел написать, что я не находил - это он как-то тут ссылку давал.
Реально тема какая то из пальца высосаная.... Не нравится не ешь. Кто то заставляет ?
С дураками опасно спорить - люди могут между Вам разницы не заметить!
+100500
Так разбейте дураков одной фразой! Или примером. Что бы всем было ясно и бесповоротно. А то ведь сомнения гложат...) Для ПК понятно, а для МК? А то всё круглая, круглая...)
Когда практически начал работать с однокристалками, были КР1816ВЕ51 и КМ1801ВМ3.
Ядро 51-е нравилось, а pdp-11 ещё больше нравился. Ни о каком ООП и не слыхивал тогда.
Прошди годы... Сменилось государство...
Вдруг неожиданно узнал что сигнальники в модемах уже на си программируются, был очень удивлен, как же так, ведь на асме всегда быстрее.
Может ООП не так уж и плох ;)
Может ООП не так уж и плох ;)
Вот, вот. Нужно ведь только объяснить людЯм в чём фишка. Понятно что мода, что тенденции, что без этого никуда... Но на самом деле, реально, в чём выигрыш? Для МК имеется ввиду.
О! РDP-11 ядро. Я его тоже люблю до сих пор. Короткая и гибкая система комманд. Писать асм было легко.
А плох или хорош ООП как всегда упирается в конкретного человека. Если понимаешь, что ты делаешь, что приобретаешь и что теряешь от применения ООП то от его применения будет польза. Используя бездумно, следуя моде, можно таких монстров нагородить. Работать то будет, но вопрос на сколько эффективно.
В любом случае за всё надо платить. За удобства ООП увеличением использования памяти и уменьшением быстродействия. Где эта плата не имеет принципиального значения для выживаемости системы применения ООП вполне оправдано. Имхо.
мне, ни разу не программисту, ассемблер на PIC-ах нравится )))
а насчет плоской земли, буквально последние сообщения
От себя только добавлю - это ровно то, чему меня учил Архат и похоже именно это и стало причиной его тролления тут. Он оказался - прав:
Версия 2.0? Новый Левий Матфей?
Осталось собрать еще одиннадцать и не забыть про Иудушку. Ну а форумчане это, по видимому, синедрион. А кто будет Иродом, Понтием и Лонгином? А, вспомнил, на Понтия Пилата, Александр заявлялся.
Кароч, с апостолами проблемка, одного явно мало.((((
мне, ни разу не программисту, ассемблер на PIC-ах нравится )))
Не, ассемблер PIC как раз таки г.но.( То ли дело 8051.)
мне, ни разу не программисту, ассемблер на PIC-ах нравится )))
Не, ассемблер PIC как раз таки г.но.( То ли дело 8051.)
Классический импринтинг прям ))
ООП - результат комерционализации программного облеспеччения, когда привлекается много людей и новые без понятия какие например переменные использовать, поэтому ввели иерархию через наследников (объекты) и всякие заморочки с переменными. Это казалось логично, для МК это тупизм. Недавно столкнулся, взбесило реально.
Статья понравилась, некоторые веши вижу в новых горе бибдлиотеках для ардуино после перехода на GCC C11 началась шизофрения по созданию классов и структуризация пограмм, вместо нормальной работы библиотеки, некоторые авторы даже хвалятся этим readme -мы перешли на GCC C11 - наш вывод стал более правильный и программа лучше читается, пишет автор - Долба.б)))
Нужно ведь только объяснить людЯм в чём фишка.
Каким людям? Архату? Ну-ну, объясняй. У меня как раз и попкорн ещё остался :)
От себя только добавлю - это ровно то, чему меня учил Архат и похоже именно это и стало причиной его тролления тут. Он оказался - прав:
Версия 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) Знают все!
Уверуйте, легче станет.
Говорят в те давние времена больше сотни было подстать пророку.
мне, ни разу не программисту, ассемблер на PIC-ах нравится )))
Не, ассемблер PIC как раз таки г.но.( То ли дело 8051.)
с 8051 дел не имел
Семейство x51 сейчас опять популярность набирает, ввиду низкой цены (~$0,25). Селево не даст соврать.)
Ой, сколько понаписали-то! :)
Только комментарии к статье значительно информативней и солидней что-ли.
А может кто-нибудь в двух словах пояснить третью ссылку из статьи: http://wiki.c2.com/?ArgumentsAgainstOop ? А то с гугло-толмачем у меня как-то плохо получилось, мало что понял. Особенно в приложении к программированию микроконтроллеров Ардуино УНО, Нано - они же как "главные".
Вот ты и поясни, а мы послушаем. Нападать на инструмент и драть глотку о его вреде (или пользе) - это больше по твоей части.
Так что, поясняй родной. Никто, кроме тебя! Тем более, ты в этом деле спец, тебя же
гугло-толмачем у меня как-то плохо получилось, мало что понял.
Вмексто того чтоб шарится по всяким левым сайтам и устраивать у нас тут срач - лучше б английский подтянули
гугло-толмачем у меня как-то плохо получилось, мало что понял.
Вмексто того чтоб шарится по всяким левым сайтам и устраивать у нас тут срач - лучше б английский подтянули
Вот взять типовой класс String - оно верно для него или нет?
Вот и попросил местных гуру прокомментировать что там имелось ввиду про вредность ООП в микроконтроллерах для Ардуино.
Вот взять типовой класс String - оно верно для него или нет?
Использование за обедом полного набора столовых приборов вместо одной ложки - это полезно или вредно?
Наслаждаясь приступом прокрастинации (ну не страдать же от него, в самом деле?) потрачу немного времени...
1. Стринг, как и векторы и списки и так дале не могут быть плохими или хорошими.
2. И даже в МК. Если в задаче нет недостатка памяти, то можно написать со стрингами, перерасход памяти не важен для задачи.
Ну вот как бы проиллюстрировать? - Если нужно собачку в космос запустить, вот кровь-из-носу, как нужно, и есть только примитивные средства управления, то можно доводить до 100% использованиея всех ресурсов, вычищать и отттачивать каждый байт кода. То есть прикладывать очень ДОРОГИЕ человеческие ресурсы, компенсируя недостаток материальных.
Вот отстраненная иллюстрация: я живу в доме под Москвой, ты - в Новосибирске. Я могу доехать до тебя относительно удобно на машине, очень удобно - на моем кемпере (автобус с душем, туалетом, кухней), супербыстро - на самолете, и долго, под дождями, с гамаком и палаткой - но мотоцикле. Как опытный байкер - я конечно могу использовать мотоцикл. И топлива меньше потрачу и извращенное удовольствие получу: ветер, косуха, романтика ;)). Вот так и опытный програмист - может выжать досуха ресурсы AVR просто из (того самого) извращенного удовольствия. Но нахера? Если не стоит задача самоутверждения: "Зырьте, как я могу!!!", то проще добраться от Москвы до Новосиба - на машине, на крайняк - на поезде. Продолжая аналогию - нужно выбирать инструмент который УДОБНО использовать и на него хватает средств, а не совершать чудеса героизма. В хобби, если человеку не удобно переучивать себя, то можно купить контролер побольше. Как человек ставит задачу? Можно решать именно задачу (попасть из Москвы в Новосиб), можно ставить другую задачу: "впихнуть в АВР некий код", аналог - "проехать 3500 км на байке". Это разные задачи. Обе имеют право на существование. И решаются по-разному.
-------------------------
Мне показалось, что у тебя случилась подмена понятий. Ты считаешь архиважной вторую задачу, хотя она чаще всего - совсем не актуальна.
Использование за обедом полного набора столовых приборов вместо одной ложки - это полезно или вредно?
Да ладно, ложки. Но там-то предлагают по-старинке, мясо руками рвать, сурово вглядываясь из пещеры во тьму.
Наслаждаясь приступом прокрастинации (ну не страдать же от него, в самом деле?) потрачу немного времени...
1. Стринг, как и векторы и списки и так дале не могут быть плохими или хорошими.
2. И даже в МК. Если в задаче нет недостатка памяти, то можно написать со стрингами, перерасход памяти не важен для задачи.
Ну вот как бы проиллюстрировать? - Если нужно собачку в космос запустить, вот кровь-из-носу, как нужно, и есть только примитивные средства управления, то можно доводить до 100% использованиея всех ресурсов, вычищать и отттачивать каждый байт кода. То есть прикладывать очень ДОРОГИЕ человеческие ресурсы, компенсируя недостаток материальных.
Вот отстраненная иллюстрация: я живу в доме под Москвой, ты - в Новосибирске. Я могу доехать до тебя относительно удобно на машине, очень удобно - на моем кемпере (автобус с душем, туалетом, кухней), супербыстро - на самолете, и долго, под дождями, с гамаком и палаткой - но мотоцикле. Как опытный байкер - я конечно могу использовать мотоцикл. И топлива меньше потрачу и извращенное удовольствие получу: ветер, косуха, романтика ;)). Вот так и опытный програмист - может выжать досуха ресурсы AVR просто из (того самого) извращенного удовольствия. Но нахера? Если не стоит задача самоутверждения: "Зырьте, как я могу!!!", то проще добраться от Москвы до Новосиба - на машине, на крайняк - на поезде. Продолжая аналогию - нужно выбирать инструмент который УДОБНО использовать и на него хватает средств, а не совершать чудеса героизма. В хобби, если человеку не удобно переучивать себя, то можно купить контролер побольше. Как человек ставит задачу? Можно решать именно задачу (попасть из Москвы в Новосиб), можно ставить другую задачу: "впихнуть в АВР некий код", аналог - "проехать 3500 км на байке". Это разные задачи. Обе имеют право на существование. И решаются по-разному.
-------------------------
Мне показалось, что у тебя случилась подмена понятий. Ты считаешь архиважной вторую задачу, хотя она чаще всего - совсем не актуальна.
Или скажем так: есть задача попасть из Москвы в Новосибирск. Есть Ардуино Уно - ну пусть будет мотоцикл. КМК, ООП - это вариант оснастить этот мотоцикл сауной, туалетом и кухней и все же попытаться доехать до Новосиба.
Зря вы кормите тролля. Добром не кончится, а ему только того и надо.
Использование за обедом полного набора столовых приборов вместо одной ложки - это полезно или вредно?
Да ладно, ложки. Но там-то предлагают по-старинке, мясо руками рвать, сурово вглядываясь из пещеры во тьму.
Што, опять двадцатилетняя ссылка в шахты assembler-а ?
Так сам же первым и начал кормёжку - #1
Спасибо, только вот осталось непонятным: в вашей аллегории Арудино Уно - это самолет, поезд, мотоцикл или лисапед?
Или скажем так: есть задача попасть из Москвы в Новосибирск. Есть Ардуино Уно - ну пусть будет мотоцикл. КМК, ООП - это вариант оснастить этот мотоцикл сауной, туалетом и кухней и все же попытаться доехать до Новосиба.
Ты ничего не понял. Если без аналогий, то не надо вообще использовать Уно для задач такой сложности, где помешает использование ООП.
На маленьких задачах некритичен перерасход памяти, а для больших нужно взять другой контроллер. Никак не может быть первичной (кроме целей обучения) задача - впихнуть "три энкодера и 5 шаговых моторов плюс термостат и веб сервер" - в Уно (пример условный).
======================
Полный ответ такой: Если ты хочешь, но не можешь запрограмировать свой код используя ООП и у тебя не стоит за спиной СМЕРШевец с автоматом, то выбери другой контроллер.
Другое дело, если ты просто не любишь кодить в ООП. Это уже просто вкусовщина, пока ты единственный разработчик в проекте - кодь хоть в машинных кодах - твое дело.
Как бы "контрольный в голову": плохи не те програмисты, которые применяют String в МК, а те, кто его плохо применяет.
В java бесконтрольное создание стрингов в объектах часто проходит безнаказанно из-за сборщика мусора. Но нормальные програмисты за собой чистят, перед выходом.