vimium

vineri, 30 iul. 2010, 20:19

Știm cu toții că web-ul, mai exact navigarea – cunoscută și drept surfing, pentru cei care vor să încerce impresia mai mult sau mai puțin aparentă a practicării unui sport extrem – lui a devenit în ultimii ani o parte esențială din folosirea calculatorului; vă rog, o mână virtuală sus cei care deschideți un browser fix în momentul în care sistemul de operare proaspăt deschis așteaptă comenzi din partea dumneavoastră… sau este deja deschis în momentul revenirii din sleep/hibernare. Și mai ridicați o mână cei care aveți mai mult de șasă tab-uri/ferestre (toate frumoase) de browser deschise în mod normal – sper că aveți două mâini libere, perverșilor, că doar Internet-ul pentru pornoșag există.

Având în vedere că am lămurit problema dureroasă încă din capul locului, urmează să găsim o rețetă care va rezolva toate grijile lumii, de la foamete până la (im)posibilitatea călătoriei în timp. Și cum orice problemă mare se rezolvă prin spargerea ei în probleme mai mici (aceasta din urmă și apoi legarea părților componente fiind la rândul lor probleme importante) , vom începe prin două elemente cheie.

Numero uno: se ia una bucată soft de editare text atât de tare încât să se poată forma un cult pe marginea lui. Despre vim am mai vorbit în repetate rânduri [i] [ii], deci nu insist prea tare. vim este un editor modal, ceea ce se traduce în română prin faptul că lucrează în mai multe moduri: unul de inserare, altul de căutare etc. Buba lui principală e curba relativ abruptă de învățare; să fim serioși, persoanele întregi la mansardă preferă să bea o bere, să vadă un film, să urce pe vârful unui munte sau să facă sex în loc să stea să citească documentația unui (!!) editor de text. Avantajul principal, însă, îl reprezintă faptul că odată deprinse skill-urile folosirii vim-ului, ești cât se poate de rapid și eficient în procesul de editare de text brut, iar prin text înțeleg cod sursă și nu numai. Nici nu intru în alte detalii precum limbajul său de scripting destul de puternic încât să îl poți programa să îți facă tot ceea ce știe și o secretară, poate mai puțin cafeaua de dimineață și… să nu intrăm în detalii.

Numero duo: se ia un browser web decent. Pauză.

Să lămurim de ce Firefox nu mai este un browser decent (iar IE nu a fost niciodată, deci nu vom lămuri nimic în privința lui), pe scurt dacă se poate. În primul și în primul rând fiindcă are o problemă – pe numele ei mic SQLite – care mărește timpul de startare la peste treizeci de secunde și pe cel de căutare în Crappy Bar™ la o valoare variabilă – între două și cincisprezece secunde, în funcție de volumul bookmark-urilor și al history-ului -, datorită folosirii intense a hard-disk-ului. În al doilea rând și în ciuda primei sale probleme, Firefox nu are implementată folosirea mai multor fire de execuție (detalii tehnice, blah yadda), ceea ce înseamnă că din punct de vedere al programului, căutarea în baza de date și interfața grafică rulează în același flux de instrucțiuni, în caz că vă întrebați de ce mama naibii se blochează întreaga interfață grafică în alea 2-15 secunde.

În al treilea rând, iar asta decurge din primele două probleme, arhitectura veche și greoaie a browser-ului îngreunează mult folosirea a două sau mai multe tab-uri care procesează în paralel. Nu avem multithreading, deci nu vom folosi decât un nucleu de procesare al calculatorului (iar majoritatea din noi avem acasă PC-uri cu cel puțin două core-uri), iar noi putem mai mult – și dacă putem, de ce să nu profităm la maxim? În al patrulea rând, Firefox abia la a patra versiune va implementa o modalitate de a detecta când crapă un plugin, funcționalitate esențială pentru a putea evita coșmarurile cauzate de această plagă a Internet-ului, plagă ce poartă numele de Flash.

În concluzie, Firefox are probleme inacceptabile de utilizabilitate și performanță, iar problemele astea îl fac un software destul de prost, fiindcă „indecent” sună indecent. Avem nevoie de ceva mai bun, iar eu vă spun cu mâna pe tastatură că (cu sau fără virgulă, după gusturi) Chromium – adicătelea varianta open source a lui Google Chrome, pentru a nu stârni scandaluri ideologice – este un browser cât se poate de decent (de exemplu, numesc o experiență plăcută vizionarea pe iutub a clipurilor în format video suportat de HTML5). Iar eu îl folosesc pe ăsta fără nici un fel de remușcări, iar când s-o întâmpla să se facă toate la fel de urâte ca Firefox, mă voi refugia în lumea lynx-ului sau mai rău, a telnet-ului, iar javascript-ul o să-l parsez în minte, spre disperarea proprie.

Ce se întâmplă când combinăm cele două elemente? Se întâmplă vimium. Astfel, vom avea pe de o parte un browser web care-și face treaba onorabil, servind la tavă pagini web creierului înfometat după informație, și pe de altă parte funcționalitatea vim-ului acolo unde dorim, mai exact în majoritatea paginilor web. De exemplu nu-i cazul gmail-ului, care are la rândul lui o extensie pentru comenzi de la tastatură în stil vim, și poate nici a Google Reader-ului (care-i cam la fel ca gmail). Este însă cazul acestui blog sau al altora, sau al unei pagini cu un număr considerabil de link-uri, poate mai puțin cazul unor site-uri cu conținut Flash intens.

De menționat faptul că modul Insert oferă funcționalitatea unui browser normal, iar în rest comenzile sunt documentate pe site în cea mai mare parte. Din păcate, compatibilitatea cu multe chestii legate de javascript se poate dovedi a fi stricată de extensie, apăsarea tastei i rezolvând însă aceste probleme. Iar pentru a nu fi înjurat prea tare că am lovit în vulpea cea de foc, vă voi da un link la alternativa folosită cu succes de unii utilizatori de Firefox, și anume vimperator.

Comments

  • Vlad spune:

    Interesant articolul, dar totusi tin sa te contrazic la o chestie: faptul ca Firefox nu este multi-process, asta nu inseamna ca nu e multithreading. Spre exemplu, iti garantez ca UI-ul ruleaza intr-un thread separat fata de celelalte prelucrari. E o regula de baza pe care o respecta orice program decent din ziua de azi.
    In rest, zilnic dau in el cu cate 30-40 de taburi (noroc cu multi-row de la Tab Mix Plus) si nu are nici pe naiba. 🙂

    PS: Mi se pare cam mica fereastra pentru comentarii.

  • spyked spune:

    Faptul că UI-ul îngheață cu totul când se deschide Awesome Bar-ul e un semn clar al faptului că cel puțin o parte din afișare rulează în același thread cu căutarea. E doar unul din „feature-urile” care m-au făcut să renunț la FF.

    Mă gândesc totuși că Firefox are interfața grafică pe Windows + Linux + Mac, iar constrângerea asta de portabilitate afectează cumva partea de threading. Cel mai probabil plugin-urile sunt rulate în thread-uri separate, probabil și rendering-ul paginilor, dar asta nu cred că face Firefox-ul în sine un browser multithreaded, cel puțin nu la nivelul de tabbed browsing (1 thread per tab – nu neapărat proces – cu ramificațiile lui). Sigur, asta nu exclude ce ai zis tu.

    Îți dai seama că am exagerat la greu în descriere, dar asta fiindcă experiența mea în ultimul timp a fost groaznică, mai ales dacă îmi lăsam history-ul să crească.

    Căsuța de comentarii mă enervează și pe mine, dar mi s-a părut un minus acceptabil în raport cu restul temei. Încurajează comentariile scurte, ceea ce nu-i musai rău. 🙂

  • spyked spune:

    Also, chestia cu Awesome Bar-ul poate să fie și o chestie de sincronizare, cine știe.

    Și nu mă plâng, and I’m not going to fix it because it’s open source. E mai comod să folosesc pe altul.

  • […] Spuneam mai demult cum că Adobe Flash s-a transformat peste noapte într-o adevărată abominație a Internetului. Și e drept că și astăzi, în anul de grație 2010 (aproape 2011), pe orice platformă l-ai rula, monstrul celor de la Adobe funcționează atât de prost că e greu să găsești un grad de comparație potrivit pentru a descrie fenomenul – pe unele sisteme mai prost decât pe altele. Mențiunea tristă este însă aceea că nu există încă o concurență serioasă pentru livrarea conținutului multimedia pe web: Silverlight, așa cum era de așteptat, nu are mare succes, iar HTML5 promite dar nu a atins încă pragul de maturitate. Orice altceva e demn de ignorat. […]

  • […] din editoare precum vim în cadrul unor softuri cum ar fi browser-ul web putem folosi vimium pe Chrome, respectiv vimperator pe Firefox. Altfel, scurtăturile care vin cu orice aplicație […]

  • Comentariile sunt dezactivate.