První GDE summit a HTML5 technologie v Googlu

Co to znamená být Google Developer Expert? Jak proběhl GDE sraz v San Franciscu? Jaká je budoucnost Google Closure, Angularu a Dartu? Co je to Este.js? To se dozvíte v dnešním článku.

Google Developers Expert (GDE), je nový program Googlu pro nezávislé experty, kteří nepřímo propagují některou z jeho technologií, ať už přednáškami, psaním, open source projektem, či prostě jen tak, že ji používají. Říká se, že neexistují slavní vývojáři, jen hlasití, a snad proto jsem byl Filipem Hráčkem navržen do programu za Česko, pro HTML5 technologie.

Na celém procesu mne překvapila minimální byrokracie. Pár mailů a jeden pohovor. Po Skypu, s rodilým mluvčím a špatným spojením, což vždy procvičí mou telepatii. O výsledku jsem se dozvěděl tak, že mi rovnou přišla pozvánka na první summit do San Franciska, nic víc, žádné zbytečné maily. Chválím.

První den jsme přetrpěli nezbytné organizační meetingy a socializační workshop, který nás, pod záminkou naučíme vás se prezentovat, měl sblížit. Vidět přes 40 geeků z celého světa trénovat svůj body language velmi nedůvěryhodným bývalým hercem byl zajímavý zážitek.

Podstatný byl však den druhý, kdy nám byli předhozeni vedoucí projektů, za které jsme GDE členství dostali. Největší zastoupení měl Android a HTML5. Ačkoliv jsem byl zvolen za HTML5, nejvíce mne zajímaly informace o Google Closure Tools, což je dle mého mínění stále nejpropracovanější a nejrobustnější technologie pro vývoj webových aplikací, a jejím vztahu k ostatním Google technologiím.

Abyste tomu rozuměli, Google je zajímavá firma. V současnosti aktivně vyvíjí hned tři různé technologie pro vývoj webových aplikací. Každá je fundamentálně jiná, a každá má své vlastní nej, přičemž Google masivně propaguje pouze dvě z nich. Tyto technologie jsou: Angular, Closure, Dart. Pokusím se vysvětlit, proč Google vsadil na tři koně, proč nijak nepropaguje Closure, co to znamená pro programátory, ale nejprve zmíněné technologie stručně představím.

Angular a Google Closure

Angular pokračuje tam, kde jQuery skončilo. jQuery nedokázalo překročit svůj stín DOM helper nástrojů a jednoduchého systému pluginů. To bylo však cool před mnoha lety, dnes se ale to nejzajímavější odehrává mezi javascriptovými MVC frameworky. Ty ordinují strukturu aplikace ve snaze oddělit model, view, a to co zbude tak, aby se aplikace lépe udržovala a testovala. Angular skrze svůj šablonovací systém ještě více usnadňuje práci s DOM. Angular také evangelizuje testování a dependency injection, pojmy donedávna v javascriptovém světě neznámé. Když jsem Angular viděl poprvé, nemohl jsem pochopit, proč jej Miško nenapsal s využitím Closure Tools. Angular jde sice s Closure použít, ale jen nešikovně, a bez využití Closure Compileru. Compiler je velmi mocný nástroj, který dodává javascriptu mocnou statickou analýzu (neocenitelné při refactoringu), a s ničím nesouměřitelnou míru komprese (neocenitelné pro vývoj mobilních aplikací).

Bohužel, Angular je psán „stringly typed“ kódem, se kterým si kompiler z principu neporadí. S klukama z týmu Angular jsme měli oblíbenou zábavu. Pokaždé když jsme se potkali, já se ptal „Kdy bude Angular fungovat s Compilerem?“ a odpověď byla „Ale on funguje,“ na což já vždy odpověděl „Ale ne v advanced módu, a o něm to je.“ Pak jsme se zasmáli a mikrodebatu uzavřeli tím, že Angular je prostě jiná filozofie. Až nedávno zaběhnutý rituál Miško přerušil: „Ahoj, budeš mít radost, přepisuju Angular pro advanced mód, a děsně mě to štve.“ :) Vysvětlím. Angular lze dnes skutečně začít používat okamžitě, stačí přidat jeden soubor z CDN a můžeme vesele kódovat. S Google Closure takhle snadno začít nejde. Za ty úžasnosti, co nám Closure poskytuje, platíme složitějším nastavením dev stacku. Ostatně to byl jeden z důvodů, proč jsem svůj dev stack (a nejen ten) poskytl světu pod názvem github.com/steida/este.

Zpět k Angularu. Nejúžasnější na Angularu je jeho šablonovací systém. Closure Templates takhle mocné nejsou (ale mají zas jiné výhody). Dobrá zpráva je, že se připravuje Angular 2, který bude mít šablonovací systém s Closure compilerem kompatibilní. Je to logické, byla by veliká škoda mít dvě skvělé, ale nekompatibilní technologie.

Dart

Dart je velmi ambiciózní projekt. Není to jen zcela nový jazyk, ale i virtuální stroj. Dart přebírá z Google Closure několik podstatných principů: volitelné typování, kompilace, statická analýza, standardní set knihoven. Dart je myslím budoucnost vývoje, minimálně v Googlu. Je jedno, jestli Dart uspěje mimo Google. To je rozdíl oproti Microsoftu, který technologii která se neujme, nemilosrdně zařízne (Silverlight a mnoho dalších). Microsoft je firma životně závislá na tom, aby vývojáři její technologie používali. Google je v jiné situaci, technologie si vyvíjí, jak potřebuje, jeho příjmy plynou odjinud. Je další důvod, proč věštit Dartu budoucnost – Java. Dart by mohl v Androidu Javu elegantně nahradit.

Na GDE summitu jsem potkal několik velmi zanícených Dartistů a naše první setkání nemohlo skončit jinak, než hádkou na téma Closure vs. Dart. Stačilo pár minut, a Kevin Moore začal lomit rukama a vykřikovat: „Don’t talk to him, he is crazy!“ Po dalších mnoha minutách výměn názorů Kevin přiznal, že čas Dartu ještě nenadešel. Ukázal jsem mu Este.js, technologii nad Closure postavenou, kterou můžete začít produktivně používat už dnes, a Kevin otočil: „I love this guy, he is crazy!“

Jak to tedy je. Dart pozorně sleduji od jeho prvopočátků, stejně jako mnoho dalších frameworků. Stále platí „use right tool for your job“, a já chtěl vždy používat ty nejlepší. Nejlepší pro mne znamená především maximálně robustní. Jak dlouho běží v produkci, jakou má podporu, jak se vyvíjí. Tohle je zvláště na webovém vývoji zásadní. Neexistuje lépe prověřená technologie než Google Closure Tools. Jsou v ní napsané nejpoužívanější aplikace internetu. GMail, GMapy, GPlus, v podstatě GCokoliv používá něco z Closure. Armáda odpočatých skvěle placených programátorů, výsledek mnoha let jejich práce. Tohle žádný open source framework v dohledné době nepřebije. Ale teď tu máme Dart. Znamená to, že Google Closure zahodí? Rozhodně ne. V Googlu dobře vědí, že zahodit Closure by byla single worst strategic mistake.

Closure vs Dart

O Closure vs. Dart jsem se bavil s několik programátory, odpovědi shrnuje asi nejlépe tento stručný dialog s jedním z nich:

Já: „Bude Closure Googlem aktivně používán i za dva roky?“
Google: „I za pět.“
Já: „A Dart?“
Google: „Still interesting research project.“

Z tohoto pohledu je zajímavé, proč Google Closure daleko více nepropaguje? Odpověď jsem tušil a interní zdroje mi ji potvrdily. Closure není žádný oficiální projekt Googlu, kterým by Google sledoval nějaké své business cíle. Je to nástroj, který si programátoři vyvinuli pro sebe, a který opensourcovali ve svém volném čase. A který se spontánně vyvíjí prostě proto, že ho Google používá všude. Angular mi přijde jako nějaký interní startup Googlu pro budování ninja superhero komunit. Nedivil bych se, kdyby rozpočet pro Angular šel z kolonky PR. A Dart? Dartem chce Google v delším období patrně odstřihnout Javu, a zcela určitě vytvořit vlastní vývojářský ekosystém pro Chrome OS a web. Více o Closure tu nemá smysl psát, protože bych jen opakoval argumenty z dřívějšího článku. Zajímá-li vás Closure více, napište mi nebo přijďte na školení.

Poslední den byl věnován různým sociálním aktivitám. Vřele doporučuji návštěvu muzea počítačové historie. Je opravdu velmi dobře vybavené. Byl jsem dojat, když jsem si fotil mikročip s kapacitou miliónkrát menší, než má můj iPhone. Je neuvěřitelné, jak obrovský udělal HW pokrok, zvláště když to srovnáme se SW. Prohlédli jsme si také celý Google Plex. Evgeniy, GDE z Ruska, naprosto vše detailně fotil. Říkám mu, „Evgeniy, ty už máš tolik fotek, že si v Moskvě můžete postavit kompletní kopii GoogleHQ!“. Jen se na mě usmál, přiložil si prst ke rtům, a řekl: „Psst!“ ;)

Independent software gardener, libertarian, web applications consultant and trainer. Google Developer Expert since 2012.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 10

Přehled komentářů

Čelo dobré
Martin Hassman Re: dobré
Borek Bernard Super článek
mormegil Hnidopich
Daniel Steigerwald Re: Hnidopich
Eda Fajn článek
Martin Hassman Re: Fajn článek
Martin Hassman Re: Fajn článek
Ladislav Thon, Dart GDE Re: První GDE summit a HTML5 technologie v Googlu
Daniel Steigerwald Re: První GDE summit a HTML5 technologie v Googlu
Zdroj: https://www.zdrojak.cz/?p=3764