Chcel by som sa spytat trosku off-topic otazku: Existuje nejaka technologia, ktora by vedela prelozit existujucu aplikaciu pre nejaky operacny system tak, aby bezala (mozno s minimalnymi zmenami) v browseri? Pripada mi uplne kontraproduktivne mrhat energiu na vyvijanie aplikacii v jazykoch, ktore na to nie su prisposobene, ked uz mam aplikaciu hotovu....
Bola to hypoteticka otazka. Zaujima ma, ci nieco take existuje. Ak chcete byt konkretny, napr. aplikacia v Objective C pouzivajuca cocoa API (resp. GNUstep), teda beziaca v standardnom prostredi Mac OS X.
Kdybychom tohle uměli, tak bychom nepotřebovali OS a stačily by nám jenom browsery.
Nenechte se nachytat na nesmysly "tenký klient na všechno". Browser neumí ani setinu toho, co OS, nehledě na nekompatibilitu meio browsery a úžasnou pomalost javascriptu.
No ved ale podla toho co citam, vsetci sa snazia napchat plnohodnotne aplikacie do browsera. Ak uz chce nieco niekto take spravit, pripadalo by mi logickejsie umoznit beh aplikacii, ktore uz existuju namiesto prepisovania aplikacii do niecoho, co sa na danu vec vobec nehodi (alebo vymyslania 1567 467-teho jazyka). Browser nemusi predsa vediet vsetko co OS, ved backend nech bezi v OS pre ktory je aplikacia napisana, browser musi len zobrazit co uzivatel vidi. Nie som programator (na stastie ;)), ale take riesenie by mi pripadalo omnoho logickejsie. Preto sa pytam, ci take nieco existuje / da sa spravit / preco sa neda, ak sa neda ?
no, rozmyslal som prave na niecom podobnom, ale trosku z ineho uhla.
podla mna vyvoj smeruje tym smerom ze sa bude robit coraz viac aplikacii typu klient-server, aj tych jednoduchych, a GUI by bolo renderovane v browsery.
staci sa pozriet na vyvoj renderovacych jadier ako Gecko alebo WebKit. Obe mozte pouzivat vo svojich aplikaciach ako embdedded, proste namiesto klasickych GUI kniznic pouzijete na vytvorenie/vyrenderovanie GUI prave embdedded engin.
Samozrejme aj serverova cast by mala byt dostatocne nenarocna a optimalizovana aby sa dala spustat cela aplikacia ako klasicka desktopova.
Vyhoda takeho sposobu programovania by bola napr. v tom ze jednoducho viete oddelit serverovu cast a nasadit ju na web server ako cisto web aplikaciu.
No ved ale v aplikaciach je aj dnes (casto) oddeleny backend od vykreslovania obrazovky. Napr. v OS X (alebo v Unixoch a Linuxe s pouzitim GNUStep-u) spavis logiku aplikacie zvlast a potom navrhnes GUI v Interface Builderi. Pritom GUI cast mozes spustit aj bez zvysku aplikacie (na otestovanie). Nemohlo by toto gui jednoducho bezat v brovseri (napr. pomocou Java scriptu)? Klucove by bolo, ze zvysok aplikacie sa pouzije ten isty a GUI by nejaky automaticky nastroj prelozil do jazyka, ktory zvlada browser. Programator by ale vyrabal aplikaciu len raz, a to nativne pre lokalny beh na desktope.
ano take desktopove aplikacie sa robia, ale nemaju az tak oddelenu serverovu cast od tej klientskej.
idelne by bolo (podla mna :)) keby serverova cas bola naozaj samostatna (a bezala by v samostatnom procese), len by odpovedala na poziadavky klienta, potom moze byt klient napisany teoreticky v hocicom, staci dodrzat protokol pri komunikacii so servrom.
Myslim si ze takto budu vyzerat aplikacie v buducnosti, umozni to napriklad aj pripajanie jedneho klienta na viacej servrov a kombinovanie funkcii z viacerych servrov.
Vlastne toto uz dnes exituje a vola sa to internet :), len by sa to prenieslo na desktop
To co popisujete, přesně splňuje už hezkou řádku let protokol X. Proč se Xka nepoužívají více na klient-server aplikace, je mi také záhadou. Místo toho se to všecko cpe přes web, kodéři ohýbají HTML+CSS+JS, aby v něm vykreslili krásné ovládací prvky "jako v normální wokýnkové aplikaci", a výsledek je ve většině případů naprosto nepřehledný bastl (zrovna jeden takový musím upravovat... :))
Ono je to v tom, ze webova stranka nie je len aplikacia, ale je to dokument, ktory obsahuje text, obrazky, audio/video a iny vlozeny obsah.
HTML/CSS/JS nie je strasiak, len "profici" ho z neho robia. Kto to vie, ten to vie, kto to nevie, ten sa musi ucit. Ale po druhej skupine by som nic upravovat nechcel. To by som si radsej cele napisal odznova.
no v poslednej dobe nastastie vznikaju a zacinaju sa pouzivat take frameworky ako YUI, jQuery, a ine.
ak sa spravne pouzivaju daju sa s ich pomocou robit celkom slusne (aj co sa zdrojoveho kodu tyka) aplikacie
a mame tu aj take enginy ako gecko a webkit, ktore sa daju tiez do istej miery prisposobit a pozuit ako embdedded browser, takze aplikacia sa dokaze tvarit ako desktopova aplikacia.
Mozno k niecomu takemu smeruje aj novy browser Chrome od Googla - celkom sa tesim kde to s nim az Google dotiahne :)
Ak napises aplikaciu v Jave tak sa da dostat na web v priebehu niekolkych hodin. Ale v podstate to bude tucna aplikacia beziaca z webu. Vdaka tomu ze Jave je dobre prenosna, mas skoro zarucene ze to bude bezat na Win, Lin, Mac, Sun.
Ak to ma byt od zaciatku web aplikacia skus gwt a nezabudni si pozriet komponenty gwt-ext.