Кроссплатформенность
Кроссплатформенность — возможность запуска ПО на нескольких платформах.
Описание[править]
ЭВМ не вполне стандартизированы, даже если брать самые обычные ПК, то там будут как и Mac OS на компьютерах Apple, так и Windows на стандартных компьютерах, а также и как бы Linux на серверных машинах. Если аппаратное обеспечение было более-менее стандартизировано, так что если на компьютере есть Windows, то программа под эту версию скорее всего запустится, то для разных операционных систем таки приходится всирать разный код, поскольку там банально разные API и иные особенности.
А ведь есть ещё мобильные устройства с Android, и иными операционными системами, а в цовременности гаджетами как бы пользовались не более, чем компьютерами, у многих людей того компуктера уже и нетути дык, а вот смартфон есть практически у всех (кроме отдельных благородных лордов-отшельников).
В старые времена буквально проверяли название ОС и затем всирали конкретные функции для каждой из них. Сейчас чаще используются библиотеки или фреймворки, скрывающие различия между ОС, а код преобразуется в платформо-специфичный вид во время сборки, что позволяет кодерам в принципе не слишком заморачиваться.
Так, создание языка Java и виртуальной машины JVM было сделано специально для достижения кроссплатформенности, сама система была восрана с описанием Write Once, Run Anywhere (это значит евонна што: Написал один раз — запускай где угодно).
Но есть и недостатки, а именно обычно обосранная скорость исполнения, так как многие кодеры задумываются лишь над тем, чтобы работало везде, при этом оптимизация отправляется в афедрон, так как многие методы оптимизации направлены на особенности конкретных систем, и тут их просто ленятся внедрять, а автоматически не внедряются.