Правда, они под ДОС, но что поделать, ни Линукс ни Windows тогда не было.
Вот. А программы написанные на Си (без вставок на асме) — будут работать, только перекомпилировать надо. И что самое забавное — даже если программа была бы написана на какой-нибудь ЕС ЭВМ, она тоже бы перекомпилировалась и заработала. С огооврками, конечно, но с ассемблером не сравнить.
П.С. сам — фанат Ассемблера, но надо и меру знать.
Подсказка: это многие языки верхнего уровня, но не С :-)
Для данной синтетической задачи надо всего лишь два системных вызова: создание потока и захват мьютекса (создание-удаление тоже, но это мелочь). Что вовсе не требует высоких абстракций, тут хоть на машинном языке пиши.
И имея охапку проводов на столе, подключать/отключать ноутбук лишний раз не тянет. Поэтому ноут скорее всего врастает в стол и превратится в не мощный (или нЕмощный) стационарник
Да нет. У нас закупали ноуты с расчетом на командировки, но все таскают домой и на работу, без докстанций. Вопрос привычки.
Это значит, что при правильном структурировании (разбиении на блоки) мы можем нормально оперировать 49 строками в среднем, в противовес куче функций по 2-3 строки.
Все верно, но что считать за элемент — строку или блок? Нам, в принципе, не нужно держать в памяти непосредственно все строки кода, надо держать суть блоков — здесь 5 строк вычисляют среднее квадратичное, здесь 5 строк выполняют нормализацию, здесь 5 строк выводят данные. Это три элемента, а не 15.
1) автодокументирование, пояснять большой кусок кода комментариями больше становится не нужно, название функции прекрасно само говорит за себя
Вообще не факт. Вот есть у вас функция «GetHeader», ну получает она какой-то заголовок, и что? То, что вместо комментария //get header list for generating report column headers вы назвали кусок кода GetHeader, не делает этот код понятнее ни на грамм.
2) тестирование, маленькие куски выполняют очень мало работы, следовательно покрытие тестами становится весьма тривиальной задачей
Если оно при этом снижает читаемость, то это сомнительный tradeoff. Я не против тестирования, я против догмы «куча маленьких функций заведомо понятнее и лучше читается».
the Crusoe runs a software abstraction layer, or a virtual machine, known as the Code Morphing Software (CMS). The CMS translates machine code instructions received from programs into native instructions for the microprocessor. In this way, the Crusoe can emulate other instruction set architectures (ISAs).
То же самое можно сказать про любую машину с микрокодом. А еще я могу вспомнить машину МИР 60х гг.
Разрабатывал для диплома процессор необычной архитектуры, с микрокодом и перенастройкой. В шутку назвал его CSISC — Custom structure and Instruction Set Computer. Потому что его структура и набор инструкций недетерминированы изначально. Написать что ли статью? Правда, разработка велась не «в железо», сугубо на уровне блоков, для опробования самой идеи. Но есть транслятор микрокода, эмулятор самого процессора, демонстрационный микрокод под определенный набор инструкций и ассемблер для трансляции в этот машинный язык.
В аэропорту Берлина (Тегель емнип) меня заставили сдать пленку на просветку, под угрозой снять с рейса. 400 Фуджи, засветилась только так. Во всех аэропортах, где был просто внимательно осматривали, проверяли на взрывчатку анализатором, но не пихали в рентген. А тут — орднунг, хоть кол на голове теши.
Вот. А программы написанные на Си (без вставок на асме) — будут работать, только перекомпилировать надо. И что самое забавное — даже если программа была бы написана на какой-нибудь ЕС ЭВМ, она тоже бы перекомпилировалась и заработала. С огооврками, конечно, но с ассемблером не сравнить.
П.С. сам — фанат Ассемблера, но надо и меру знать.
Для данной синтетической задачи надо всего лишь два системных вызова: создание потока и захват мьютекса (создание-удаление тоже, но это мелочь). Что вовсе не требует высоких абстракций, тут хоть на машинном языке пиши.
Да нет. У нас закупали ноуты с расчетом на командировки, но все таскают домой и на работу, без докстанций. Вопрос привычки.
Вообще не факт. Вот есть у вас функция «GetHeader», ну получает она какой-то заголовок, и что? То, что вместо комментария //get header list for generating report column headers вы назвали кусок кода GetHeader, не делает этот код понятнее ни на грамм.
Если оно при этом снижает читаемость, то это сомнительный tradeoff. Я не против тестирования, я против догмы «куча маленьких функций заведомо понятнее и лучше читается».
То же самое можно сказать про любую машину с микрокодом. А еще я могу вспомнить машину МИР 60х гг.
В аэропорту Берлина (Тегель емнип) меня заставили сдать пленку на просветку, под угрозой снять с рейса. 400 Фуджи, засветилась только так. Во всех аэропортах, где был просто внимательно осматривали, проверяли на взрывчатку анализатором, но не пихали в рентген. А тут — орднунг, хоть кол на голове теши.