Lesz valaha olyan program formátum, ami platformfüggetlen?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Akkor már miért nem csinálják egyformára az összes operációs rendszert?
(költői kérdés)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Pedig jelen pillanatban úgy néz ki, a jövőben a webes technológiákra épülő alkalmazások fogják betölteni ezt a szerepet. Egyre kevesebb az olyan terület, ahova natív app kell, és egyre több az olyan, ahova elég egy webes app. Példának okáért csak nézd meg, milyen alkalmazások készülnek Electron alapokon: [link]
Olyan nem kispályás nevek vannak a listán, mint a MS Teams, Tidal, WhatsApp, Skype, Signal, Discord, Slack, Github, VSCode, Atom, Wordpress...
Az más kérdés, hogy maga a natív bináris platformonként eltérő, de az afölötti kód alapvetően hordozható. A Chromium engine-t és a Node.js-t úgysem te fordítod, az adott.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Valószínűleg nem. Ugyanis ahhoz arra lenne szükség, hogy minden operációs rendszer ugyanolyan belső logika szerint működjön, és hardveresen is ugyanolyan architektúrájú legyen. Ezzel meg gyakorlatilag a rendszer lényege szűnne meg. Még ha talán-talán a formátumot egységesíteni is lehetne, teljesen felesleges, ugyanis attól még az adott program más szoftverarchitektúrát feltételezne futáskor. Így legalább kiterjesztés alapján többé-kevésbé eldönthető, hogy milyen oprendszeren fut a rogram, és meg sem próblja (jobb esetben) az ember az elf-et futtatni Androidon vagy Windowson. Nem kis káosz lenne, ha elindulna Windowson, natívan az a szoftver, ami a /dev/drum-ot keresné. ;)
Vannak persze próbálkozások, ahogy említették, a Java az egyik ilyen, és valóban ígéretesnek indult, de egyrészt mára maga az egész Java-infrastruktúra úgy, ahogy van, kaotikus lett (ez csakezen a verzión működik, az meg csak másikon, ehhez 11-es Java kell, ahhoz legfeljebb 8-as, de nem fut, mert amiben készült, annak nagyobb az alverziószáma, aminek a telepítője már nem érhető el, és egyébként is fél óráig kell mókolni a biztonsági beállításokon, hogy egyáltalán fusson...) Illetve teljesítményét tekintve a Java azért nem az igazi. Mondjuk egy bérszámfejtő szoftvernek rendben van az a teljesítmény, de sok olyan helyzet van, amikor fontos a teljesítmény.
A különböző szkriptnyelvek is nagyjából platformfüggetlenek, de a teljesítményük messze a Java alatt van, és egybként sem mindig célszerű a forráskódot közreadni.
Ahogy említették, sok területen vitathatatlan előnye van a webes technológiáknak, bár én azért a natív alkalmazásokat még nem temetném.
"operációs rendszertől függetlenül menne minden"
Ez két módon lenne (natívan) lehetséges.
Vagy úgy, ha minden operációs rendszer ugyanolyan lenne. Ezt mondjuk én nagyon nem szeretném, nem véletlenül létezik több féle oprendszer: egyrészzt az egyéni igények is mások (én például köszönöm, de a Microsoft csodálatos technológiájából, a monolitikus, erőforrászabáló, és eredendően kevéssé stabil és biztonságos szoftverarchitektúrjából nem kérek többet), másrészt meg nem minden területre praktikus ugyanolyan rendszert használni. Mondjuk ami egy alacsony fogyasztású mobil rendszeren idális, az nem biztos, hogy egy asztali PC-n is az. És akkor még arról sem beszéltünk, hogy alapvetően eltér a két rendszer processzora.
Vagy pedig olyan formátumot alkotnának, aminek feltétele, hogy az ily módon megírt szoftver csak azon technikákat alkalmazhatja, ami mindegyik rendszeren egyformán elérhető. Szerintem nem kell ecsetelnem, hogy mennyire megcsappanna a szoftverek színvonala.
Vannak persze ígéretes próbálkozások. A Wine - ha magát a futtatni kívánt szoftvert normálisan írták meg - a Windowsra kiadott szoftverek nagy részét képes futtatni. Általában azokkal akad gondja, ahol a programozó magasról tojt a programozástechnikai illemszabályokra. Vagy például ott van Windowsra a Cygwin. Igaz, ez nem a klasszikus értelemben vett kompatibilitási réteg, viszont natívan fut. Vagy ott van a WSL, ami igazból Linux Subsystem for Windows lenne, csak a Microsoftnak még az elnevezést is sikerült elbénázni. Meg a megvalósítást is, mert azért elég esetlenre sikerült.
Én nem vagyok a fene nagy egyséesítés pártján. Tökéletes kompatibilitást akkor lehetne elérni, ha csak egyfajta hardverarchitektúra létezne, és minden oprendszer ugyanolyan belső felépítésű lenne. Ami nincs így, és ameddig nem lesz minden rendszer mindenki számára tökéletes, addig nem is baj, hogy nincs így. Nem olyan eszeveszettül nagy dolog 3 platformra lefordítani ugyanazt a programot, ha nem használ platformspecifikus technikákat, akkor kb. három gombnyommás. A probléma inkább az, hogy az emberek döntő többsége úgy járja ki az iskolát, hogy egyetlenegy asztali oprendszerrel találkozik, elsősorban azért, mert egy bizonyos vállalat mélyen berágta magát az oktatási szférába. Ha pedig az ember úgy nő fel, hogy egyetlenegy rendszert lát, akkor nem is lesz igénye másra. Ebből adódóan nem is fog mást használni, a fejlesztők - akik többsége ugyanezen rendszerben nőtt fel - még azt a 3 kattintiást is sajnálni fogja, mert hát úgyis csak pár százalékot érint. Na, ezen kellene változtatni, és egy csapásra képesek lennének mindegyik platformra kiadni a szoftvereket.
Egyébként apró kötekedés: a kérdésben az .exe (ami igazából PE,mert .exe-ből is van több) az a Windows natív futtatható formátuma (ami persze tartalmazhat telepítőt is), a .dmg, .rpm, .deb pedig telepítők.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
És akkor nem beszéltünk a közép és nagygépekről. Szeretem ezt a szemellenzős "csak a PC létezik" szemléletet. És jól látod, van intel, AMD, ARM /és annak is 1000 formája/ procik, és még ezen kívül kb. 100 féle proci amiből lehet gépet építeni. Az oprendszer-proci-alkalmazás az első operációs rendszerek óta "össze vannak hangolva" /valamilyen szinten/. Innen kezdve mindig is lesz több féle operációs rendszer és több féle proci, innen kezdve értelmetlen, hogy ugyanaz a formátum legyen. Ami próbálkozások voltak rendre elbuktak (ebből a Java az utolsó ismertebb cucc). De volt már korábban is ilyen próbálkozás.
Ami talán-talán az interpretált nyelvek (ide sorolandóak architekturálisan a script nyelvek is php, python, és még ezer ezer másik) esetén létezhet teljesen platform független /később visszatérek miért nem fog ilyen létezni/, de itt meg az interpreter miatt halálra vannak ítélve mert ezek lassuak lesznek bármit csinál az ember.
És miért nem tudnak teljesen platform függetlenek lenni? Mert eltérő fájlrendszereket fognak használni és ha más nem a fájlnevek szintaktikája és a fizikai meghajtó-fájlrendszer-fájlnév eltérő lesz. Pl. Linuxon az összes fizikai kötet egy egységes fastruktúrában látszik és nem kell tudni, hogy melyik hol van fizikailag pl. simán lehet a /home és a /etc két külön helyen egységesen fogod látni. A Windows világban meghajtónként külön dir.struktúra van tehát lesz C:\alma D:\korte direktori, és ez már meghatározza, hogy nem is lehet egyforma teljesen a két kód, mert a fájlok helyét le kell tudni írni. Nyilván az ilyen webes rémálmoknál nincs ez mert minden URI séma szerint történik, és a localhosttal nem nagyon foglalkoznak (meg interpretál tehát akár össze is tudja rakni az interpreter). Talán a Fortran volt egy olyan nyelv ami szinte teljesen platformfüggetlen volt, én írtam olyan Fortran programot ami futott VM/CMS-en, VMS-en, Linuxon, és DOS-ban /akkor még a windows nem nagyon létezett a mai formájában/ és ott tényleg csak a fájlneveket kellett átírni, egyébként a VM/CMS és a VM/OS390 esetén is módosítani kellett, mert az OS390-ben és a CMS-ben /ihába volt ugyanaz a hardver/ picit másképpen kellett megadni a fájlneveket.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!