Кроссплатформенность на примере Arduino
Сейчас появились так называемые программируемые микроконтроллеры.
Это такой маленький процессор, прицепленный на маленькую материнскую плату. Эта
комбинация может управлять термодатчиком, часами и т.д. В зависимости от того, что
прицепят к ножкам этой микросхемы и какое программное обеспечение на неё
загрузят.
Это программное обеспечение – аналог операционной системы обычных компьютеров. Только
к обычному компьютеру цепляется типовой набор из монитора, клавиатуры и мыши, а
тут может быть прицеплено что угодно. Потому для каждого изделия пишется своя
маленькая операционная система.
Комбинаций процессоров и микросхем много. Они все немного по-разному работают. И
язык автокодов у них может быть разный. Система
Arduino это компилятор
языка Си в автокоды микросхемы.
Её главное меню:

В нём можно и нужно выбрать тип процессора и тип материнской платы. Компилятор
сгенерирует код для этой комбинации.
В конце 80-х, начале 90-х такого универсального компилятора, конечно, не было. Но
в те времена одновременно существовали так называемые большие машины и
персональные компьютеры. Школа была при ЛИАПе. В старших классах был Си. И дома
у меня на компьютере (которые я до сих пор называю «машинами») был Турбо Си. Я
принесла из дома дискету с текстом и не нашла, куда её засунуть в большую
машину (на которой тоже был Си).
Т.е язык Си был общий. А компиляторы для персональных компьютеров и больших
машин разные (как сейчас для разных микроконтроллеров).
При общем сходстве, было и отличие. Язык Си с самого начала позволял написать один
текст для самых разных систем. Переключение шло через так называемые «директивы предкомпилятора». Вот они в тексте:

Всякие «if defined»
и все остальное после «#» это как раз оно. Компилятор собирает и компилирует
для конкретного случая только тот текст, который нужен. Например, если нужно
что-то для процессора Amega32U4, то где-то выше существует
переменная __AVR_ATmega32U4 и компилируется только верхняя
компания SPI_INFO_MASK (остальной текст игнорируется).
Обычно эти настройки в подключенных файлах с расширением *.h:

Достаточно в этом файле поменять одну строку и можно компилировать программу
для совсем другой микросхемы.
Вот эти возможности были в Си с давних времён. Они и позволяли писать один текст
на Си, подходящий для самых разных операционных систем. Это и называлось
кроссплатформенность, т.е возможность
использовать этот программный текст для чего угодно.
Это было нужно в конце 80-х, когда вместо кучи одинаковых компьютеров было немного
разных. Это вернулось в жизнь совсем недавно, но не для больших компьютеров, а
для маленьких микроконтроллеров.
Между 1993-м и 2018-м годами это было нужно очень мало кому. Если программист
хочет найти работу, вроде, полезна способность
писать один текст, который подходит для разных работодателей. Но работодатель
хочет, чтобы было написано на Silverlight
или 1С такой-то версии. В 1993-м, скорее всего кому-то были нужны те, кто могут
написать на Си для разных операционных систем. Может и сейчас такие есть, но
процент таких намного меньше.
Мой ровесник. Значит,
35 ещё не было в тот момент. Для возрастных звоночков рановато, хотя странные
игры в «суперстар» были. Типа названия «древний Doom-ер».
Напишу то, на что это похоже. Сидит человек в том, что ему не нравится. И он
хочет переместиться в то, что ему нравится. Он хочет писать на Си для разных
систем. И всё. Сидит и хочет. Он может придумать себе того, кому он потребуется
в таком качестве. Он и придумывает. В фантазии же нету ограничений. Вот придёт
кто-то, предложит ему и заберёт отсюда. От окружающего у него ничего кроме
отрицательных эмоций, он подстраивается под реальность. Но мечты ценнее, потому они и перевешивают. А
внешних регуляторов по факту нет.
|