Scurata Introducere
Ni s-a sugerat la IOC ca prima tema de discutie un overview asupra noi versiuni de HTML ce va aparea nu intr-un viitor apropriat, versiunea 5.0.
In continuare voi prezenta la ce concluzii am ajuns.
Initial viitorul standard care dorea sa duca mai departe navigarea pe web era succesorul XHTML 1.1 si anume XHTML 2.0. Cum insa oamenii care lucrau la alcatuirea acelui draft au fost oarecum lipsiti de intuitie, XHTML 2.0 se baza mai mult pe lucrul cu documente si neglija aproape in totalitate aspectul multimedia pe care noua generatie de pagini web o are, acest proiect a fost anulat si HTML 5.0 ramane singurul candidat pentru noua generatie de programare www.
Prinicipiul pe care se bazeaza HTML 5.0, prin definirea unor noi taguri si eliminarea unor taguri care sunt obsoleted (majoritatea se refera la layout care este acoperit cu succes de CSS, si a lui <div>), este integrarea intr-un singur limbaj a anumitor functionalitati impartite acum printre plugin-urile browserelor. Asadar HTML 5.0 este un doar un succesor al precedentei versiuni de HTML si nu isi propune sa revolutioneze standardul curent (keep it safe).
Sunt propuse urmatoarele API-uri:
- API de desenare 2D
- API pentru media video si audio
- API pentru aplicatii offline
- API de inregistrare pentru anumite protocoale sau tipuri media
- API pentru editare
- API drag and drop
- API pentru browsing history
- API pentru mesaje intre documente
Tag-uri interesante
<canvas>
Folosit pentru declararea unei zone dintr-o pagina web drept zona in care se poate desena 2D: linii, poligoane etc. Similar cu ceea ce face java script, care de astfel poate fi si integrat intr-o pagina prin acest tag. Mi se pare foarte folositor in contextul in care se tot vorbeste despre pagini www in 3D, scrierea unui API care sa realizeze trecerea din 2D-ul furnizat de canvas intr-o zona 3D este usor de realizat si poate asa o sa avem mai multe porturi de aplicatii 3D gen http://www.quakelive.com/, fara a mai trebui sa instalam pluginuri peste pluginuri care se updateaza in fiecare saptamana.
<video> si <audio>
Tag care are ca scopt eliminarea necesitatii instalarii unor plugin-uri, cele audio si video respectiv (sau a unor playere – Flash Player). Acest lucru se va realiza prin incorporarea unor noi codecuri, a caror suport in browsere va fi usor sau mai putin usor de integrat. Dupa parerea mea aceste doua taguri sunt foarte reprezentative pentru ceea ce vrea HTML 5.0 sa realizeze: unificarea unor facilitati deja existente si nu neaparat inovatii.
<drag and drop> (atribut)
Acesta nu este un tag propriu-zis ci un atribut (draggable), dar pe care il consideram demn de mentionat. Aici se definesc niste handlere necesare cand este vorba de drag and drop: dragStartHandler (inceput de drag – s-a apasat click), dragEnterHandler, dragOverHandler (ce se afiseaza cand se face drag) si in final dropHandler (ce actiuni se executa la sfarsit de operatie). Personal consider acest tag folositor pentru operatii de tipul download la care sa nu apara butonul de save as si sa se poate face un drag and drop pe fereastra de pe calculatorul local unde vrea sa fie salvata aceasta resursa, acelasi lucru valabil si pentru upload. Chiar in cazul upload-ului, in momentul de fata cel mai fericit caz este cand dai upload si iti apare o fereastra in care poti da copy paste la calea catre resursa ta si nu trebuie sa o cauti, desi ai o fereastra deschisa fix in acel director.
In loc de concluzie
Ideile pe care le propune noul standard HTML sunt de bun simt, si care ar trebui integrate cat mai rapid. Dar acest lucru nu se va intampla prea curand, HTML 5.0 este doar in stadiul de draft si mai are mult pana va ajunge un standard (cea mai pesimista data peste care am dat: 2022), ceea ce ne face sa ne putem niste semne de intrebare atat ca programatori (daca putem/trebuie sa program urmatorii ani fara acest standard probabil ca nu este atat de necesar), cat si ca utilizatori (o solutie mai rapida de eliminat necesitatea download-ului de plugin-uri ar fi integrarea in kitul de instalare al browserelor a celor mai populare astfel de plugin-uri).