joi, 20 noiembrie 2008

Interfete web: UBIQUITY


Interfete, interfete, interfete... a, uite una interesanta: Ubiquity.
Ubiquity 0.1
este un proiect al diviziei Mozilla Labs ce se doreste a revolutiona intregul concept de interfata web. Ce vrea sa faca aceasta extensie Firefox(pentru ca momentan Ubiquity se prezinta sub forma unui add-on pentru browserul celor de la Mozilla)? Pai, dupa cum ii spune si numele, vrea sa faca de toate si cam peste tot. Intrand pe pagina de prezentare a lui Ubiquity, afli ca in primul rand, stie sa faca mashup-uri dinamice. Baietii aia inventivi de la Mozilla Labs se plang, si pe buna dreptate, ca internetul este un conglomerat disjunct de informatie aflata in stari diverse de agregare.
Exemplul prezentat de ei este acela al unui mail in care vrei sa trimiti unui amic o invitatie pentru o masa in oras, mail in care vrei sa incluzi o harta a localului, un review al acestuia si apoi sa adaugi si in calendar aceasta intalnire. Toate aceste task-uri se pot face si cu instrumentele existente pe net, dar ceea ce ii deranjeaza pe baieti este faptul ca toata treaba cere multa bataie de cap si interactiunea cu mai multe interfete, programe si site-uri. Imi vine in minte imaginea unor baieti mai mult comozi decat destepti cand citesc prezentarea celor de la Mozilla Labs :)).
Avantajul pe care il are Ubiquity fata de mashup-urile statice existente pe internet este acela ca faciliteaza prin intermediul comenzilor sale asamblarea mashup-urilor intr-un mod dinamic, natural si fluent. In orice moment ai nevoie de imbinarea mai multor servicii web, Ubiquity este gata sa faca toata treaba murdara pentru tine. Si totul este controlat din linie de comanda. Poate va intrebati de ce au ales cei de la Mozilla Labs aceasta solutie. Pai motive destul de serioase ar fi cele prezentate de Alex, Jono si Aza pe blogurile lor(vezi link-urile la sfarsitul post-ului). Pe scurt, s-a descoperit in urma unor studii ca interfetele grafice, acele GUI pe care toata lumea le adora si le lauda ca fiind atat de user friendly, nu sunt chiar atat de eficiente. Avantajele GUI sunt capacitatea ridicata de afisare a output-ului(sub forma vizuala) si descoperirea usoara a comenzilor posibile. Punctele slabe ale unui GUI sunt limitarea vitezei de input(multe click-uri in meniuri diverse), si aglomerarea ecranului in cazul interfetelor cu un numar ridicat de functii(vezi poza). De aceea Alex Faaborg recomanda un hibrid intre GUI si command line; acest nou tip de interfata ar beneficia de avantajele celor doua solutii: rata ridicata de input a consolei(care ramane favorita oricarui developer) si capacitatea ridicata de afisaj a GUI-ului.
O astfel de interfata este Ubiquity. Conceputa sa ocupe doar un colt mic in partea de sus-stanga a ecranului, Ubiquity accepta comenzi in consola si afiseaza rezultatele in mod grafic. O alta inovatie ce se incearca implementata este folosirea limbajului natural, in special a verbelor. Un puternic sustinator al acestei directii este Jono, care in articolul sau intitulat Why Verbs? demonstreaza ca o interfata lingvistica este superioara uneia grafica, bazata pe click-uri, deoarece este mult mai usor de transmis actiuni complexe computerului prin verbe(asa cum comunica oamenii in mod natural, prin limbaj) decat cu ajutorul unor metafore sub forma de icoane si butoane. Comenzile lui Ubiquity se doresc simple, scurte si naturale, cum ar fi map-these, email, wiki, yelp, translate, add-to-calendar, tinyurl(toate aceste comenzi sunt prezentate in Ubiquity tutorial).
Daca va reusi sa devina functional, Ubiquity va fi un pas important in domeniul interfetelor web. Va schimba radical modul in care vom folosi internetul. Cum astazi Google este pentru majoritatea user-ilor de web punctul de plecare in orice cautare/activitate(i subscribe), maine Ubiquity va fi motorul in jurul caruia se vor invarti toate rotitele internetului. Vom folosi Ubiquity pentru a posta pe blog, pentru a trimite email-uri(in loc de Outlook sau Tbird), pentru a cauta harti, pentru a traduce bucati de text, pentru a crea noi comenzi si a extinde functionalitatea serviciilor web standard. Pentru ca in caz ca nu stiati, cireasa de pe tort pentru Ubiquity este ca ofera posibilitatea crearii de comenzi personalizate ce pot fi apoi puse la share, devenind astfel publice. Totul se bazeaza pe Javascript.
Problemele pe care trebuie sa le infrunte Ubiquity inainte de a se afirma tin in primul rand de anvergura functionalitatii pe care vrea sa o atinga. Este nevoie de o standardizare pentru a putea interpreta comenzile date in mod corect, pentru a fi functional si usor de folosit. Insa nu se doreste o standardizare sufocanta, pentru ca Ubiquity vrea sa ramana deschis dezvoltarii si aplicatiilor viitoare. Alta problema derivata din lipsa limitelor este aceea a securitatii.


Scrip-urile ce stau in spatele comenzilor Ubiquity vor putea face practic orice, atentand astfel la siguranta calculatorului personal. Va fi nevoie de constructia unor retele de incredere pentru a fi siguri ca acea comanda pe care o descarcam de pe internet nu este daunatoare, ca sursa ei este sigura.
La final va las cu prezentarea versiunii alpha 0.1 de test a lui Ubiquity. Aceasta versiune poate fi descarcata de aici si instalata ca add-on pentru Firefox. Din pacate eu am incercat sa o instalez la serviciu si m-am trezit ca imi crasheaza browser-ul la fiecare pornire. Asa ca nu pot sa va spun nimic despre experienta mea "hands-on". Pe calculatorul personal inca nu am incercat sa il instalez, dar va las pe voi sa va jucati cu tutorial-ul si versiunea de test a acestei interfete.


Ubiquity for Firefox from Aza Raskin on Vimeo.

Link-uri utile:

http://www.azarask.in/blog/post/ubiquity-in-depth/
https://wiki.mozilla.org/Labs/Ubiquity/Latest_Ubiquity_User_Tutorial
http://blog.mozilla.com/faaborg/2007/07/05/the-graphical-keyboard-user-interface/
http://jonoscript.wordpress.com/2008/07/26/why-verbs/
http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)
http://www.azarask.in/blog/post/sharing-streamable-functionality/

Niciun comentariu: