Přejít k navigační liště

Zdroják » Různé » Svezou se webové technologie Metrem?

Svezou se webové technologie Metrem?

Články Různé

Před několika týdny předvedl Microsoft chystaný operační systém Windows 8 – systém, který by měl sjednotit desktopová PC/Win s tablety a dalšími mobilními zařízeními připojenými k internetu – neboli „connected devices“. Zároveň potvrdil příklon k webovým technologiím, které budou alternativním nástrojem pro psaní aplikací…

V mobilním světě tahle svatba už proběhla. Aplikace pro mobilní zařízení je, s větší či menší námahou, to podle platformy, možné psát v HTML/JS. Teď se má touto cestou vydat i desktop…

Před lety jsem se zamýšlel nad nastoupeným trendem webových aplikací – to byly doby „Webu dvanula“, kulatých rohů, nástupu AJAXu a HTML ohnutého pomocí stylů a skriptů k nepoznání. Tehdy to jednoznačně vypadalo jako technologický hack, který využíval technologii, určenou k vytváření a prezentování strukturovaných dokumentů, k něčemu úplně jinému. Z druhé strany nastupovaly technologie, vyvinuté a určené právě pro psaní webových aplikací, jako Flex nebo Silverlight – zdálo by se logické, že specializovaná a pokročilejší technologie zvítězí. Vývoj opět potvrdil, že nezáleží na přání inženýrů a na vyspělosti technologií, ale na realitě a rozšíření. Vítězem klání se nakonec stalo HTML, rozšířené o prvky vhodné pro vytváření UI, a JavaScript, rozšířený o „systémové API“.

Stáhl jsem si Windows 8 a spustil ho ve virtuálním počítači. Ano, je to „programátorský náhled“ a „výsledná podoba se může změnit“. Tedy – doufejme, že se doopravdy změní. Představa, že by Metro bylo výchozí prostředí na desktopu je, řekněme, příliš revoluční. Ale v náhledu to tak je, a výmluvně to hovoří o postoji, jaký Microsoft k Metru zaujímá – je to pro něj cesta na mobilní telefony, tablety a další podobná zařízení. Jedná se o obrovský trh, na němž Microsoft nechce stát stranou, a zvolil podobnou cestu jako Apple. Tedy vytvoření ekosystému z PC, přenosných zařízení a podnikového backendu (pro Microsoft stěžejní, na rozdíl od Apple), v němž spolu všechny části perfektně komunikují a uživatelé mohou všechny využívat „přibližně stejným“ způsobem.

Metro tedy nabídne aplikace v HTML/JS a bezešvé propojení webových technologií s klasickým operačním systémem. Pomocí bohatého API bude možné vytvářet „téměř nativní“ aplikace. Což je dobré – náhle se otvírá pole webovým vývojářům, kteří mohou využít své znalosti a zkušenosti a tvořit aplikace pro desktopy, tablety i mobilní telefony.

Ale je to výhra i pro webové technologie?

Spojení mobilního a webového světa bylo docela šťastným svazkem. Do mobilního světa přineslo jednoduchou a přenositelnou technologii, určenou pro práci na síti, navíc lety ověřenou. Pro webové technologie byl přínos v rychlejším přijetí věcí jako geolokace, offline cache nebo lokální úložiště. Bude takové oboustranné obohacení fungovat i v případě Windows 8 / Metra? Já jsem v této otázce lehce skeptický.

Webové technologie jsou nejsilnější tehdy, když jsou otevřené a široce implementované. Ze samotné podstaty vyplývá, že méně proprietárních technologií znamená snazší přenositelnost mezi platformami, a ta je u webu klíčová. Ideálem je web, který funguje pro uživatele na jakémkoli zařízení stejně. Na druhou stranu Metro, respektive jeho API určené pro práci s funkcemi OS, bude jistě výborný nástroj pro vývoj aplikací, z něhož budou vývojáři aplikací nadšení – ovšem bude mít co nabídnout „webovým technologiím“ zpátky?

Čistě hypoteticky ano. Jistě existují nějaké funkce, které by bylo možno (nebo záhodno) implementovat do webových technologií. Představme si nějakou takovou, která je součástí API Metra… Do standardů se pravděpodobně nedostane v takové podobě, v jaké je v API. Bude pak Microsoft přidávat zpětně tyto funkce, které leckdy budou pouhým aliasem, nebo prohlásí toto API specifickou JS „knihovnou“ pro Metro, nezávislou na dalším rozvoji webových technologií?

Rozumím rozhodnutí Microsoftu. Chápu, že něco takového by nebylo bez proprietárního API možné. Chápu, že nebylo možné postupovat cestou protlačení těchto funkcí do standardů. Ale mírnil bych nadšení webařské komunity. Je příjemné, že se otevírá nová oblast, kde je možné použít webové technologie, ale do jisté míry je to krok zpět, k proprietárním technologiím, k vzájemné nekompatibilitě a k tomu, že sice bude časem možné psát „aplikace v HTML/JS“  pro všechny možné systémy, ale budou navzájem nepřenositelné.

Stručně řečeno: weboví vývojáři budou moci vytvářet „nativní aplikace“ pomocí webových technologií; budou se ale muset smířit s tím, že tyto aplikace zase poběží jen v jednom jediném OS. Nejbližší roky ukážou, jestli to bude šťastné spojení, nebo jestli tudy cesta nevede.

Ostatně i Active Desktop nebo widgety pro Windows Vista byly podobným „využitím webových technologií v OS“ – čeká API pro Metro podobný osud? Uvidíme. Jsem poměrně skeptický a zdá se mi, že i toto bude „příliš revoluční myšlenka“…

Komentáře

Subscribe
Upozornit na
guest
23 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
blizz

MS sa snaží spojiť svet webu so svetom desktopu už od čias Windows 98. technológie ako Active Desktop, alebo Active Channel sa ale netešili veľkej popularite. pamätám si ako som vždy po inštalácii Windows hľadal voľbu disable active desktop. Ktovie či celé metro nakoniec nedopadne rovnako. Typický užívateľ Windows je totiž veľmi konzervatívny a nemá rád rôzne technologické nezmysly ktoré žerú systémové prostriedky. A tiež dáva prednosť rýchlim natívnym aplikáciám pred ich pomalšími variantami. Stačí porovnať aký úspech má uTorrent napísaný v C++ v porovnaní napr. s Azureusom napísaným v Jave.

blizz

rýchlYm

Lukas

Mam Win 8 nainstalovane na sve Iconii W500, a muzu rict ze rychlosti, resp, pomalosti bych se opravdu nebal. Je to nadherne svizne, start z vypnuteho stavu je tak 10s, co se tyka prepinani hibernace/ready stav – stejne rychle jako odemknuti mobilu ( akorat musim tukat heslo )

Je par veci ktere bych tomu vytknul – nahore neni Xko na zavreni aplikace a uprimne jsem neprisel na to jak nejakou killnout bez pouziti spravce uloh z klasickeho prostredi. Dale treba zmena velikosti fontu v normalnim prostredi ( kvuli velikosti ikon a vseho ) ho zmeni i v metru kde je to k nicemu a pak to mistama nejde ovladat, nektere aplikace jsem nepochopil… jako obvykle proste =)

bauglir

1/ nejsem si jist, ale mám za to, že specifické (ne nativní ESMAS, ne W3C) funkcionality vázané na WinRT jsou uvnitř namespaces, především Windows, takže pokud by do budoucnosti vznikla ne úplně kompatibilní funkcionalita jako W3C/WHATWG funkcionalita, tak by MS neměl mít problém implementovat tu novou, hold by měl 2 funkce. Mám za to, že MS rozhodně pojal interoperabilitu za velmi důležitý aspekt.

2/ Abych negeneralizoval, tak za sebe napíšu, že jako desktop i web developer si myslím, že webdeveloperovi se zkušeností s psaním web aplikací půjde přechod na METRO aplikace mnohem jednodušeji, než desktop developerovi, který by chtěl napsat webaplikaci. Webdeveloper už jazyk zná, pokud psal webaplikace, má představu o rozdílu mezi stránkou a aplikací a WinRT API bude prostě jenom další API, které se naučí (podobně jako DOM, WebSockets, jQuery….). Alespoň to si myslím já… Samozřejmě desktop má trošku jiné vlastnosti než čistý web (a nároky na vzhled a chování), ale IMHO ten přechod nebude dramatický…

3/ s kvalitou, kterou IE10 ukazuje, rozhodně očekávám přepsání spousty webaplikací na Metro, kde na na webu pro neWin8 uživatele poběží verze, která v současné době běží / bude běžet a ve Win8 bude +-ta samá verze (JS+HTML+CSS) třeba s dodanejma pár perličkama (např přímý přístup na disk apod.)

Václav Dajbych

Aby to nevyznělo, že Metro-stlyle aplikace jsou jen o webovývh technologiích, chtěl bych jen doplnit, že jdou programovat v C#/XAML či dokonce C++/XAML. A možnost JS/HTML je pro webové kodéry.

bauglir

To samozřejmě vím, ale článek je Metro a webdevelop :)
Upřímně jestli jednoho dne budu psát aplikaci pro metro, budu dost váhat, jestli zvolím C# nebo JS :)

Srigi

Ja nove prispevky k javascriptovym API vitam. Kedysi som sa hral s Adobe AIR a napr. mam velmi pekne skusenosti s async. kodenim pre SQLITE, ktore AIR poskytuje. Dufal som, ze v nejakej uhladenejsej forme sa API v Airu prenesu aj do browserov, aby tie moznosti pre webdeveloperov boli este sirsie. Napr. dnes nie je stale mozne v smartphonoch bez filesystemu (iPhone) uplodovat fotky ulozene v telefone – nie mozne sa k nim nijako dostat.

Preto novym API, ktore sa objavili s HTML5 – FileReader, Drag ‚n Drop events, webworkers a pod. velmi fandim. Ak Metro nejako naznaci nove smery a prinesie naozaj uzitocnu funkcionalitu, bude len + pre webdev komunitu „tie spravne“ API preniest do browserov.

Na druhu stranu, cital som aj nazory od zarytych C++karov v zmysle „OMG, tie webdev lamy budu teraz robit aj desktopove aplikacie. To sme dopadli„. Je na tom nieco pravdy, s mocnym nastrojom treba zaobchadzat zodpovedne, vid. memory leaky na Facebooku.

bauglir

k tomu poslednímu….
1/ podobná diskuze jako Java vs. C#, C++ vs. Pascal, apod. protože „opravdový programátor programuje pouze v jazyku XYZ a ostatní jsou patlalové“… holý nesmysl a politováníhodný a neopodstatněný pocit nadřazenosti
2/ memory leak nemá nic společného s jazykem… memory leak vytvoříte v ledasčem :)
3/ tak je pravda, že webový bastliči dost poničili trh webových stránek (domnívám se, že vinou deklarativních jazyků a jejich nestriktího výkladu a vinou toho, že web stránka není aplikace), otázka je, kolik bastliču má kapacitu na to napsat aplikaci, aplikační logika je jiná dimenze… navíc pokud se bavíme o Metru = desktopu, tak tam se podle mne nic nezmění, bastliči totiž existují i v desktop developmentu, jenom nejsou vidět tolik jako webbastliči.. ale zkuste se občas podívat na nějaký server s free aplikacemi (třeba slunečnici), co tam najdete za hrůzy :)

Jan Pobořil

Jen poznamenám, že ve vyšších (webových) jazycích bývá barbage collector, který memory leaky řeší docela obstojně. Čistě weboví vývojáři tak i podle mě nemívají takový cit pro šetrné zacházení s prostředky.

David Grudl

Pochopitelně to je výhra pro webové technologie. Microsoft udělal neskutečně chytré rozhodnutí, když přidal vedle C# + XAML možnost programovat v JavaScriptu + HTML + CSS. Proč? Protože tak oslovil nejpočetnější skupinu vývojářů. Ti mohou stavět na technologiích, které znají, mohou pro vývoj Metro aplikací třeba použít jQuery.

Motivací rozhodně nebylo dávat něco webovým technologiím zpět, ty slouží čistě jako lákadlo. Metro je postaveno nad Windows Runtime, používá jen IE 10 s nejnovějším 5th ECMAScript a hardware splňujícím požadavky pro Windows 8. Z hlediska vývojáře poměrně ideální situace. Na hony vzdálená klasickému webu.

Ale stejně to výhra pro webové technologie je, protože mají najednou širší uplatnění, získaly na hodnotě a ubraly bodíky konkurenčním technologiím. Velkou část know how získaného při tvorbě Metro aplikací lze uplatnit na webu a obráceně. Win-win situace.

Srigi

Velmi podobne to bolo v Adobe Air – developeri dostali do ruky runtime prostredie postavene na webkite a k tomu kopec novych JS API. Stale si pamatam ten pocit, ked som v podstate kodil klientsky JS kod a nepozeral na nejaku spatnu kompatibilitu, progressive-enhancement a pod. Dokonca som skusil pouzit na layout tabulky bez pocitu viny :D

atamiri

Velká výhoda je možnost využívat WinRT komponenty napsané v C++ (nebo C#). Může tak vzniknout množství univerzálních komponent (které budou rychlé, protože nativní), jež využijí vývojáři aplikací (včetně webařů) jednoduše z JS a dodají jen své UI (v HTML). Doufám, že se tento nápad Microsoftu uchytí.

David Grudl

Ještě dodatek: Microsoft dává vývojářům Windows Runtime API, kterým se dostaneme ke všem užitečným funkcím operačního systému a hardware. Dále knihovnu WinJS, která zjednodušuje práci s JavaScriptem, od tvorby tříd přes manipulaci s DOM až po animace (ta by zřejmě šla použít i na webu). Co ale chybí, je plnohodnotný framework pro tvorbu aplikací. Který by stanoval jednotné chování. Bez něj je situace podobná, jako když nainstalujete čisté PHP. A první roky budou aplikace jeden velký nesourodý bastl.

bauglir

tady nutné poznamenat 2 věci:
1/ jak to bude s controls obecně a RAD ve VS, jestli ovládací prvky budou stejně mezi C++/C#/JS (a odpovídajícími vizuálními jazyky), pokud budou controls stejné, mohly by aplikace vypadat vesměs podobně bez ohledu na jazyk
2/ to je hodně o programátorech…. zda se budou držet chování výchozích aplikací (předpokládejme, že MS nějaké dodá). Na druhou stranu prvky jako outlook bar, ribbon apod. jsou vzhledem k aplikacím, které jsme na desktopech vídali 15 let relativně nestandardní, přesto minimálně pro některé lidi, velmi použitelné a mě se libí na webových aplikacích jejich variabilita… ano, mohou z toho vzniknout strašné bastly, na druhou stranu aplikace mohou (a vhledem k tomu, jak Metro aplikace vypadali při prezentaci tak se také tak stane) opustit desetiletí staré paradigma a mohou mít UI jaké pro ně bude nejvhodnější a nejpoužitelnější. Už teď na desktopu se stačí podívat na UI prohlížečů, Media Playeru (a i dalších playerů), které nemají klasické UI a použili to nejvhodnější pro ně…

atamiri

V současném SDK (developer preview) ještě spousta věcí chybí. Předpokládám, že další verze vnese do problematiky trochu více světla. Lidé z MS (v US) tvrdí, že polovina věcí v dev preview ještě vůbec není.

Jadro007

Docela by mě zajímalo, proč už se desktopové aplikace nepíšou v HTML/CSS/JS dávno, pod windows už od 1999 lze provozovat HTML aplikace..

blizz

pretože doteraz okolo toho nebolo také hype

bauglir

tipnul bych především 3 důvody
1/ web… prostš existuje idea, že je to na webu, tak by to mělo běžet na ledasjakém prohlížeči, uvědomte si, že zrovna v době kolem roku 2000 začíná „kampaň za standardní web“… jenže proti Opeře a Mozille, které na jednu stranu standardnější, ale mnohem méně schopné stojí IE6, mnohem schopnější, ale méně standardní… v následujících rocích vydávat něco MSIE only bylo jaksi uncool, takže takové aplikace se uchytili snad jenom v podnikovém intranetu. Teď se od toho začíná pomalu zase upouštět… už se sice nehraje na značky, ale hraje se na podporu standardů… podporuje ie9, FF7, Chr14 něco? bude to pro ně, nepodporuje to ie8 ff3.6? tak to pro ně prostě nebude… tečka…
2/ rychlost. Jedna věc je být schopen něco napsat, druhá to napsat tak, aby to bylo použitelné… a rychlost před deseti lety byla hodně omezující podmínka
3/ API… před deseti lety byl použitelný vlastně pouze DOM o kterém je 15 známo, že je nepoužitelný :). API jako Canvas2DContext, WebSocket, FileAPI a další umožňují aplikace úplně jiné kategorie.

A se všemi těmito body souvisí controls library… peklo na zemi psát před 10 lety….

Šlo to, ale spíše to připomínalo černou magii, než programování :)

Jadro007

To bude asi ono, když jsem s tím začal pár s měsíců zpátky, tak jsem měl veškerý komfort jQuery a tak :) díky za reakci

David Grudl

Psali se. Třeba UI antiviru Symantec nebo český TVprogram. Bohužel tomu zatnul tipec americký soud kolem roku 2000 http://en.wikipedia.org/wiki/United_States_v._Microsoft když nutil Microsoft odstranit IE z Windows. V tu chvíli to byla nejistá platforma.

František Kučera

S tím Microsoftem je to pořád stejné – stále ta samá písnička – doufá, že se zase začnou vytvářet weby/aplikace „optimalizované pro MSIE“ (fungující jen v MSIE) a tím si k sobě připoutá zákazníky.

Microsoft ztrácí svoje pozice – s tím, jak jsou aplikace čím dál častěji webové, jsou Windows čím dál zbytečnější, člověk je najednou nepotřebuje a stačí mu na mnoho věcí libovolný prohlížeč a libovolná platforma. Tak se snaží, aby se vlk nažral („aplikace je přece webová a to je dnes moderní“) a koza zůstala celá (vendor lock-in, zabránit uživatelům v odchodu na jinou platformu).

Ad „Webové technologie jsou nejsilnější tehdy, když jsou otevřené a široce implementované. Ze samotné podstaty vyplývá, že méně proprietárních technologií znamená snazší přenositelnost mezi platformami, a ta je u webu klíčová.“

+1 – 100% souhlas

bauglir

Njn, všem se nedá zavděčit… někteří pochopí, že Metro aplikace nejsou web aplikace, ale desktopové aplikace a tak budou psát Metro aplikace (systémové) třeba za pomocí JS s přístupem k WinRT a webaplikace cross browser za pomocí standardů pro hilevel browsery (IE10, Chrome, FF)… a někteří nepochopí a kopnou si do MS bez ohledu na to, že Metro aplikace nejsou webaplikace…

Oxymoron

To jsem jediný, kdo si myslí, že webová stránka v prohlížeči by neměl mít přístup k souborovému systému?

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.