Я привык считать низкоуровневым программированием программирование на ассемблере или в кодах. Такое программирование раньше использовалось не только для написания драйверов и ядра операционной системы, но и для ускорения выполнения фрагментов кода. Низкоуровневое программирование неизбежно связано с особенностями железа. Написание драйверов — даже на языке высокого уровня — также связано с особенностями железа. В советских вузах связанные с архитектурой курсы, если только это не спецкурсы для узких специалистов, обычно сопровождались изложением ассемблера. Даже, если ассемблер был независимым курсом, в его рамках обычно давались некоторые начальные сведения о «железе» или «биосе». Поэтому естественно вопросы программирования на ассемблере и программирования аппаратно-зависимых вещей на языках высокого уровня размещать в разделе “Hardware”. Компиляторы языков высокого уровня (а иногда и сами языки) включают возможности низкоуровневого программирования. Противопоставление алгоритмическое программирование — низкоуровневое программирование, на мой взгляд, нельзя связать с противопоставлением алгоритмические языки — ассемблеры. Но видимо все согласятся, что целью введения алгоритмических языков была минимизация зависимости программирования от аппаратных особенностей, как для облегчения труда программиста, так и для улучшения переносимости программы. Т.е. в разделе «Программирование», по смыслу, должны обсуждаться программирование, не зависящее от железа, а в “Hardware” — им определяющееся.
Однако в учебных курсах, посвященных языкам высокого уровня, да и в практической работе, есть вопросы, связанные с включением ассемблера в код, написанный на языке высокого уровня (ЯВУ). Да и при попытках разобраться с особенностями работы компилятора конкретного ЯВУ, или при отладке на уровне ассемблера программы, написанной на ЯВУ, возникают вопросы, связанные с «железом». Такие темы раньше не переносились, и, на мой взгляд, их нецелесообразно переносить в “Hardware”. Действительно видит участник, что в разделе «Программирование» обсуждается Pascal, он и создает там тему «Как прилинковать ассемблерную процедуру к Паскалю». Ну и пусть: модераторам меньше работы по переносу, участникам — головной боли.
В разделе “Hardware” реже появляются новые темы и размещение тем, посвященных программированию на ассемблере, позволяет сбалансировать нагрузку на разделы. Например, в “Hardware” можно сделать прилепленной тему,
посвященную литературе по ассемблеру. А в разделе «Программирование» сделать прилепленными темы, посвященные литературе по Си, Паскалю, … И это не приведет к тому, что вся первая страница будет полностью закрыта прилепленными темами.
В общем, действительно, хорошо бы добавить в описание радела «Hardware»: «…, программирование на низком уровне (в частности на ассемблере)» и, если возможно, внести уточнения в тему
Правила выбора раздела для размещения новой темы.