EMII HTML5 Witold Lasik Referat przedstawiający specyfikację HTML a 5, czyli najnowszego języka znaczników wywodzącego się z rodziny HTML i XHTML. Omówione w nim zostaną najistotniejsze zmiany tego standardu w stosunku do jego poprzedników. Poddane zostaną analizie wszystkie udogodnienia w zakresie projektowania dokumentów i aplikacji webowych oraz dokonana zostanie próba zestawienia HTML a 5 z innymi, konkurencyjnymi technologiami. Witold Lasik EMII rok IV, studia dzienne magisterskie
Wstęp Już na wstępie należy sprecyzować skąd wywodzi się standard HTML5 i czym tak naprawdę jest. Dla osób, które miały styczność z tworzeniem stron WWW kwestia roli i znaczenia HTML-a będzie dość oczywista, dlatego też sam fakt pojawienia się w 2006 1 inicjatywy tworzenia tego standardu był zrozumiały i przewidywalny. W przypadku osób, które nie miały do czynienia z żadną odmianą HTML-a czy XHTML-a należy wspomnieć, że wspomniane języki znaczników 2 służą dzisiaj przede wszystkim do opisywania struktury stron WWW i ich wszelkich odmian takich jak: aplikacje webowe, strony oparte głównie na technologiach zewnętrznych (Adobe Flash 3, Microsoft Silverlight 4, JavaFX 5 ), szeroko pojęte produkty RIA 6. Warto tutaj podkreślić, że pomimo znacznego rozwoju technologii konkurujących z HTML-em większość z nich nadal go używa do stworzenia struktury bazowej dokumentu w którym osadzona swój obiekt. Przywołana wcześniej data 2006 roku wiąże się z nawiązaniem współpracy między dwoma podmiotami - WHATWG 7 oraz W3C 8, które zdecydowały się wspólnie rozwijać nową specyfikację języka HTML, czyli HTML5. Do roku 2006 organizacje te pracowały oddzielnie nad własnymi produktami. W3C w latach 2002-2006 rozwijało następcę rodziny języków XHTML 1.x 9 (bazujących na XML-u 10 ), czyli XHTML-a 2.0 11. W związku z całkowitym brakiem kompatybilności wstecznej języka XHTML 2.0 ze specyfikacją HTML 4.01 oraz co bardziej szokujące z rodzinnymi językami XHTML 1.x rozwój standardu okazał się błędną decyzją ze strony W3C. Grupa zajmująca się rozwojem XHTML 2.0 została definitywnie zamknięta 2 lipca 2009 roku 12. Web Hypertext Application Technology Working Group (WHATWG) od czerwca 2004 roku rozwijało szereg własnych standardów kładąc duży nacisk na Web Applications 1.0 13. Technologia Web Applications 1.0 była rozszerzeniem dla HTML-a (głownie na potrzeby wersji 4.01) i konwencji DOM 14. Przyczyniła się ona do znacznego uproszczenia rozwijania aplikacji webowych. Wraz z innymi technologiami opracowywanymi przez WHATWG takimi jak: Web Forms 2.0 15 (rozszerzającej funkcjonalności elementów formularzy zaimplementowanych w HTML 4.01) oraz Web Controls 1.0 16 (technologia usprawniająca tworzenie nowych właściwości istniejących elementów i widgetów w oparciu o CSS i DOM) znacznie poszerzyły obecną funkcjonalność HTML5 nie zrywając tym samym z kompatybilnością wsteczną. To właśnie kwestia kompatybilności wstecznej przyczyniła się w dużym stopniu do pozytywnego przyjęcia całej specyfikacji przez społeczność web designerów, web developerów, a także firm i podmiotów silnie związanych z branżą IT. Będą przy temacie kompatybilności warto wspomnieć, że w momencie pojawienia się XHTML 1.0 (rok 2000), który był w rzeczywistości XML-ową reprezentacją dokumentów w standardzie HTML 4.01 mieliśmy do czynienia z pierwszym znaczącym zachwianiem kompatybilności wstecznej na scenie języków znaczników używanych do opisu dokumentów webowych. Częściowym rozwiązaniem było sformułowanie DTD 17 w formie Transitional, a tym samym mieszanie specyfikacji HTML 4.01 i XHTML 1.0. Jednak takie rozwiązaniem uniemożliwiało korzystanie z niektórych udogodnień nowego standardu takich jak osadzanie bazujących na XML-u obiektów SVG 18 i MathML 19. Funkcjonalności te były zarezerwowane dla formalnej struktury dokumentu określonej jako XHTML 1.0 Strict, a sam dokument musiał być przekazywany z typem MIME 20 application/xhtml+xml. Warto zaznaczyć, że HTML5 jest w pełni kompatybilny ze standardami HTML 4.01 oraz XHTML 1.x, dzięki czemu możliwe jest tworzenie dokumentów HTML zgodnie z wytycznymi specyfikacji HTML 4.01 i przesyłanie go zgodnie z typem text/html lub uwzględnienie wytycznych specyfikacji XHTML 1.x, a co za tym idzie stworzenie dokumentu XHTML (tzw. dokument XHTML5 21 ), który przekazywany jest zgodnie z typem MIME application/xhtml+xml lub application/xml. Jako zasadniczą różnice należy podkreślić
fakt, że już na poziomie parsowania dokumentu HTML5 jako text/html dostępne są funkcjonalności w postaci osadzania obiektów SVG i MathML co było niemożliwe w kontekście języków z rodziny XHTML 1.x. Ogólna charakterystyka HTML-a 5 Chcąc omówić ogólną charakterystykę HTML-a 5 bez konfrontacji jej z jego poprzednikami i technologiami z nim konkurującymi należy skupić się na szeregu interface ów programistycznych (API) 22 będących jego częścią. Pomimo faktu, że specyfikacja HTML5 jest cały czas rozwijana i jest w bardzo różnym stopniu obsługiwana przez poszczególne przeglądarki internetowe to już teraz mamy dostęp do większości API, a tym samym możemy wykorzystywać poszczególne elementy z niemal pełną funkcjonalnością. Bardzo często omawianie nowych funkcjonalności HTML-a 5 rozpoczynane jest od przedstawienia znacznika <canvas>, który w dużym skrócie służy do osadzania indywidualnie zaprojektowanych obiektów graficznych 2D i 3D, a także wszelkiego rodzaju animacji opartych o te konwencje wymiarowe. Osoby nie znające dość dobrze specyfikacji HTML5 mylnie twierdzą, że język ten umożliwia rysowanie. Sam element <canvas> jest jedynie obszarem umożliwiającym rysowanie i animowanie, natomiast sam proces dodawania kształtów, tekstów, animacji odbywa się przy użyciu JavaScriptu. Nadmienić należy, że bardzo wiele nowych elementów i API w HTML-u 5 jest szczególnie mocno związanych z językiem JavaScript i bez jego Rysunek 1 - Blob Sallad - <canvas> interactive animation udziału pozostają praktycznie bezużyteczne. Ten związek między HTML-em 5 i JavaScriptem jest jeszcze silniejszy niż relacja jaka panowała między HTML-em 4.01 i JavaScriptem. Jeśli chodzi o zależność pomiędzy <canvas> i rysowaniem 2D to obecnie wszystkie pięć najważniejszych przeglądarek internetowych w pełni ją obsługuje. Przykładem zaawansowanej, interaktywnej animacji opartej o <canvas> i JavaScript może być Blob Sallad 23. W animacji zaimplementowano algorytmy fizyki (grawitacji lub jej brak), możliwość dzielenia obiektów, obsługę kolizji między obiektami, interakcję użytkownika w zachowanie poszczególnych obiektów (Rysunek 1). Pomimo tego, że implementacja animacji i rysunków w trzech wymiarach nie jest tak zaawansowana jak dwuwymiarowych to i tak nie stoi ona na niskim poziomie. Jako przykład można podać proste trójwymiarowe gry typu Canvascape 24, które obsługują proste interakcje i teksturowanie obiektów z Rysunek 2 - Canvascape - <canvas> interactive 3D game możliwością dostosowywania ich jakości (Rysunek 2). Oprócz elementu <canvas> HTML5 udostępnia znaczniki <video> i <audio> umożliwiające osadzanie materiałów filmowych i dźwiękowych, a następnie ich odtwarzania bezpośrednio na stronie WWW. Rozwiązanie to bazuje na wczesnych obiektach ActiveX, które umożliwiały umieszczanie plików multimedialnych w formatach *.wmv, *.wma (odtwarzane przez Windows Media Player) oraz *.mov (odtwarzane przez QuickTime Player) 25. Wraz z rozwojem technologii webowych
rozpowszechniło się osadzanie filmów w ramach obiektów Flash i Silverlight. Oprócz dobrego wsparcia materiałów graficznych, audio i video HTML5 bardzo mocno rozwija alternatywne formy lokalnego magazynowania informacji będące alternatywą dla tzw. ciastek (cookies) 26. Interface'y Web Storage 27 są najbardziej zbliżone pod względem charakterystki do cookies'ów. Działają po stronie klienta i dzielą się na sessionstorage (odpowiedzialny za magazynowanie informacji w ramach jednej sesji) i localstorage (magazynujący dane pod kątem danej domeny - dostępne dla wielu sesji w domenie). Interface Web Storage działa w oparciu o schemat magazynowania klucz = wartość (key = value). W odróżnieniu do ciastek, które zapewniały przechowywanie do 4 KB danych operujemy w zależności od przeglądarki przestrzenią 5 MB (Mozilla Firefox, Google Chrome i Opera) lub 10 MB (Internet Explorer). Również sposób dostępu do danych jest odmienny i w przypadku Web Storage odbywa się on wyłącznie po stronie klienta (dane nie są wysyłane i dostępne w sposób bezpośredni po stronie serwera). Cookies y umożliwiały dostęp do swojej zawartości zarówno po stronie klienta jak i serwera. Należy uściślić, że wcześniej Web Storage był integralną częścią HTML5, natomiast obecnie jest rozwijany przez W3C jako odrębna specyfikacja z niezależnym API. Dwa pozostałe API wspomagające magazynowanie informacji to Web SQL Database i Indexed Database API w odróżnieniu od Web Storage nie są już tak zgodnie wspierane przez wszystkie przeglądarki. Obsługa Web SQL Database była zaimplementowana w Google Chrome, Opera i Apple Safari jednak ze względu na brak niezależnych implementacji i korzystanie z tego samego obszaru implementacyjnego co standard SQLite W3C zdecydowało się wstrzymać rozwój tej specyfikacji 28. Inaczej wygląda sprawa mechanizmu Indexed Database, który jest częściowo wspierany przez przeglądarki Mozilla Firefox i Google Chrome, a wraz z zakończeniem prac rozwojowych nad Web SQL Database ma szansę stać się jeszcze popularniejszy i szerzej stosowany. Twórcy zaawansowanych aplikacji webowych czy też RIA opartych wyłącznie o HTML5 z pewnością docenią fakt natywnej obsługi technologii Drag and Drop. Pomimo tego, że sposób budowania UI w oparciu o tą metodę pojawił się na stronach internetowych o wiele wcześniej (jeszcze przed specyfikacją HTML 4.01) za sprawą JavaScriptu i stricte DHTML owych 29 Rysunek 3 - galeria stworzona przy udziale interface'u Drag & Drop w HTML-u 5 implementacji to jego bezpośrednie wsparcie od strony HTML miało miejsce dopiero przy okazji HTML a 5. Dodatkowo niektóre przeglądarki (np. Google Chrome i Mozilla Firefox) kojarzą szereg środowiskowych informacji w kontekście przeciąganego obiektu tym samym umożliwiają zaawansowaną komunikację użytkownika ze stroną WWW przy udziale zewnętrznego contentu często o charakterze lokalnym. Przykładem są aplikacje tworzące interaktywne galerie z elementów przeciągniętych metodą Drag and Drop bezpośrednio z zasobów lokalnych na obszar aplikacji webowej (Rysunek 3). W zaprezentowanym przykładzie użyto API DnD (Drag and Drop) będącego częścią specyfikacji HTML a 5 oraz File API 30, który już nie jest wliczany bezpośrednio do tej specyfikacji 31. Dzisiejszy rynek szeroko rozumianego marketingu internetowego ceni sobie wszelkie formy identyfikacji użytkownika będącego odbiorcą materiałów reklamowych. O ile w kontekście ewentualnych upodobań i preferencji technologią wspomagającą były metody magazynowania informacji po stronie klienta (dawniej cookies, obecnie wspomniane wcześniej Web Storage i pochodne systemy bazodanowe) o tyle nie istniały spójne standardy namierzające pozycję i ewentualne pochodzenie użytkownika. Mówiąc spójne mam na myśli fakt, że część podmiotów
zajmujących się marketingiem internetowym stworzyła dedykowane narzędzia z większą lub mniejszą precyzją lokalizujące klienta. Jednak tamtejsze sposoby geolokalizacji po adresie IP użytkownika cechowały się bardzo różnym poziomem skuteczności. O ile w przypadku detekcji kraju pochodzenia nie było większych problemów o tyle ustalenie już dokładniejszego obszaru, miasta czy w najlepszym przypadku poglądowych współrzędnych geograficznych stanowiło znaczny problem. Rozwiązaniem tego problemu są biblioteki wchodzące w skład HTML a 5 umożliwiające geolokalizację. Oczywiście developerzy przeglądarek internetowych wprowadzili mechanizmy autoryzujące proces udostępniania tych danych, jednak już teraz możemy przypuścić, że reklamodawcy prędzej czy później znajdą metody nakłaniające użytkownika do ich dobrowolnego udostępnienia. Przykładem może być dostęp do aplikacji lub gry (ukryty pod pretekstem lepszego dopasowania środowiska i cech indywidualnych towarzyszących procesowi korzystania z aplikacji). Geolokalizacja w HTML-u 5 cechuje się charakterystyczną dla systemu GPS niedokładnością wynoszącą średnio rozrzut w promieniu 50 metrów. Kolejnym dość istotnym udogodnieniem ze strony standardu HTML5 jest możliwość edytowania przez użytkownika elementów strony HTML bezpośrednio z poziomu przeglądarki WWW. Twórcy witryn mogą wybranym znacznikom nadać atrybut contenteditable umożliwiający niemal dowolną ingerencję użytkownika w zawartość umieszczoną w obszarze danego elementu. Co ciekawe w zależności od przeglądarki mamy różne poziomy ingerencji, które zakładają w skrajnych przypadkach zaburzenie standardowej specyfikacji elementu lub kontrolki reprezentującej określony element. Istnieje również opcja zapisania zmian naniesionych przez użytkownika w dowolnej metodzie przechowującej np. localstorage (dla względnie trwałego zapisania na potrzeby kolejnych odwiedzin) lub sessionstorage (w celu uwzględnienia jedynie danego okna / karty przeglądarki otwartego w ramach jednej sesji). Będąc przy tematyce komunikacji użytkownika z aplikacją webową w ramach specyfikacji HTML5 należy również wspomnieć o funkcjonalności umożliwiającej komunikację między oknami (lub kartami) przeglądarek w ramach różnych sesji. Komunikacja ta może zachodzić zarówno w obrębie jednej, tej samej domeny jak i różnych domen zintegrowanych do komunikacji w danym kanale. Cały proces wymiany informacji zachodzi przy użyciu biblioteki postmessage, która wchodzi bezpośrednio w skład specyfikacji HTML a 5 32. Z kolei zupełnie inna biblioteka websocket 33 wchodząca również w skład standardu HTML5 może pełnić bardzo zbliżoną funkcjonalność. Mowa tutaj o Rysunek 4 - utworzenie środowiska Chat Room'u przy użyciu biblioteki websocket sposobności budowania w oparciu o nią prostych chat ów (oczywiście przy udziale wspomagającego języka programowania w postaci JavaScript u). Przykład komunikacji opartej o konwencję chat room u stworzonego w oparciu o bibliotekę websocket 34 został przedstawiony na rysunku 4. Ostatnią nową funkcjonalnością HTML-a 5, którą zamierzam omówić w ramach tego referatu jest wbudowane wsparcie do rozpoznawania trybu w jakim pracuje przeglądarka internetowa. W związku z faktem, że obecne przeglądarki mogą pracować w wielu trybach (m.in.: awaryjny, anonimowy, bezpieczny, itd.) należy uściślić, że chodzi tutaj o tryb pod kątem posiadania aktywnego połączenia z Internetem lub jego braku. Popularnie zwane tryby on-line i off-line były szczególnie istotne kilkanaście lat temu kiedy to dostęp do sieci Internet realizowany był w oparciu o połączenia wdzwaniane, a co za tym idzie był dość kosztowny i wiązał się z
opłatami czasowymi. Rola tych trybów była również znacząca w momencie wprowadzenia przez polskich operatorów telekomunikacyjnych limitów w transferze danych. W obecnych czasach przydatność funkcjonalności w postaci wykrycia w jakich warunkach łączy się ze stroną użytkownik jest o wiele mniej potrzebna. Wyjątkiem może być mobilny dostęp do Internetu, który również wiąże się z ograniczeniami po stronie transferu danych i dość znacznych kosztów (w szczególności w naszym kraju). Warto jednak podkreślić rolę tych rozwiązań ze względu na większą kontrolę web developerów w zakresie doboru treści prezentowanych przez aplikacje webowe w różnych warunkach pracy. O wiele prostsze staje się budowanie aplikacji dynamicznie dostosowujących charakter swojej pracy i efektywnie zarządzających zawartością zarówno zdalną jak i lokalną w kontekście zmieniającego się statusu połączenia z siecią Internet. Odpowiednie wykorzystanie możliwości detekcji stanu połączenia z siecią wraz z mechanizmami lokalnego przechowywania danych (Web Storage, Web SQL Database, Indexed Database) umożliwia tworzenie inteligentnych rozwiązań programistycznych, które w rezultacie mogą w znacznym stopniu odciążyć zasoby serwerów zdalnych. Zestawienie standardu HTML5 z konkurencyjnymi technologiami Próbę zestawienia możliwości HTML5 i porównania go do innych technologii i języków opisowych należy rozpocząć od jasnego sprecyzowania kryteriów takiego zestawienia. Aby porównanie to miało sens i było w miarę sprawiedliwe należy wybrać przeciwników, którzy stanowią realne zagrożenie pod względem funkcjonalności, popularności wykorzystania (większe prawdopodobieństwo wykrycia ewentualnych dziur i niedociągnięć), uniwersalności (wieloplatformowość, niezależność systemowa) i szczególnie w dzisiejszych czasach uwzględnienia mobilnego charakteru. Oczywiście ocenianie poszczególnych rozwiązań webowych w odniesieniu do poszczególnych kryteriów może mieć bardzo subiektywny charakter. Przykładem może być próba klasyfikacji poprzedniej specyfikacji czystego HTML a, czyli wersji 4.01, która była z pewnością popularna i funkcjonalna o czym świadczyć może fakt jej mocnej pozycji na rynku od 24 grudnia 1999 roku, kiedy to W3C opublikowało jego oficjalną rekomendację 35. Oczywiście należy uwzględnić takie zdarzenia jak zapoczątkowanie rodziny XHTML-owych języków i ich silny rozwój w latach 2000 2009. Rodzina tych języków jako jedyna silnie zagroziła rodzinie HTML a i ich popularności w kontekście najpopularniejszych języków służących do opisywania formalnej struktury dokumentów webowych. HTML5 postawił jednak przysłowiową kropkę nad i doprowadzając do upadku XHTML 2.0 i przechylił szalę zwycięstwa na korzyść swojej rodziny językowej. Czas i rynek zweryfikują jak długo potrwa ta sytuacja. Chcąc jednoznacznie określić konkurentów z którymi zdecyduję się porównać HTML5 wskażę dość oczywisty zestaw, czyli HTML 4.01 (z racji jego mocnej i ugruntowanej pozycji w latach swojej świetności), Adobe Flash (w mojej ocenie najmocniejszej i najpopularniejszej współczesnej technologii webowej interpretowanej przez plug-in, oraz kierunków w postaci Action Script u, Flash Lite a, Adobe Air a, które mocno oddziaływały na cały rynek), Microsoft Silverlight (mocno rozwijana i wspierana przez Microsoft technologia, która bardzo dużo rozwiązań zapożycza od Adobe Flash, nie posiada tak mocnej pozycji jak Flash jednak ma ze sobą powiązany cały szereg narzędzi MS-u). Na pierwszy rzut oka wydawać się może, że jest to sprawiedliwe zestawienie równych ze sobą konkurentów, jednak jeśli przeanalizujemy realne plany przyszłościowe firmy Adobe odpowiedzialnej za rozwój Flash a oraz Microsoftu tworzącego Silverlight a i zestawimy ze spekulacjami rynkowymi całość nabiera zupełnie innych barw. Przede wszystkim należy odnieść się do nowej polityki Google a, który testuje obecnie
działanie jednego ze swoich popularniejszych serwisów właśnie w oparciu o specyfikację HTML5 36. Po latach działalności w oparciu o technologię Adobe Flash firma Google w znacznym stopniu przyczyniła się do wzrostu jej popularności oraz skłoniła wiele podmiotów do przełożenia jej na swoje platformy sprzętowe i programowe (producenci smartfonów, tabletów oraz stosunkowo nowej koncepcji produktów tzw. Smart TV 37 ). Zapewne to zdarzenie nie było bez znaczenia dla decyzji jaką podjęła w ostatnim czasie firma Adobe odnośnie rezygnacji rozwoju technologii Flash dla urządzeń mobilnych 38. Jasnym jest, że ta decyzja podjęta została pod wypływem rosnącej pozycji HTML a 5. Tym samym firma Adobe świadomie zrzeka się bardzo dużego i dochodowego rynku jakim niewątpliwie jest rynek urządzeń mobilnych. Podobnie wygląda kwestia drugiej plug-in owej technologii firmy Microsoft. Już chodzą spekulacje, że najnowszy Silverlight 5 39 będzie ostatnim produktem z tej rodziny. Fakt ten potwierdzają doniesienia odnośnie przyszłej, flagowej przeglądarki internetowej Microsoftu, która według doniesień nie będzie zawierała obsługi technologii Adobe Flash, ani co bardziej znaczące obsługi rodzimej technologii Silverlight 40. Jak wiadomo rynek IT, a w szczególności część przypisana sieci Internet i technologiom z nią związanym zmienia się bardzo szybko i dynamicznie. Do tego należy uwzględnić nie zawsze trafne decyzje podjęte przez Microsoft w odniesieniu do Internet Explorera, jednak gdyby te informacje się potwierdziły i wersja 10 tej przeglądarki zupełnie nie wspierała obsługi Flash a i Silverlighta to śmierć tych technologii plug-inowych jest przesądzona. Porównywanie HTML a 4.01 z HTML em 5 jest zbędne i ciężko znaleźć argumenty przemawiające na korzyść tego pierwszego. Są to de facto języki znacznikowe z tej samej rodziny (uwzględniając XHTML owe korzenie HTML5), których rola jest taka sama i od momentu upowszechnienia się stosowania CSS a do opisu i definiowania graficzno kompozycyjnych aspektów stron WWW niezmienna. Można śmiało przypuszczać, że do czasu opublikowania pełnej specyfikacji HTML 5 i jego pełnego wdrożenia przez czołowe przeglądarki internetowe nadal będziemy spotykać strony określające deklarację dokumentu w postaci HTML 4.01, a także XHTML 1.0 Transitional. Pewne jest jednak to, że im bliżej tej daty tym więcej developerów i zwykłych webmasterów będzie się decydowało na przebudowywanie i tworzenie stron w oparciu o HTML5. Podsumowanie W referacie tym starałem się przybliżyć najnowszą specyfikację języka znaczników o nazwie HTML5. Język ten pomimo swojej stosunkowo krótkiej obecności na rynku (w tej specyfikacji) zdążył już sporo namieszać i skłonił internetowych gigantów do weryfikacji swoich strategii biznesowych na najbliższe lata. Jego siła co starałem się wykazać w powyższym tekście polega głównie na jasno postawionym celu oraz konsekwentnej realizacji i wdrażaniu jego założeń. Konsorcjum W3C i grupa robocza WHATWG nie starały się na siłę wydrzeć rynku innym technologiom, które od lat wspomagają rodzinę języków HTML (CSS i JavaScript oraz jego pochodne) tylko postanowiły stworzyć standard z którym inne specyfikacje będą efektywnie i stabilnie współpracować. Zestawienie trzech najnowszych specyfikacji najpopularniejszych i najlepiej współpracujących ze sobą standardów webowych (HTML5 + CSS3 + JavaScript) stworzyło kompletną technologię tworzenia zaawansowanych produktów webowych o różnych charakterze i przeznaczeniu. W związku z wejściem do Web Hypertext Application Technology Working Group takich firm jak Google, Apple Inc., Mozilla Foundation oraz Opera Software możemy założyć, że interpretacja poszczególnych elementów najnowszej specyfikacji HTML a przez część czołowych przeglądarek internetowych będzie zgodna i spójna jak nigdy dotąd. Oprócz definicji i czysto teoretycznych
rozważań starałem się również przybliżyć praktyczne aspekty HTML a 5. Skupiłem się przede wszystkim na podstawowych funkcjonalnościach ponieważ wchodzenie głębiej w tematykę i możliwości HTML a 5 mogłoby sprawić, że całość przestała by spełniać funkcję poglądową, a sam referat przybrałby formę specyfikacji technicznej. Zestawiając standard HTML5 z konkurencyjnymi technologiami wnioski były jednoznaczne, a przewaga HTML a znacząca. Być może dobór technologii z którymi go zestawiałem nie był zbyt sprawiedliwy, ale ciężko jest obecnie znaleźć technologie na tyle komplementarne, aby funkcjonalnością mu dorównały. Warto jednak mieć na uwadze, że cała funkcjonalność i efektywność rozwiązań jakie niesie za sobą HTML5 nie jest jedynie jego zasługą. Wystarczyło by wyeliminować JavaScript i możliwości HTML a w drastycznym tempie by zmalały. Wyeliminowanie z kolei CSS skutkowało by znacznym pogorszeniem design u od strony kompozycji, grafiki, efektów wizualnych i zakresu formatowania postaci znaczników. Zatem porównując HTML a z innymi technologiami webowymi zawsze należy mieć na uwadze obecność JavaScript u i CSS a, którym sam HTML wiele zawdzięcza.
1 HTML5 introduction, http://www.w3schools.com/html5/html5_intro.asp - przejrzano 19.11.2011 r. 2 What is markup language?, http://www.webopedia.com/term/m/markup_language.html - przejrzano 19.11.2011 r. 3 Adobe Flash Player 11 Features, http://www.adobe.com/products/flashplayer/features.html - przejrzano 19.11.2011 r. 4 What Is Silverlight? Microsoft Silverlight, http://www.microsoft.com/poland/silverlight/what-issilverlight/ - przejrzano 19.11.2011 r. 5 About JavaFX, http://www.javafx.com/about-javafx/ - przejrzano 19.11.2011 r. 6 What is Rich Internet Application (RIA)?, http://searchsoa.techtarget.com/definition/rich-internet- Application-RIA - przejrzano 19.11.2011 r. 7 FAQ - WHATWG Wiki, http://wiki.whatwg.org/wiki/faq#what_is_the_whatwg.3f - przejrzano 19.11.2011 r. 8 About W3C, http://www.w3.org/consortium/ - przejrzano 19.11.2011 r. 9 XHTML Introduction, http://www.w3schools.com/html/html_xhtml.asp - przejrzano 19.11.2011 r. 10 Extensible Markup Language (XML), http://www.w3.org/xml/#intro - przejrzano 19.11.2011 r. 11 What is XHTML 2.0?, http://www.w3.org/tr/xhtml2/introduction.html#s_intro_whatisxhtml2 - przejrzano 19.11.2011 r. 12 XHTML - Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/xhtml#xhtml_2.0 - przejrzano 19.11.2011 r. 13 Web Applications 1.0, http://www.whatwg.org/specs/web-apps/2005-09-01/ - przejrzano 19.11.2011 r. 14 What is the Document Object Model?, http://www.w3.org/dom/#what - przejrzano 19.11.2011 r. 15 Web Forms 2.0, http://www.whatwg.org/specs/web-forms/current-work/ - przejrzano 19.11.2011 r. 16 Web Controls 1.0, http://www.whatwg.org/specs/web-controls/current-work/ - przejrzano 19.11.2011 r. 17 DOCTYPE - DTD - Document Type Declaration, http://www.htmlbasictutor.ca/doctypedeclaration.htm - przejrzano 19.11.2011 r. 18 SVG, http://www.w3.org/graphics/svg/wg/wiki/main_page - przejrzano 19.11.2011 r. 19 What is MathML?, http://www.w3.org/math/ - przejrzano 19.11.2011 r. 20 Multipurpose Internet Mail Extensions, http://pl.wikipedia.org/wiki/multipurpose_internet_mail_extensions - przejrzano 19.11.2011 r. 21 HTML 5 + XML = XHTML 5, http://html5doctor.com/html-5-xml-xhtml-5/ - przejrzano 19.11.2011 r. 22 What is application program interface (API)?, http://searchexchange.techtarget.com/definition/application-program-interface - przejrzano 19.11.2011 r. 23 Blob Sallad, http://www.blobsallad.se/iframedsallad.html - przejrzano 19.11.2011 r. 24 Canvascape, http://www.benjoffe.com/code/demos/canvascape/textures - przejrzano 19.11.2011 r. 25 Embedding Windows Media and QuickTime Video on a Web Page, http://kathymarks.com/archives/2005/09/embedding_windows_media_and_quicktime_video_on_a_we b_page.html - przejrzano 19.11.2011 r. 26 JavaScript Cookies, http://www.w3schools.com/js/js_cookies.asp - przejrzano 19.11.2011 r. 27 Web Storage, http://dev.w3.org/html5/webstorage/ - przejrzano 19.11.2011 r. 28 Web SQL Database, http://www.w3.org/tr/webdatabase/ - przejrzano 19.11.2011 r. 29 What is DHTML?, http://www.irt.org/articles/js201/ - przejrzano 19.11.2011 r. 30 File API, http://www.w3.org/tr/fileapi/ - przejrzano 19.11.2011 r. 31 HTML5 Demos and Examples, http://html5demos.com/ - przejrzano 19.11.2011 r. 32 window.postmessage - MDN, https://developer.mozilla.org/en/dom/window.postmessage - przejrzano 19.11.2011 r. 33 The WebSocket API, http://dev.w3.org/html5/websockets/ - przejrzano 19.11.2011 r. 34 HTML5 Demo: Web Socket, http://html5demos.com/web-socket - przejrzano 19.11.2011 r. 35 HTML 4.01 Specification, http://www.w3.org/tr/html401/ - przejrzano 19.11.2011 r. 36 YouTube eksperymentuje z HTML5 - Artykuły - Chip.pl, http://www.chip.pl/news/internet-isieci/media-strumieniowe/2010/01/youtube-eksperymentuje-z-html5 - przejrzano 19.11.2011 r. 37 What Is A Smart TV?, http://www.businessinsider.com/what-is-a-smart-tv-2010-12 - przejrzano 19.11.2011 r. 38 Adobe rezygnuje z Flasha nie tylko na telefonach, http://www.dobreprogramy.pl/adobe-rezygnuje-z- Flasha-nie-tylko-na-telefonach,Aktualnosc,28749.html - przejrzano 19.11.2011 r.
39 Czyżby Silverlight 5 był już ostatnim?, http://www.dobreprogramy.pl/czyzby-silverlight-5-byl-juzostatnim,aktualnosc,28719.html - przejrzano 19.11.2011 r. 40 Zbliża się koniec Silverlighta i Flasha?, http://www.dobreprogramy.pl/zbliza-sie-koniec-silverlighta-i- Flasha,Aktualnosc,27653.html - przejrzano 19.11.2011 r.