Professional Documents
Culture Documents
Uvod HTM5
Uvod HTM5
Uvod HTM5
Uvo d
UVOD
Dobro doli u drugo izdanje predstave koju su za vas pripremili Remi i Brus. Od kada se pojavilo prvo izdanje ove knjige u julu 2010, mnogo toga se promenilo: podrka za HTML5 znatno je ira; konano je izaao Internet Explorer 9; Google Chrome je objavio da e prestati da podrava video-format H.264; Opera eksperimentie sa video-strimingom s korisnike veb kamere preko itaa veba, a HTML5 groznica postaje HTML5 histerija kako klijenti, rukovodioci i novinari svaku novu IT tehniku ili tehnologiju zovu HTML5. O svim tim promenama i mnogo emu drugom govori se u ovom sjajnom drugom izdanju. Novo poglavlje 12 bavi se pitanjima implementacije svih ovih novih tehnologija u starim itaima veba. Uz to, ispravili smo i nekoliko greaka koje su se potkrale u prvom izdanju, ponovo napisali neke posebno opasne delove i dodali bar jedan nov vic. Mi smo dva programera koja se igraju jezikom HTML5 od Boia 2008. godine ekspe rimentiemo, uestvujemo u diskusijama na relevantnim mestima i, uopte, pokuavamo da pomognemo da se jezik uoblii i da ga nauimo. Budui da smo projektanti softvera, zainteresovani smo za praktine stvari. Zbog toga se ova knjiga bavi problemima koje HTML5 moe da rei, a ne akademskim razmatranjem samog jezika. Vredi napomenuti i sledee: mada Brus radi za kompaniju Opera Software, koja je zapoela proveru koncepta to je na kraju doveo do jezika HTML5, on nije u njihovom timu za izradu specifikacije jezika; pre svega je tu kao autor zainteresovan za korienje ovog jezika u izradi pristupanih, interoperabilnih veb sadraja koji se lako prave i odravaju.
U v od
ix
S druge strane, specifikacija vas ne ui kako da koristite svaki element ili API, ni kako oni zajedno funkcioniu tu na scenu stupa ova knjiga. Postupno emo izgraditi primere, razmatrajui usput nove teme, a vraaemo im se kasnije, kada bude bilo potrebno objasniti nove stvari. Na osnovu debljine knjige verovatno vam je jasno i da ona nije sveobuhvatna. Za obja njavanje specifikacije koja ima 700 strana (poreenja radi, prva specifikacija HTML-a imala je tri strane) u relativno tankoj knjizi, bila bi potrebna ili tehnologija na nivou Tardisa (to bi bilo super) ili mikroskopski fontovi (to ne bi bilo preporuljivo).
Uvo d
Sve se odvijalo brzo i kao da je sve u najboljem redu generacija programera (ili bar projektanata profesionalnih standarda) ohrabrivana je da razmilja o ispravnom, dobro strukturiranom kodu. Meutim, tada je poeo rad na specifikaciji XHTML 2.0, koja je predstavljala revolucionarnu promenu jezika jer je rtvovana kompatibilnost sa starijim verzijama kako bi jezik postao loginiji i bolje projektovan. Ipak, mala grupa ljudi u kompaniji Opera nije bila ubeena da je XML budunost za sve veb autore. Oni su nezvanino zapoeli rad na specifikaciji koja je trebalo da dokae ispravnost njihovog koncepta, a koja je proirivala HTML obrasce ne naruavajui kompatibilnost sa starijim verzijama. Ta specifikacija je na kraju postala Web Forms 2.0, a kasnije je uklopljena u specifikaciju jezika HTML5. Njima su se ubrzo pridruili pojedinci iz kompanije Mozilla, pa je ova grupa predvoena Janom Hiksijem Hiksonom iz Opere nezavisno nastavila da radi na specifikaciji, pri emu je kompanija Apple navijala sa strane, u maloj grupi koja je sebi dala ime WHATWG (Web Hypertext Application Technology Working Group, www.whatwg.org). Ovaj razvojni tok jo uvek se prepoznaje u napomeni o autorskim pravima na WHATWG-ovoj verziji specifikacije: Copyright 20042011 Apple Computer, Inc., Mozilla Foundation, and Opera Software ASA (note that you are licensed to use, reproduce, and create derivative works). Hikson je preao u Google, gde je nastavio da radi puno radno vreme kao urednik na projektu HTML5 (koji se tada zvao Web Applications 1.0). Godine 2006, W3C je zakljuio da su moda bili preveliki optimisti kada su oekivali da e ceo svet da pree na XML (i, po analogiji, na XHTML 2.0): Neophodno je postupno, u koracima, razvijati HTML. Pokuaj da se svet natera da prihvati XML ukljuujui navodnike oko vrednosti atributa, kose crte u praznim oznakama i imenske prostore, i to sve odjednom nije uspeo, izjavio je Tim Berners Li. Vaskrsla grupa HTML Working Group glasala je za korienje WHATWG-ove specifikacije Web Applications kao osnove za novu verziju HTML-a, i tako je zapoeo udan proces u kome su istu specifikaciju istovremeno razvijali W3C (uz kopredsedavanje Sema Rubija iz IBM-a i Krisa Vilsona iz Microsofta, a kasnije Rubija, Pola Kotona iz Microsofta i Macieja Staoviaka iz Applea), i WHATWG, pod stalnim rukovodstvom Hiksona. Razvojni proces je bio krajnje neobian na vie naina. Prvo, zbog svoje izvanredne otvorenosti; svako je mogao da se pridrui WHATWG-ovoj listi slanja i da doprinese specifikaciji. Svaku poruku je proitao Hikson ili neko iz jezgra WHATWG tima (ukljuujui i takve veliine kakvi su autor JavaScripta i tehniki direktor Mozille Brendan Ajk, projektant Safarija i projektant WebKita Dejvid Hajat i autor CSS-a i tehniki direktor Opere Hakon Vijum Li). Dobre ideje su primenjene a loe odbaene bez obzira na to ije su bile ili koga su predstavljale, pa ak i to gde su prvi put predloene. Dodatne dobre ideje preuzete su sa Twittera, blogova i IRC-a, a zatim prilagoene. Godine 2009, W3C je prestao da radi na XHTML 2.0, preusmerio je resurse na HTML5 i bilo je jasno da je HTML5 dobio bitku filozofija: istoa dizajna, ak i ako naruava kompatibilnost sa starijim verzijama, naspram pragmatizma i nenaruavanja veba. Vana je bila i injenica da su radne grupe za HTML5 inili predstavnici svih proizvoaa itaa veba. Kada proizvoai nisu eleli da primene neki deo specifikacije (kao to Microsoft nije hteo da implementira element <dialog>, a Mozilla <bb>), on je bio odbaen. Hikson je rekao: Stvarnost je to da proizvoai itaa veba imaju pravo veta na sve u specifikaciji,
U v od
xi
jer ako oni neto ne implementiraju, specifikacija je samo mrtvo slovo na papiru. Mnogim uesnicima se to uopte nije dopalo: proizvoai itaa veba su oteli na veb, alili su se oni ne sasvim neopravdano. Poteno je rei da poslovni odnosi izmeu W3C-a i WHATWG-a nisu bili glatki kao to su mogli da budu. W3C funkcionie po principu konsenzusa, dok je Hikson nastavio da radi onako kako je radio u WHATWG-u kao dobronameran diktator (mnogi e se mrtiti na na izbor rei dobronameran u ovom kontekstu). Hikson je svakako imao veoma vrste ideje o tome kako jezik treba da se razvije.
Preciziranje interoperabilnih ponaanja postojeih veb itaa Definisanje obrade greaka po prvi put Razvoj jezika kako bi se autorima olakao razvoj veb aplikacija
xii
Uvo d
(s pogrenim redosledom zavrnih oznaka) rezultirao je razliitim DOM-om u razliitim itaima. Isti CSS kd moe, zbog razliitog DOM-a da potpuno drugaije stilizuje sadraj, a i pisanje JavaScript koda koji e se izvravati u razliitim itaima moe da se zakomplikuje vie nego to je potrebno. Konzistentan DOM je toliko vaan za HTML5 dizajn, da je sam jezik definisan preko DOM-a. Radi poboljanja interoperabilnosti, od presudnog je znaaja da obrada greaka bude ista u svim itaima, tako da se isti DOM dobija ak i u sluaju neispravnog HTML koda. Da bi se to postiglo, bilo je neophodno da neko to precizira. Kao to smo rekli, HTML5 specifikacija ima vie od 700 stranica, ali je samo oko 300 strana relevantno veb autorima (vi i mi), dok je ostalo namenjeno implementatorima veb itaa i precizno ih upuuje u to kako da razlau kd za oznaavanje ak i kad sadri greke.
Veb aplikacije
Sve vie veb lokacija predstavljaju ono to zovemo veb aplikacijama, to jest, ponaaju se kao samostalne aplikacije a ne kao tradicionalni statini dokumenti s tekstom, slikama i vezama koji preovlauju na vebu. Primeri su veb programi za obradu teksta, alatke za obradu slika, za generisanje mapa itd. U velikoj meri zavise od JavaScripta i iscrpeli su sve mogunosti jezika HTML 4. HTML5 definie nov DOM API za prevlaenje i putanje, dogaaje koje alje server, crtanje, video i slino. Ovi novi interfejsi koje HTML stranice prosleuju Java Scriptu pomou objekata u DOM-u olakavaju pisanje takvih aplikacija zahvaljujui vrsto definisanim standardima koji su zamenili jedva dokumentovane hakerske trikove. Jo vanija je potreba za otvorenim standardom (koji se moe slobodno koristiti i implementirati) koji se moe nositi s vlasnikim standardima kao to su Adobe Flash ili Microsoft Silverlight. ta god mislili o ovim tehnologijama ili kompanijama, verujemo da je veb
U v od
xiii
previe vana platforma za drutvo, trgovinu i komunikaciju da bi bila u rukama jednog proizvoaa. ta bi bilo s renesansom da je Kakston drao patent i monopol na proizvodnju tamparskih maina?
Ne lomite mi veb
Na vebu ima nekih zilion stranica, i imperativ je da se sve one i dalje prikazuju. Zato je HTML5 (najveim delom) nadskup jezika HTML 4 koji nastavlja da definie kako da se veb itai ponaaju kada naiu na zastarele oznake poput <font>, <center> i druge sline prezentacione oznake, poto ih koriste milioni veb stranica. Ali autori ne bi trebalo da ih primenjuju jer su prevaziene. Veb autori se sada okreu semantikom oznaavanju, premda e svaki italac sam da zakljui da li HTML5 obuhvata dovoljno semantike ili ima previe elemenata. Kao dodatak, nedvosmislena pravila ralanjivanja (engl. parsing) koja vae u jeziku HTML5 trebalo bi da osiguraju da stare stranice funkcioniu u razliitim veb itaima, jer e se HTML5 ralanjiva (engl. parser) koristiti za sve HTML dokumente nakon to se implementira u svim veb itaima.
A ta je sa XML-om?
HTML5 nije XML jezik (nije ak ni SGML jezik, ako vam to neto znai). Mora se prosleivati kao text/html. Meutim, ako morate da upotrebite XML, za to postoji XML serijalizacija zvana XHTML5. Daje iste mogunosti, ali (to nije iznenaenje) zahteva strou sintaksu (ako ste ve pisali XHTML kd, ovo e vam biti isto). To mora biti dobro oblikovan XML i mora se prosleivati kao XML MIME tip, ak i ako IE8 i prethodne verzije Internet Explorera ne mogu da ga obrade (ponudie korisniku da preuzme sadraj umesto da ga prikau). Zato u ovoj knjizi koristimo HTML sintaksu a ne XHTML sintaksu.
Podrka za HTML5
HTML5 napreduje veoma brzo. W3C je pozvao na poslednju iroku reviziju specikacije maja 2011, ali su itai mnogo pre toga ve poeli da implementiraju podrku za HTML5 (naroito za ono to se odnosi na API-je). Ta podrka e nastaviti da se razvija kako itai budu usvajali nove elemente i funkcionalnosti, pa e nae primedbe kako ovo podrava samo ita X biti sve ree, to je dobro. Nove mogunosti itaa veoma su uzbudljive i nali su se pojedinci koji su napravili veb lokacije da bi testirali podrku veb itaa za HTML5. Veina njih bez reda i plana mea specikacije, provere jezika HTML5, specikacije po ugledu na WHATWG kao to je Web Workers, a potom u to gura WebGL, vektorsku graku, W3C File API, multimedijske upite i neke Apple zvrke. Ne zadravajte se previe na tim veb lokacijama. Njihove procene su proizvoljne, a denicije jezika HTML5 besmislene i obmanjujue. Kao to na recenzent Patrik Loke istie: HTML5 nije trka. Nije stvar u tome da e prvi ita koji sve to implementira zavladati internetom. itava ideja iza rada na specikaciji jeste to da e svi itai konzistentno podravati isti skup mogunosti. Preporuujemo da trenutno stanje podrke za New Exciting Web Technologies potraite na lokaciji http://caniuse.com iji je autor Aleksis Deveria.
xiv
Uvo d
Bacimo se na posao
To je bila lekcija iz istorije uz neto malo filozofije. HTML5 se ponekad namerno kosi s drugim specifikacijama radi kompatibilnosti s ranijim kodom, esto definie ono to itai zaista rade umesto da, poput RFC dokumenta, nalae ta bi trebalo da rade. Zato se HTML5 ponekad ini poput zakrpe ili kompromisa to i jeste. A ako je to cena koju moramo da platimo kako bismo dobili interoperabilan, otvoren veb, onda kaemo: iveo pragmatizam! Jeste li vezali pojaseve? Poleemo.