Un web developer, Haymo Meran și fantoma prințului Johann Adam Andreas von Liechtenstein intră într-un palat… Sună ca începutul unei glume ciudate, dar vă garantez că nimeni n-o să știe ce se întâmplă mai departe. Mai bine zis, nimeni care nu a auzit de sau nu a participat la jQuery Europe 2013. Ca să fiu sincer, n-am văzut nici un semn că duhul prințului ni s-ar fi alăturat, și am fost 300 de developeri (sau mai bine zis, entuziaști jQuery), nu unul. Restul totuși e chiar foarte adevărat și cu siguranță nu o glumă, pe cât de fabulos sună.
Într-adevăr, a fost o conferință jQuery care a avut loc într-un veritabil palat, palatul Liechtenstein (sau Gartenpalais pentru localnici) din Viena ca să fiu mai exact, și ce eveniment excepțional a fost… Pe aceasta cale țin să mulțumesc organizatorilor, Gentics Software, și în special domnului Haymo Meran (CTO-ul Gentics și o foarte prietenoasă gazdă) pentru că au făcut posibil acest eveniment și s-au descurcat destul de bine în "voiajul inaugural". Probabil singurul "minus" (amuzant) care merită menționat e afirmația că participanții care ajung la stația de metrou "Rossauer Lände" vor fi ghidați către locația evenimentului de către o persoană purtând un tricou personalizat pentru conferință. De ce ar fi asta amuzant, mă întrebaţi? Aceasta este Viena în prima zi a conferinței:
Nu tocmai cea mai potrivită vreme de umblat în tricou și dus lumea la conferințe… Dar destul cu deraiatu, să trecem la detaliile picante propriu-zise!
Conferința s-a întins pe durata a două zile, din 22 până în 23 februarie, și a fost plină ochi de Javascript, jQuery, CSS și alte bunătăți livrate de cei 16 vorbitori, presărate ici și colo cu părticele mai ciudate cum ar fi banane care cântă și coctail-uri tropicale. Evenimentul a început cu o bombă! Stați calmi, nu a fost nici un fel de atentat, securitatea a fost foarte strictă, cu câteva sosii ale lui James Bond mereu cu ochii pe mulțime după cum puteți vedea mai jos…
Nu, bomba la care mă refer descrie impactul primei sesiuni, al cărei vorbitor a fost nimeni altul decât Richard D. Worth, directorul executiv al fundației jQuery. Dl. Worth a prezentat starea curentă a jQuery, acum la versiunea (stabilă) 1.9.1, și a oferit o mică viziune asupra viitorului, invitând participanții să se alăture comunității jQuery. Participanții au fost apoi "incitați" cu bucățele de informație despre următorul mare pas pentru jQuery, versiunea 2.0, dintre care de departe cel mai ovaționat (aclamat și aplaudat furtunos) a fost anunțul că, începând cu versiunea 2.0, jQuery nu va mai suporta Internet Explorer 8 (sau versiuni mai vechi). Știu, știu, jos pălăria în fața lor pentru că au închis ușa și-au încuiat-o bine și l-au lăsat în stradă pe țâncul cel enervant care mereu face lucrurile altfel decât restul… Totuși, nefiind oameni cruzi și fără milă pentru bietele suflete care au nevoie ca site-ul lor să nu crape oribil pe IE, echipa jQuery va menține versiunea 1.9.1 în paralel cu 2.0, duplicând în 1.9.1 tot ce se va dezvolta în 2.0 și mai departe, atâta timp cât nu necesită cantități industriale de adaptare. Dl. Worth a trecut de asemenea în revistă modificările recente în componente adiacente jQuery cum ar fi jQueryUI sau jQuery Mobile și a adus la lumină câteva inițiative jQuery, precum contribute.jquery.org (pentru cei interesați în a contribui la jQuery), plugins.jquery.com (noul și îmbunătățitul registru de plugin-uri) sau learn.jquery.com (dacă URL-ul nu v-a dat un indiciu, aceasta e o inițiativă îndreptată către persoanele care vor să învețe jQuery).
Considerând că a intra în toate detaliile a ceea ce a urmat ar însemna transformarea acestui articol într-o lectură destul de grea, voi face un rezumat (și probabil o să dau greș, într-un final slobozind zăgazurile mentale și dând drumul șuvoiului de gânduri) al restului unei zile cu adevărat fascinante. Următorul pe listă a fost Corey Frang, de asemenea un membru al echipei jQuery, care a disecat un widget jQuery UI în componentele lui de bază și a demonstrat cum folosirea "widget factory"-ului poate genera rezultate foarte flexibile și extensibile. Doug Neiner a prezentat cateva practici bune în ceea ce privește separarea codului Javascript/jQuery de CSS și HTML, lucru care ne va aduce mult mai multă mentenabilitate și mai puține dureri de cap. A facut de asemenea și o incursiune în lumea tranzițiilor și animațiilor CSS și a echivalentului lor în jQuery. Sebastian Kurfürst a arătat cum, folosind RequireJS, ne putem organiza codul Javascript în componente și să îmbunătățim claritatea în codul de client. Jörn Zaeffer ne-a deschis urechile și mințile către modul în care web-ul e perceput de cei care nu pot experimenta lumea prin intermediul văzului, o categorie semnificativă de oameni de care din nefericire uităm deseori. Trebuie să recunosc că mi-a dat un sentiment de umilință, tristețe chiar, să aflu cum "sună" unele pagini web. N-am fost pus încă într-o situație în care a trebuit să mă gândesc la accesibilitate și e greu să ai aspectul acesta în minte când ești în frenezia alinierii de pixeli și a ajustării tonurilor de culoare, dar e ceva ce ar trebui luat mereu în considerare. Am văzut apoi de ce e în stare jQuery pe server într-o prezentare foarte pătrunzătoare de către Golo Roden a Node.js, o unealtă excepțional de puternică pentru oricine e interesat de lucruri precum "web scraping", crearea de web servere "ușoare" sau aplicații distribuite cu trafic intens de date. Următorul vorbitor în acțiune, Sascha Wolter, e probabil persoana cea mai asemănătoare cu un geniu nebun pe care am văzut-o până acum, dar în modul cel mai bun. A făcut lucruri cu Javascript la care nu m-aș gândi nici în cele mai creative zile. De la controlat roboți LEGO sau "quad copters" și trimis SMS-uri la aparate de făcut cafea până la a chiar face banane să cânte, am savurat fiecare fascinantă secundă (să nu mai vorbim că am copt câteva idei nebune proprii de încercat). Ziua s-a încheiat cu prezentarea ținută de Christian Heilmann, care a lansat o întrebare foarte interesantă: oare uneltele (librării Javascript, framework-uri, plugin-uri, etc.) pe care le folosim ne ajută sau ne fac rău? E bine să folosim unelte ca să facem procesul de dezvoltare mai rapid sau să dăm mai multă claritate codului, dar e esențial să înțelegem ce e de fapt în spatele acestor unelte, ce le face să funcționeze, ce le face atâta de bune și ce le-ar putea face și mai bune. Îmi aduc aminte de câteva cifre menționate de dl. Worth în prezentarea de deschidere: 55.7% din site-urile existente în momentul de față pe vastele câmpii ale internetului folosesc jQuery. Aceasta înseamnă 90.7% din toate site-urile care folosesc Javascript. O majoritate copleșitoare fără îndoială, dar stau să mă întreb oare câți developeri care au folosit jQuery în acele site-uri au chiar luat o versiune ne-minificată a js-ului de jQuery și au tras cu ochiul înăuntru să vadă ce soi de magiee în spatele framework-ului care le face viața așa de ușoară...
Și-așa am ajuns la a doua (și din păcate ultima) zi de jQuery Europe 2013. Ziua a început cu o prezentare grozavă pe tema "jQuery Mobile și Responsive Web Design" de Todd Parker, design lead al jQuery UI și membru al echipei jQuery Mobile.Dl. Parker a descris capabilitățile de RWD (Responsive Web Design) incluse în framework-ul jQuery Mobile și a arătat câteva exemple reale de utilizare a media query-urilor și a gândirii "mobile-first" în construirea conținutului responsiv, fie el pentru site-uri sau app-uri. De asemenea au fost evidențiate câteva tehnici de îmbunătățire a performanței în ceea ce privește minimizarea utilizării lățimii de bandă, utilizarea imaginilor cu rezoluții mari și stratificarea selectivă a conținutului în funcție de capabilitățile dispozitivului. Maximilian Knor, un "developer evangelist" la Microsoft, a demonstrat cum ASP.NET MVC și ASP.NET SignalR (http://www.asp.net/signalr încercați-l daca n-ați făcut-o deja) construiesc peste jQuery și jQuery Mobile pentru funcționalități client-side și aplicații de o singură pagină. Mike West a evidențiat esențialul securizării codului de client împotriva intențiilor malițioase, fie ele "cross-site scripting" sau alte forme de atac. Mai bine zis, a diminuării efectelor unui asemenea atac ca sa fiu sincer, pentru că deși am crede că am scris codul în așa fel încât e imposibil ca altcineva să îl spargă, lucruri precum JSFuck(http://www.jsfuck.com/) s-ar putea sa ne facă să ne întoarcem la codul nostru și să mai adăugăm câteva straturi pe "zidul de cărămidă" și chiar și atunci să ne dăm seama că nu e destul de solid. Reținem prezentarea lui Patrick Lauke și "Web on TV", o descriere a modului în care jQuery poate fi folosit pentru a interacționa cu televizorul dumneavoastră. În ziua de azi, orice companie respectabilă care produce televizoare probabil are cel puțin un reprezentant al generației SmartTV și în câțiva ani probabil cu greu ne vom aduce aminte de vremea când nu puteai să navighezi pe internet pe televizorul tău sau să te uiți la YouTube sau să joci Angry Birds. Ce înseamnă asta, pe lângă un set nou de bătăi de cap în ceea ce privește suport inclus în site-uri sau app-uri pentru multiple dispozitive, e că folosind puțină cunoștință de Javascript/jQuery am putea crea interfețe sau app-uri de care oamenii să se bucure (și) pe televizoarele lor (îmi vine în minte o mică glumă despre a pune "peretele" de Facebook al unei persoane pe chiar peretele persoanei respective). Ultima prezentare la care am putut să particip a fost un fel de iluminare dublă, grație lui Dyo Synodinos. Primul pas al iluminării a fost în legătură cu picturile de pe tavanul măreței și magistral decoratei săli în care ne aflam, care surprind scene din viața lui Hercule (nu cel jucat de Kevin Sorbo). Al doilea pas a avut loc în momentul în care mi-am dat seama că primul avea chiar multă legătură cu prezentarea despre "ultimul răcnet" în materie de vizualizări ce urma și nu era nici pe departe umplutură de introducere. Într-adevăr, ceea ce a fost prezentat a fost foarte impresionant din punct de vedere vizual și fără îndoială de ultimă oră. Toate uneltele moderne de "încântat ochiul", cum ar fi CSS3, SVG, Canvas sau WebGL și-au primit o porție sănătoasă de atenție iar framework-uri precum Raphael.js, D3.js sau Fabric.js, care aduc puterea acestor tehnologii într-un format mai accesibil ne-au delectat și ele cu etalări creative și uimitoare privirea.
Și apoi a trebuit să plec... Și deși am avut o mică doză de regret pentru că am ratat o părticică, am fost extrem de satisfăcut de ce am putut experimenta pe parcursul celor două zile... Și am plecat chicotind puțin la gândul că mă voi întoarce pentru conferința de anul viitor, care garantat va avea loc, după spusele lui Haymo.
Cine știe ce va aduce 2014?