Interested Article - Кроссплатформенность
- 2020-08-11
- 1
Кроссплатформенность ( межплатформенность ) — способность программного обеспечения работать с несколькими аппаратными платформами или операционными системами . Обеспечивается благодаря использованию высокоуровневых языков программирования , сред разработки и выполнения, поддерживающих условную компиляцию, компоновку и выполнение кода для различных платформ. Типичным примером является программное обеспечение, предназначенное для работы в операционных системах Linux и Windows одновременно.
Кроссплатформенные языки программирования
Кроссплатформенными можно назвать большинство современных высокоуровневых языков программирования . Например, Си , C++ , Free Pascal , FreeBASIC , PureBasic — кроссплатформенные языки на уровне компиляции, то есть для этих языков есть компиляторы под различные платформы. Это позволяет — при надлежащем качестве кода — не переписывать основной движок программы, меняются только особые системозависимые части.
Не менее важны для кроссплатформенности стандартизованные библиотеки среды выполнения . В частности, стандартом стала библиотека языка Си ( POSIX ). Из крупных кроссплатформенных библиотек — Qt , GTK+ , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .
Существуют кросс-компиляторы — компиляторы, генерирующие исполняемый код для платформы, отличной от той, на которой запущен сам компилятор.
Кроссплатформенные среды исполнения
PHP , Perl , Python , Tcl и Ruby — кроссплатформенные интерпретируемые языки, их интерпретаторы существуют для многих платформ.
Среды исполнения ActionScript Virtual Machine , Java Virtual Machine и .NET также кроссплатформенны, однако на их вход подаётся не исходный текст , а промежуточный код . Поэтому программы, написанные на ActionScript , Java и C# , можно запускать под разными операционными системами без предварительной перекомпиляции.
Кроссплатформенный пользовательский интерфейс
На разных операционных системах и средах — независимо от того, как технически достигнута работа в них — стандартные элементы интерфейса имеют разные размеры. Поэтому простое жёсткое позиционирование элементов интерфейса невозможно — в другой операционной системе (среде) они могут «налезать» друг на друга, «расплываться», «пьянеть». Существует несколько подходов:
-
Единый стиль, общий для всех операционных систем, программы выглядят одинаково под всеми системами. Так работают интерфейсные библиотеки
Java
наподобие
Swing
.
- Плюс: можно жёстко расставлять элементы управления на манер Delphi, оригинальный стиль.
- Минус: системе приходится иметь свои экранные шрифты, и стиль отличается от стиля ОС.
-
Самоадаптирующийся (адаптивный) интерфейс, подстраивающий сетку под реальные размеры элементов управления. Типичные примеры —
Qt
,
wxWidgets
,
XUL
.
- Плюс: стандартный стиль операционной системы, очень быстрый и « скинующийся » под Windows XP , Vista и Windows 7 , и некоторая автоматизация локализации .
- Минус: чтобы собрать самоадаптирующуюся (адаптивную) сетку, требуется квалифицированный программист, а также затруднена плотная компоновка.
-
Гибридный подход реализован в
GTK+
.
- Плюс: шрифты можно брать из системы, а не «тащить» свои, а также некоторая автоматизация локализации.
- Минус: берёт все недостатки от первых двух подходов. Стиль отличается от стиля операционной системы, затруднена плотная компоновка.
В любом случае, в других операционных системах и средах требуется хотя бы минимальное тестирование, так как возможны ошибки компоновки.
Условная компиляция
Даже несмотря на широкую, в общем, стандартизацию аппаратного и программного обеспечения, программисту часто приходится налаживать ветви под разные операционные системы и среды, включая ту или другую посредством условной компиляции .
Например, браузер Mozilla Firefox имеет разные комплекты значков под разные операционные системы.
Прикладные программы
Большое количество прикладных программ также являются кроссплатформенными. Особенно это качество выражено у программ, изначально разработанных для Unix-подобных операционных систем . Важным условием их переносимости на другие платформы является совместимость платформ с рекомендациями POSIX , а также существование компилятора GCC для платформы, на которую осуществляется перенос.
Операционные системы
Современные операционные системы также часто являются кроссплатформенными. Например, операционные системы с открытым исходным кодом (в частности: NetBSD , Linux , FreeBSD , AROS ) могут работать на нескольких различных аппаратных платформах. Наиболее часто это: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . (« Эльбрус ОС » есть не что иное как глубоко доработанный для платформы « Эльбрус ». Но существует «Эльбрус ОС» также доступна и для платформ «Эльбрус-SPARC», представляющей собой реализацию платформы SPARC от МЦСТ , и платформы х86.) Первый выпуск Microsoft Windows NT 4 , вышедший в 1996 году, поддерживал четыре платформы (x86, Alpha, MIPS и PowerPC), в дальнейших версиях Windows NT осталась только поддержка платформы х86. Современная Microsoft Windows может работать как на платформе Intel x86 , так и на Intel Itanium . (Точнее, для Itanium есть только версии Windows 2000/XP, Windows 2003 и Windows 2008, после чего поддержка Itanium была свёрнута.) Операционная система NetBSD считается самой наиболее многоплатформенной , — она портирована на большинство ныне существующих платформ.
Среды разработки
Ряд IDE , в том числе Free Pascal, Lazarus , Qt Creator , работают на разных операционных системах: Linux, Windows и других .
Эмуляция
Если программа не предназначена для исполнения (запуска) на определённой платформе, но для этой платформы существует эмулятор платформы, базовой для данной программы, то программа может быть исполнена в среде эмулятора.
Обычно исполнение программы в среде эмулятора приводит к снижению производительности по сравнению с аналогичными программами, для которых платформа является базовой, так как значительная часть ресурсов системы расходуется на выполнение функций эмулятора.
Примечания
- (англ.) . netbsd.org . Дата обращения: 31 октября 2021. 22 декабря 2021 года.
- . Дата обращения: 8 декабря 2013. Архивировано из 26 ноября 2013 года.
Ссылки
- - Создание кроссплатформенных приложений с помощью инструментов Visual Studio для Apache Cordova — MSDN — Microsoft
- - Кроссплатформенная разработка | AppTractor
- 2020-08-11
- 1