Wieloplatformowość

Wieloplatformowość – cecha aplikacji, języków programowania, systemów operacyjnych oraz innego oprogramowania i jego implementacji, pracujących na różnych platformach sprzętowych.

Przykładowo, wieloplatformowa aplikacja będzie działać pod kontrolą systemu Microsoft Windows na architekturze x86 oraz systemu Linux na architekturze ARM.

Platformy

Platforma to kombinacja sprzętu i oprogramowania, na którym uruchamiamy aplikacje. Mówiąc najprościej, platforma to system operacyjny lub architektura procesora.

Aplikacja może być napisana dla konkretnej platformy (zarówno w rozumieniu sprzętu, jak i oprogramowania), lub maszyny wirtualnej, na której jest uruchamiana.

Platforma sprzętowa

Platforma sprzętowa to ogólne pojęcie, odnoszące się zarówno, do architektury procesora lub architektury komputera. Kilka najpopularniejszych obecnie architektur procesorów:

Platforma systemowa

Platforma systemowa może być systemem operacyjnym lub maszyną wirtualną, zwykle jednak jest kombinacją obydwu. Najpopularniejsze systemy operacyjne:

oraz maszyny wirtualne:

Wieloplatformowe oprogramowanie

Aplikacja jest wieloplatformowa, gdy działa na więcej niż jednym systemie operacyjnym i architekturze komputera. Rozwój takiego oprogramowania jest zazwyczaj bardzo trudny i czasochłonny, chociażby ze względu na to, że różne systemy operacyjne posiadają odmienne API. Trzeba mieć również na uwadze, iż fakt że system działa na wielu architekturach, nie musi oznaczać, iż program napisany dla tego systemu będzie z powodzeniem działał na wszystkich architekturach sprzętowych, obsługiwanych przez ów system. Przykładem jest pakiet biurowy OpenOffice.org, który wciąż nie ma swojego natywnego portu na architekturę x86-64. Podobnie jest z językami programowania. Program napisany w tak popularnych językach jak C lub C++, nie musi działać na wszystkich systemach operacyjnych, które obsługują ten język programowania.

Rozwój aplikacji wieloplatformowych

Wieloplatformowe biblioteki i narzędzia programistyczne

Oto kilka najważniejszych przedstawicieli bibliotek i narzędzi dostępnych na wielu platformach:

  • Simple DirectMedia Layer — biblioteka napisana w C, przeznaczona dla gier komputerowych i aplikacji multimedialnych. Udostępnia niezależne od platformy API, pozwalające kontrolować dźwięk, grafikę czy urządzenia wejścia wyjścia.
  • wxWidgets — biblioteka przeznaczona dla języka C++, udostępniająca jednolite, niezależne od systemu API do tworzenia GUI. Cechą biblioteki jest to, że na każdym systemie korzysta z natywnych elementów jego interfejsu.
  • Qt — biblioteka napisana w języku C++ pozwalająca tworzyć jednolite GUI niezależnie od platformy.
  • GTK+ — kolejna biblioteka umożliwiająca tworzenie aplikacji „okienkowych” napisana w C dostępna dla Linuksa, Microsoft Windowsa i eksperymentalnie dla OS X.
  • Mono (projekt) (otwarta implementacja Microsoft .NET) — wieloplatformowe środowisko do uruchamiania i tworzenia aplikacji w języku C#

Problemy związane z wieloplatformowością

Rozwój aplikacji wieloplatformowych ma kilka istotnych wad:

  • Programowanie aplikacji wieloplatformowej jest trudne i czasochłonne. Programista musi znać API oferowane przez wszystkie systemy operacyjne, co znacznie utrudnia pracę, ponieważ różnice w implementacjach mogą być bardzo duże.
  • Programista jest ograniczony do używania zestawu funkcji dostępnych na wszystkich docelowych platformach, co w efekcie może nawet uniemożliwić tworzenie zaawansowanych aplikacji.
  • Testowanie wieloplatformowego programu musi być przeprowadzone na każdej obsługiwanej platformie. Jest to kłopotliwe, z tego względu, że na każdej platformie mogą ujawnić się różne błędy, a ponadto ten sam błąd może zachowywać się inaczej na każdej z nich.
  • Tworząc aplikacje z GUI, trzeba mieć na uwadze rozmaite konwencje interfejsów użytkownika. Standard GUI (rozmieszczenie i kolejność przycisków, umiejscowienie menu itd.) jest inna w systemie Microsoft Windows, środowisku GNOME, KDE, czy Aqua (domyślne środowisko graficzne w OS X).
  • Aplikacje napisane w języku skryptowym lub w językach kompilowanych do kodu bajtowego (np. Java lub C#) muszą być za każdym razem tłumaczone na kod wykonywalny na danej platformie. Taka technika, mimo tak istotnej zalety jak niezależność od platformy, negatywnie odbija się na wydajności programu.

Przypisy

Tags:

Wieloplatformowość PlatformyWieloplatformowość Wieloplatformowe oprogramowanieWieloplatformowość Rozwój aplikacji wieloplatformowychWieloplatformowość PrzypisyWieloplatformowośćARM (architektura)Architektura procesoraJęzyk programowaniaLinuxMicrosoft WindowsOprogramowanieOprogramowanie użytkowePlatforma sprzętowaSystem operacyjnyX86

🔥 Trending searches on Wiki Polski:

Reprezentacja Polski w piłce nożnej mężczyznLiderki rankingu WTANikola TeslaŁotwaRzeszówPiła (miasto)TrzewikodzióbArtur BartoszewiczNowa Nadzieja (polska partia polityczna)Jacek BartosiakWarszawaMadrytLionel MessiAlicanteBlachotrapezHugo KołłątajBerlinElżbieta IICristiano RonaldoKarol StrasburgerEgiptBuddyzmChrześcijaństwoYouTubeUzbekistanTajlandiaChadaSebastian FabijańskiAdrian GalbasHenryk VIII TudorJeffrey DahmerFaszyzmLista państw AfrykiRozpad JugosławiiIslamChoroba Heinego-MedinaTarantula ukraińskaLista odcinków serialu Doktor WhoDunajMagdalena FiliksDysk GoogleRozkład normalnyKsiężycStrona głównaBitwa o Monte CassinoIwona Katarzyna PawlakLista państw AzjiArkadiusz MilikWojciech SławnikowicMichael MooreMariusz KamińskiPrezydenci Stanów ZjednoczonychLiz TrussFaustyna KowalskaWojciech SzczęsnyAgnieszka ChylińskaPokolenie XKosowoHeinrich HimmlerSzymon HołowniaSchizofreniaAfrykaTomasz PorębaUdostępnianie broni jądrowej w ramach NATOMistrzostwa Polski w piłce nożnej mężczyznMariusz KrystianZawiercieCesarstwo RzymskieKłamstwo oświęcimskieMapa politycznaMajorkaZasiewanie chmurJarosław KaczyńskiStrefa GazyBelgiaXHamsterFormuła 1 Sezon 2024Konfederacja targowickaNeymar🡆 More