Panove, kteri se tu pozastavuji nebo dokonce rozciluji nad tim, ze web aplikace nikdy nemuzou svymi funkcemi nahradit tvrde OS aplikace jsou mi k smichu. To ze dnes webova aplikace nemuze bezet nativni kod a vyuzivat "rich" sluzby OS je pravda, ale bude to tak i v budoucnu? Co je to webova aplikace? To nemusi byt kus pomaleho crappy javascriptu, ktery nekde obarvuje nejake HTML elementy. Web aplikace muze byt plnohodnotny kod, ktery funguje nad sluzbami nejakeho rich frameworku, obdobne jako "EXE" je (nativni) kod, ktery funguje nad sluzbami OS. Je to jen otazka terminologie a trochu te predstavivosti.
Zakladni vlastnosti weboveho prohlizece je poskytnout technologii pro zobrazeni weboveho obsahu. Dulezite pri tom je, aby tato technologie byla dukladne odstinena od operacniho systemu (bezpecnost), protoze uzivatel muze potencionalne brouzdat v nebezpecnem prostredi.
Soucasnou hlavni technologii je open stack javascript+html+css. Ale neni jedina. Java applety byl pokus jak poskytnout javovy runtime. Adobe poskytuje Flash/Flex runtime. Microsoft se ted snazi prijit se svym .NET frameworkem v podobe SilverLightu. A kdo dnes vi co prijde v budoucnu?
Kazda tato technologie musi resit dve otazky:
1. jak odstinit bezici webovou stranku (aplikaci) od OS a ostatnich aplikaci
2. jak naopak povolit bezpecnou komunikaci aplikace versus OS a aplikace versus aplikace
Bod 1 byl v minulosti neuralgickym bodem temer vsech implementaci prohlizecu a pluginu na vetsine platforem. To vedlo k paranoie. Webova aplikace nesmi mit pristup k disku (local storage), webova aplikace nesmi mit primy pristup ke clipboardu, webova aplikace nesmi nic vedet o ostatnich aplikacich v OS, atd.
Bod 2 temer nikdo neresil, protoze na to implementatori browseru zkratka nemeli koule. Cest jedine vyjimce a tou je flash (prave proto se dnes pres flash musi delat tolik hacku, aby se webova aplikace vic priblizila desktopu, protoze je to jedina mozna cesta).
---
Predstavte si na chvili, ze za 10 let bude bezna sirka pasma 100MB/s a cena bude blizka nule. Ceny dnesniho vypocetniho vykonu a prostoru budou take marginalni.
Prestavte si, ze prijde nova webova technologie, ktera poskytne bohatou multiplatformi technologii pro tvorbu a beh aplikaci, ktera bude podobna treba dnesnimu .NET frameworku (nebo dosadte vasi oblibenou).
Zatimco dnesni pristup je:
1. stahnu instalator
2. apliakci verim, takze ji nainstaluji do OS (a dam ji fakticky prava s nim delat cokoliv)
3. aplikaci pouzivam
4. aplikaci odinstaluju
Budouci pristup bude
1. navstivim stranku s aplikaci
2. aplikace se sama stahne a nainstaluje do noveho "sandboxu"
3. aplikaci pouzivam, pokud chce aplikace nejakou sluzbu po OS nebo od jine aplikace v OS, tak tuto aktivitu musim jako uzivatel povolit
4. aplikace se muze s celym sandboxem odinstalovat sama, pokud ji treba mesic nepouzivam (to neni zadna tragedie, data mohou byt ulozena nekde v cloudu)
Co je to ten sandbox?
To je zivotni prostor pro aplikaci izolovany od zbytku vesmiru. Nicmene mohou existovat uzivatelem kontrolovatelne kanaly, jak muze tento sandbox interreagovat s okolim.
Jak se da tento sandbox implementovat?
1. tak jako doted, browser je sandbox (flash runtime je sandbox, apod.), tady je obrovska nevyhoda, ze browser je normalni aplikace na urovni OS a jakakoliv bezpecnostni chyba v ramci browseru muze znamenat kompromitaci OS.
2. na urovni OS, tzn. OS sam umi vytvaret izolovane prostory a jejich management (=WebOS)
3. na urovni virtualniho stroje: "pro kazdy sandbox vytvorim novy box s cistymi windows a aplikaci do nej automaticky nainstaluji", dale poskytnu na urovni hostujiciho operacniho systemu neco co bude agregovat desktopy vsech sandboxu, jejich filesystemy a dalsi komponenty.
Bod 3 neni zadna science fiction, podobne mechanismy ma dnes jak VMWare (Unity mode), tak Parallels (Seamless mode).
S takovou technologii neni pak vubec problem bezet webove aplikace, ktere jsou stejne komplexni jako dnesni CAD systemy.
A co s dnesnimi windows(OSX,*nix) a vsemi temi aplikacemi pro ne? Windows budou v budoucnu bezet jako jeden z tech sandboxu. A uzivatel nemusi ani nic poznat. Vsechny stare tvrde aplikace, budou automaticky instalovany do tohoto "bordel sandboxu".
Pak v takovýhle představě dost daleká budoucnost (to co jsi napsal je hezká teorie, ale praxe je jaksi poněkud jiná - rozhodně u stávajících firem, který by přechodem k něčemu takovýmu musely mít řádově úplně jiný rozpočty, aby něco takovýho implementovaly).
A ty výpadky? Nejde o to, že by to nešlo udělat prakticky bez výpadků nebo několikrát zálohovaný, ale stálo by to ve středně velký až velký firmě takový prachy (v počátku, i jako pravidelný testy a údržba), že by si to každej setsakra rozmyslel. Navíc, když pro to neni žádnej rozumnej důvod.
Ano, varianta 3 je velmi reálná a je vidět, že tam vývoj směřuje. Netroufl bych si sice tvrdit, že přesun na síť bude tak velký, ale bude velmi znát.
Svým způsobem je už dnes vidět velký posun na Windows Vista a MS tímto směrem evidentně hodlá pokračovat. Nyní dostávají různé aplikace svůj prostor, jsou odstíněny od zbytku světa přes virtual stores (viz UAC), pro podporu starších aplikací se využívají různé emulace a sandboxy (win32 pod 64bit, nebo ještě zajímavěji v MacOS X běh aplikací pro MacOS 9.x, případně Parallels jako doplněk třetí strany; u win je sice o něco větší provázanost se systémem i aplikacemi navzájem, ale to není teď tak podstatné), MS se snaží zapracovat hlouběji do systému svého hypervisora atd.
Z tohoto pohledu si troufám tvrdit, že např. Linuxový desktop se opět odkládá, protože zase zaspal aktuální trendy a Linux jako takový přestane být potřeba. Prostě se bude masivněji virtualizovat, různě propojovat prostředí a síťové aplikace budou takovým vedlejším efektem (netroufnu si tvrdit, jestli příčinou či důsledkem).
Celkově bych si troufnul tipnout, že do budoucna zde budou tři typy aplikací:
1. čistě síťové a většinou zdarma. Sem budou patřit různé webmaily, jednoduché office atd. Zkrátka věci, které známe už dnes, jen se jejich spektrum rozšíří a pro soukromé využití to budou dostatečné nástroje (soukromí v tomto kontextu nechci řešit - to je osobní věc uživatelů).
2. klasické lokální aplikace, tak jak je známe dnes. Jejich skupina bude postupně řídnout.
3. "pronajímané" aplikace - takové jaké nastiňujete. Taková aplikace bude mít centrálně spravované binárky, updaty apod., lokálně se nainstaluje na OS (ať už v snadboxu či přímo), bude tedy využívat výkon lokálního počítače, data budou buď lokálně nebo spravovaná přes nějaký webDAV či podobný nástroj - tj. lokálně zpracovaná, centrálně verzovaná. I tuhle skupinu aplikací už známe dnes. Význam takových aplikací ale do budoucna velmi výrazně poroste. Pokud se dobře zvládne cenový model, může to být velmi zajímavé jak pro firmy, tak i pro uživatele. Pro firmy to přinese navíc bonus v podobě menší míry pirátství, pro uživatele možnost mít aplikaci stále up-to-date a další.
ještě jak to tak čtu, neberte to prosím jako polemiku o Linuxu. A ani tvrzení, že Linux nebude potřeba není zrovna šťastné - měl jsem na mysli Linux coby náhradu mainstreamového DESKTOPOVÉHO OS. Prostě než Linux stihne trošku výrazněji konkurovat Windows a MacOS na poli desktopů, tak už vlastně ani nebude tolik potřeba, protože se změní podmínky a požadavky na OS.