Web-ul recent e o catastrofă

Ați încercat să vă conectați la net cu o conexiune proastă? Undeva, prin telefon, unde nu există nici măcar 3G și unde viteza maximă se măsoară în kbps? Vă spun eu, experiența e teribilă.

Asta înseamnă că experiența de navigare va fi în continuare teribilă pe măsură ce din ce în ce mai multă lume va consuma internet. Vorbesc în mod deosebit de internetul mobil, unde 4G-ul inclus în abonamentul lunar se măsoară acum în secunde (sub 10) de full-speed. Pe măsură ce din ce în ce mai multă lume va consuma internet, viteza aia maximă se va împărți la toți și rezultatul va fi o conexiune proastă în general.

Blogul acesta pe care îl vizitați nu are cine știe ce chestii, însă pagina are dimensiunea totală de vreo 500kB, din care 190kB sunt numai text Javascript. Dar blogul meu ca blogul meu, încercați să vă uitați la ceva video. Dacă până acum câțiva ani Youtube înțelegea să aducă tot clipul dacă conexiunea e foarte proastă, înțelegând că omul poate i-a dat pauză ca să nu se uite la clip fragmentat, din ce în ce mai multe playere au adoptat noua lor strategie, în care aduc maxim X secunde de clip. Experiența e oribilă, utilizatorii nesatisfăcuți, dar serverele Youtube sunt mult mai fericite. E de înțeles, în fond e serviciu gratuit (exceptând faptul că nu e, până la urmă se fac bani din Youtube), doar că toată lumea i-a copiat și rezultatul e dezastruos.

La fel și tona de Javascript. Megabytes de Javascript sunt descărcați și interpretați pentru a rula aplicația web a Facebook. Resurse adiționale, sprite-uri enorme din care se taie două-trei pentru a prezenta o poză micuță, Realitatea e că web-ul modern nu face față propriilor cerințe.

De prin anii ’70 până recent am profitat de efectele legii lui Moore pe mai multe niveluri. Soluția bloatware-ului din anii ’90? Add more RAM, add a newer CPU. Soluția bloatware-ului din 2010? Add more software, add more CPUs. Soluția bloatware-ului din 2015? Trebuie regândit tot de la zero. Paginile din ziua de azi sunt excesiv de grase, și chestia asta nu iese cu program de fitness

Ups, nu s-a încărcat în cele din urmă.

Ups, nu s-a încărcat în cele din urmă.


Comments

Web-ul recent e o catastrofă — 12 Comments

  1. foarte adevarat ce ai zis, nu contest. totusi, pe undeva, cred ca este si vina providerilor de internet (din .ro). am testat recent internetul, inclusiv mobil, din vreo 4 tari vest-europene si cu toata super-viteza oferita de providerii romani, am constatat ca in .ro am inregistrat cele mai multe probleme de conectare la internet sau de incarcare a unei pagini web.

  2. Stai că baiul sta și în faptul că site-ul așteaptă să se încarce nu-ș ce widgeturi de pe site-uri terțe. La partea cu sprite este bine când se folosesc, mai ales că nu faci ‘nșpe mii de request-uri pentru 25 de imagini, ci se face un singur request și rezolvi restul din CSS.

    Mai e și faza ca oamenii au add-on-uri/extensii în browsere care îi pot incurca în toată treaba asta.

  3. Chestia e ca aia care vin cu inovatia sunt prea mici ca sa conteze, si aia care ar trebui sa fie liderii ‘al de goagle si fasbuci si oricine altcineva vrei tu sunt prea mari sa faca pasi mari inainte. Gandeste-te la cum au evoluat browserle.:)
    Eu inca trebuie sa construiesc cacaturi care sa functioneze in internetexploder 8…pentru ca vreo 20% din homluzari asta folosesc, si pana-n iarna si ie7 era obligatoriu….

  4. Nu e nici o problemă a providerilor. Este ridicol să un site care îți încarcă 2MB de text (JS/CSS/HTML) doar pentru că cineva din spate consideră că e ok să încarce jQuery, Moo și Prototype în același timp.

    Ce legătură au providerii cu Emag care are 1.5Mb de JS? Cu Evomag care încarcă jQuery pe o pagină de campanie ce nu are nevoie de (atât) js? Cu Conversion care încarcă jQuery pentru un căcat de redirect în profitshare? Nu, aici nu providerii sunt de vină.

    Să mai spun că unii nici nu se obosesc cu minify? Sau cu gzip?

    Majoritatea celor ce se plâng de black friday că le pică serverele sunt în situația asta și nici nu cred că realizează.

    @Manuel: treaba cu sprite-urile e cu dus și întors. Dacă ai un sprite de peste 5-600kb s-ar putea să pierzi din avantajele oferite de sprite-uri (dimensiunea e valabilă și pentru css sau js combined) 🙂

    • Astea-s platforme vechi, muncesc la ele de ani de zile, practic sunt generationale, si tot pun plugin-uri peste plugin-uri la nesfarsit, pentru ca inca devii considera partea de front-end ceva prea banal.
      Nu se obosesc cu minify si uglify si concatenare pentru ca sunt 10000 de tampiti care lucreaza in fisierele astea, intr-un milion de locatii, si intotdeauna e un pm sau dumnezeu stie ce alt labete d-asta care vrea totu’ ieri si atunci ajung tot felu` de cwdtards sa butoneze fisierele astea, si practic n-au idee de ce trebuie facute astea 🙂
      Sigur, poti da vina pe organizarea defectuasa, dar eu nu mi-as tine respiratia pana cand lucrurile astea vor functiona ca lumea 🙂
      Atata timp cat atitunea e “trebuie sa fie gata ieri, nu ma intereseaza cum, DAR REZOLVI ACUM!” o sa incarci sprite-uri de 5 mega, lazyloading e ceva stiintifico-fantastic, fiecare campanie va avea propriul custom js si bootstrap si ce mai vrei tu care va ramane acolo pentru ca generatiile urmatoare sa aiba ce ignora.

    • Concat/Minify/Lint nu sunt lucruri ce trebuiesc făcute manual (ba chiar e indicat să NU se facă manual). Se folosește un server CI și se face automat, fix înainte deployment-ului. La fel și sprite-urile, la fel toate task-urile ce permit automatizare. E o investiție de câteva zile (iar aici sunt foarte pesimist) într-un workflow ce ar permite multe optimizări de viitor. Dar deh, suntem prea ocupați să declarăm vânzări record și să mai punem încă trei servere. Și să ne plângem/lăudăm că ne pică serverele după ce am investit sute de mii de euro în ele.

      Încă sper că va veni o vreme când breasla programatorilor va acționa cu profesionalism. Pentru că este nevoie ca programarea să fie văzută ca o meserie, nu ca un hobby. Este nevoie ca programatorii să fie cei ce decid chestii legate de programare, nu clienții, nu PM-ul. Este ridicol numărul de firme în care nu se folosește version control sau unit testing doar pentru că „nu este timp, trebuie să livrăm azi”.

    • Chestia e ca si foarte multi programatori merg pe pricipiul “batem in cuie, legam cu sarma si trebuie doar sa mearga…” Pana la urma mai nimeresti niste manageri intelegatori..dar pana nu educi copacul n-ai ce face, si dupa un timp te saturi sa faci curat dupa el…

  5. Niște băetzași de pe la noi, dintre care unul e actual scriitor sovietic și altul fost ministru de Interne, se plâng de eficiența excesivă a serviciilor publice plătite (internet, curierat, magazin non-stop, taxi etc). Asta se cheamă barbaria est-europeană a unei societăţi de cocalari.

    Pentru ei, magazinele închise, taxiul scump și care nu vine la comandă, curierii proști și hachițele ghișetiștilor de companie sunt semne de civilizație occidentală.

    Argumentul lor suna cam aşa:

    Internet prea rapid și ieftin -> piraterie de filme -> pornografie -> cocălărism
    Taxiuri multe, ieftine și rablagite -> acces prea ușor la taxi la ore mici din noapte -> stat mai toată noaptea la băute și cluburi -> cocălărism
    Magazine non-stop -> acces prea ușor la alcool -> nu te obligă nimeni să îți faci program să prinzi magazinul deschis -> indisciplină -> cocălărism.

  6. Pingback: Câteva cuvinte despre CDN-uri - Ionuț Staicu

  7. Mi-am creat și eu recent o temă de WordPress pentru blogul personal – nu e finalizată 100%, dar e pe aproape.

    Deși nu am destui unici cât să pună în dificultate serverul, mereu am fost ahtiat după optimizare.

    Am făcut tema responsive, iar unele elemente (gen widget Facebook) le încarc selectiv: nu sunt încărcate dacă depistează o platformă mobilă.

    Imagini optimizate (și nu-s multe, ca în cazul altor blog-uri sau site-uri), cod compact și cât mai puține plugin-uri.

    Îmi imaginez că în cazul site-urilor mari sau a magazinelor online problema e ceva mai complicată – și sa fiu serios, mă depășește – însă mă îndoiesc că n-ar puta optimiza puțin imaginile, să nu mai folosească atâtea carusele cu imagini imense și sa utilizeze un CDN, după cum spunea și Ionuț mai sus.

Comentariul tău