не думаю, просто не стали ограничивать переменную, присвоили ей какой-нибудь byte и йух забили
Поддержу, это же embeded-техника.
Это не типовое программирование с применением всех best practice и с безграничными ресурсами. Там используется самый жётский говнокод, чтобы влезть в лимит ресурсов:)
Если Вам приходится использовать "самый жётский говнокод", то проебались вы на этапе выбора железа и теперь выкручиваетесь как можете.
Да и обычно там говнокод не из-за ограничения ресурсов, а потому что ручки растут из плеч, а плечи из жопы)
Под железо я никогда не писал, так что мой тезис основан только из обрывках прочитанных ранее статей по смежным темам. Но имея представление о китайцах можно судить, что если есть возможность сделать устройство дешевше, они его сделают дешевле - а более мощное железо зачастую дороже:)
А использование говнокода, например, с хранением значений по определённым индексам в массивах, а не в лаконичных разрозненных структурах данных думаю позволит съэкономить память. Или использовать битовые маски, вместо читаемого набора флагов. Не использовать разделение кода на читаемые функции, классы и модули. И далеко не всё можно в результате "ужать/ускорить" агресивными параметрами компилятора.
Но это на вскидку - повторюсь, не железячник:)
"если есть возможность сделать устройство дешевше, они его сделают дешевле"
набор готовых компонентов, низкое качество, большие объемы производства - вот и получается ниже цена, нет там никакой рокет саенс. Они и из готовых компонентов косячат так что мама не горюй.
"с хранением значений по определённым индексам в массивах, а не в лаконичных разрозненных структурах данных думаю позволит съэкономить память"
Не знаю что Вы имеете ввиду. Может что-то типа хот-данных положить рядышком чтобы они в кэше ЦПУ лежали. Можно поподробнее?
"Или использовать битовые маски, вместо читаемого набора флагов"
так битовые маски и есть способ работать с флагами - очень даже читаемый:
uint32_t flags;
flags |= FLAGS_RSVD;
if (flags & FLAGS_RSVD_MASK)
// put your code here
"Не использовать разделение кода на читаемые функции, классы и модули."
А вот это как раз и говорит о квалификации разработчика. Есть техники оптимизации и вот с инлайном, разверткой циклов, переиспользованием переменных и т.п. вещах (о которых обычно первым же делом пишут в гайдах по оптимизации) компилятор справляется на ура и зачастую гораздо лучше чем человек.
"И далеко не всё можно в результате "ужать/ускорить" агресивными параметрами компилятора"
Плохой код плохо оптимизируется. Добавить компилятору подсказки типа inline, const, noexcept, constexpr, alignas, noreturn, грамотно описывать компилятору что происходит в асм вставках и т.п. - задача программиста. Как показывает практика, в асм-коде с хорошим уровнем оптимизации без поллитра с полтычка не разобраться :)
Если какие-то люди что-то делают хорошо - технари. Накосячили - не технари.
По типу: "Если меня повысили по работе - это Бог заботится обо мне. Если не повысили - пути господни неисповедимы".
Технарь это не корка, а состояние души, поэтому да:
Если какие-то люди что-то делают хорошо - технари. Накосячили - не технари.
Читая высеры экспердов с технической специальностью, последнее время наталкиваюсь на мысль, что это скорее не состояние души, а диагноз.
Черт, охуенное определение. Срыв покровов, разрыв шаблонов. То есть если человек, скажем, хорошо пишет книги по истории литературы или делает хорошие переводы, то он технарь? Взял на заметку.
Эт не определение, если человек хорошо занимается каким либо творческим делом, он может быть или не быть технарём, всё зависит от подхода.
"После первой ошибки диплом сгорает" - и я говорю, шутки шутками, а например у врачей походу так диплом и работает.
Capiche?
Только речь тут шла именно о дипломах технарей, коими врачи не являются
И за ошибку врача, диплом не сгорает. Эффективность лечения или операции всегда рассчитывается с учётом ошибки медперсонала. И ответственность за халатность тоже включает в себя эти показатели, не всё так просто.
Так и гуманитарии, про которых шутят обычно - не настоящие гуманитарии. Одно дело философ, юрист, дипломат, бизнесмен, другое - троечник Вася из пединститута.
а может этот программер раньше писал всякую шнягу в нии оперирующую многомерными пространствами и матрицами бесконечностей, сингулярности обсчитывал всякие, а потом за употребление веществ его уволили, вот и пишет бедняга теперь всякие примитивы на регистраторы
Как это не настоящие? Самые что ни на есть труЪ - писали код на ассемблере, и просто забыли о таких мелочах, как дни и месяцы - ведь труЪ технари дату считают в миллисекундах, прошедших с полуночи 1 января 1970 года. А всякие январи-феврали - это для гуманитариев.
Причём тут технари vs гуманитарии? Рег проектировали китайцы, прошивку они же писали. Про качество китайского кода говорить излишне.
Хороший вопрос.
Ответ «Да» минусуют.
Ответ «Нет» тоже.
Кажется, мнения разделились. Грядёт раскол в обществе.
Настоящий гуманитарий знает несколько языков, либо может рассказать стихотворение любого поэта на выбор, или может поразить тебя своими знаниями в философии. Но сейчас принято называть гуманитарием того, кто не смог в точные науки
С чего ты взял, что технари? Программирование к технарским дисциплинам слабо относится. Вон раньше программистами вообще женщины были.
Много ли программистов знают математику? Основное их число в лучшем случае джаву выучит, а так на пхп сайтики делают. Технарь - это особое миропонимание, для этого не достаточно веб-сайты делать.
Ну есть криворукие гуманитарии, есть криворукие технари. Это не значит, что программистов, даже плохих, можно вообще к другой карьерной ветке причислять. Ну и веб-сайты это далеко не всегда программирование, и вообще только маленькая часть этой отрасли.


