Перайсці да зместу

Кросплатформавае праграмнае забеспячэнне: Розніца паміж версіямі

З Вікіпедыі, свабоднай энцыклапедыі
[недагледжаная версія][недагледжаная версія]
Змесціва выдалена Змесціва дададзена
др →‎Кросплатформавыя асяроддзі выканання: вырашэнне неадназначнасцяў з дапамогай AWB
Няма тлумачэння праўкі
Тэг: рэдактар вікітэксту 2017
Радок 11: Радок 11:


=== Кросплатформавыя асяроддзі выканання ===
=== Кросплатформавыя асяроддзі выканання ===
Яшчэ на пачатку эпохі ПК кампанія [[IBM]] зрабіла [[IBM PC|свой персанальны камп'ютар]] сумяшчальным з [[CP/M]]. Гэта дазволіла запускаць на ім ужо існуючыя праграмы.
Яшчэ на пачатку эпохі ПК кампанія [[IBM]] зрабіла [[IBM PC|свой персанальны камп’ютар]] сумяшчальным з [[CP/M]]. Гэта дазволіла запускаць на ім ужо існуючыя праграмы.


[[PHP]], [[ActionScript]], [[Perl]], [[Python (мова праграмавання)|Python]], [[Tcl]] {{nobr|і [[Ruby]] —}} кросплатформавыя інтэрпрэтавальныя мовы, {{nobr|іх інтэрпрэтатары}} існуюць {{nobr|для многіх}} платформ.
[[PHP]], [[ActionScript]], [[Perl]], [[Python (мова праграмавання)|Python]], [[Tcl]] {{nobr|і [[Ruby]] —}} кросплатформавыя інтэрпрэтавальныя мовы, {{nobr|іх інтэрпрэтатары}} існуюць {{nobr|для многіх}} платформ.
Радок 27: Радок 27:
#* Мінус: каб збудаваць самапрыстасавальную сетку, патрабуецца кваліфікаваны праграміст; паскладнена шчыльная кампаноўка.
#* Мінус: каб збудаваць самапрыстасавальную сетку, патрабуецца кваліфікаваны праграміст; паскладнена шчыльная кампаноўка.
# Гібрыдны падыход рэалізаваны ў [[GTK+]].
# Гібрыдны падыход рэалізаваны ў [[GTK+]].
#* Плюс: [[камп'ютарны шрыфт|шрыфты]] можна браць з сістэмы, а не «цягнуць» свае; некаторая аўтаматызацыя[[лакалізацыя|лакалізацыі]].
#* Плюс: [[камп’ютарны шрыфт|шрыфты]] можна браць з сістэмы, а не «цягнуць» свае; некаторая аўтаматызацыя[[лакалізацыя|лакалізацыі]].
#* Мінус: атрымлівае ўсе недахопы ад першых двух падыходаў. Стыль адрозніваецца ад стылю АС; ускладнена шчыльная кампаноўка.
#* Мінус: атрымлівае ўсе недахопы ад першых двух падыходаў. Стыль адрозніваецца ад стылю АС; ускладнена шчыльная кампаноўка.


Радок 49: Радок 49:


== Глядзі таксама ==
== Глядзі таксама ==
* [[Камп'ютарная платформа]]
* [[Камп’ютарная платформа]]
* [[Перанос праграмнага забеспячэння]]
* [[Перанос праграмнага забеспячэння]]
* [[Кросбраўзернасць]]
* [[Кросбраўзернасць]]
Радок 55: Радок 55:


{{зноскі}}
{{зноскі}}
{{Вонкавыя спасылкі}}

== Спасылкі ==
== Спасылкі ==
* [http://www.crossplatform.ru/ Усё аб кросплатформавым праграмаванні]
* [http://www.crossplatform.ru/ Усё аб кросплатформавым праграмаванні]

Версія ад 16:58, 9 чэрвеня 2022

Кросплатформавае (міжплатформавае) праграмнае забеспячэнне праграмнае забеспячэнне, якое працуе больш чым на адной апаратнай платформе і/ці аперацыйнай сістэме. Тыповым прыкладам з'яўляецца праграмнае забеспячэнне, прызначанае для работы ў аперацыйных сістэмах Linux і Windows.

Як дабіваюцца кросплатформавасці

Swing выглядае аднолькава на ўсіх АС.
Mozilla Firefox, ужывае XUL, афармляе вокны ў стылі АС (у гэтым прыкладзе — Linux).

Кросплатформавыя мовы праграмавання

Кросплатформавымі можна назваць большасць сучасных высокаўзроўневых моў праграмавання. Напрыклад, C, С++, Free Pascal кросплатформавыя мовы на ўзроўні кампіляцыі, гэта значыць для гэтых моў ёсць кампілятары пад розныя платформы.

Не менш важныя для кросплатформавасці стандартызаваныя бібліятэкі часу выканання. У прыватнасці, стандартам стала бібліятэка мовы С (гл. POSIX). З буйных кросплатформавых бібліятэк — Qt, GTK+, FLTK, STL, Boost, OpenGL, SDL, OpenAL, OpenCL.

Кросплатформавыя асяроддзі выканання

Яшчэ на пачатку эпохі ПК кампанія IBM зрабіла свой персанальны камп’ютар сумяшчальным з CP/M. Гэта дазволіла запускаць на ім ужо існуючыя праграмы.

PHP, ActionScript, Perl, Python, Tcl і Ruby кросплатформавыя інтэрпрэтавальныя мовы, іх інтэрпрэтатары існуюць для многіх платформ.

Асяроддзі выканання Java Virtual Machine і .NET таксама кросплатформавыя, аднак на іх уваход падаецца не зыходны код, а прамежкавы код. Таму праграмы, напісаныя на Java і C#, можна запускаць пад разнастайнымі АС без папярэдняй перакампіляцыі.

Кросплатформавы інтэрфейс карыстальніка

На розных АС — незалежна ад таго, як тэхнічна дасягнута работа ў іх — стандартныя элементы інтэрфейса маюць розныя памеры. Таму простае жорсткае размяшчэнне элементаў інтэрфейса немагчыма — пад іншай АС яны могуць налазіць адзін на другі. Існуе некалькі подыходаў.

  1. Адзіны стыль, агульны для ўсіх АС. Праграмы выглядаюць аднолькава на ўсіх АС. Так працуюць інтэрфейсныя бібліятэкі Java падобныя да Swing.
    • Плюс: можна жорстка расстаўляць элементы кіравання на манер Delphi; арыгінальны стыль.
    • Мінус: сістэме даводзіцца мець свае экранныя шрыфты; стыль адрозніваецца ад стылю АС.
  2. Інтэрфейс з самапрыстасавальнасцю, які падстройвае сетку пад сапраўдныя памеры элементаў кіравання. Тыповыя прыклады — wxWidgets, XUL.
    • Плюс: стандартны стыль АС, вельмі хуткі і наладжвальны пад Windows XP, Vista і 7; некаторая аўтаматызацыя лакалізацыі.
    • Мінус: каб збудаваць самапрыстасавальную сетку, патрабуецца кваліфікаваны праграміст; паскладнена шчыльная кампаноўка.
  3. Гібрыдны падыход рэалізаваны ў GTK+.
    • Плюс: шрыфты можна браць з сістэмы, а не «цягнуць» свае; некаторая аўтаматызацыялакалізацыі.
    • Мінус: атрымлівае ўсе недахопы ад першых двух падыходаў. Стыль адрозніваецца ад стылю АС; ускладнена шчыльная кампаноўка.

В любым выпадку, пад іншымі АС патрабуецца хаця б мінімальнае тэставанне, таму што магчымы памылкі кампаноўкі.

Умоўная кампіляцыя

Нават нягледзячы на шырокую стандартызацыю апаратнага і праграмнага забеспячэння, праграмісту часта даводзіцца наладжваць галіны пад розныя АС, уключаючы тую ці іншую з дапамогай умоўнай кампіляцыі.

Браўзер Mozilla Firefox мае розныя наборы іконак пад розныя АС.

Прыкладныя праграмы

Вялікая колькасць прыкладных праграм таксама з'яўляюцца кросплатформавымі. Асабліва гэтая якасць уласціва праграмам, першапачаткова распрацаваным для UNIX-падобных аперацыйных сістэм. Важнай умовай іх пераноснасці на іншыя платформы з'яўляецца сумяшчальнасць платформ з рэкамендацыямі POSIX, а таксама існаванне кампілятара GCC для платформы, на якую ажыццяўляецца перанос.

Аперацыйныя сістэмы

Сучасныя аперацыйныя сістэмы таксама часта з'яўляюцца кросплатформавымі. Напрыклад, аперацыйныя сістэмы з адкрытым зыходным кодам, напрыклад, NetBSD, Linux, FreeBSD, AROS могуць працаваць на некалькіх розных платформах, часцей за ўсё гэта x86, m68k, PowerPC, Alpha, AMD64, SPARC. Microsoft Windows можа працаваць як на платформе Intel x86, так і на Intel Itanium (дакладней, для Itanium ёсць толькі версіі Windows 2000/XP, Windows 2003 і Windows 2008, пасля чаго падтрымка была згорнута). Аперацыйная сістэма NetBSD з'яўляецца самай пераноснай[1], яна перанесена на большасць існуючых платформ.

Эмуляцыя

Калі праграма не прызначана для выканання (запуску) на азначанай платформе, але для гэтай платформы існуеэмулятар платформы, асноўнай для праграмы, то праграма можа быць выканана ў асяроддзі эмулятара.

Звычайна выкананне праграмы ў асяроддзі эмулятара прыводзіць да зніжэння прадукцыйнасці ў параўнанні з аналагічнымі праграмамі, для якіх платформа з'яўлялася базавай, таму што значная частка рэсурсаў сістэмы спажываецца на выкананне функцый эмулятара.

Глядзі таксама

Зноскі

Спасылкі