Svelte, creat de un editor grafic pentru The New York Times, a atras un număr de următori printre programatorii care doresc ca paginile lor să se încarce mai repede.
Site-urile web sunt prea al naibii de mari.
Media paginii web este de aproximativ 2 megaocteți, conform HTTP Archive, un site care urmărește performanțele site-urilor web și tehnologiile pe care le utilizează. Sigur, puteți descărca 2 megaocteți în mai puțin de o secundă pe o conexiune mobilă bună 4G. Însă paginile web de astăzi sunt problematice pentru persoanele cu conexiuni lente sau cu limite mici de lățime de bandă. Nu cu mult timp în urmă, un joc complex sau un program software se potrivesc pe o dischetă de 1,4 megabyte.
Există multe motive pentru care webul de astăzi este atât de umflat, inclusiv reclame și scripturi de urmărire care împart atâtea pagini. Un alt motiv este că site-urile web fac mult mai mult decât să afișeze text și imagini. Multe site-uri arată acum și se simt ca aplicații desktop complete.
Pentru a construi aceste site-uri interactive, mulți dezvoltatori web apelează la pachete open source care gestionează sarcini comune. Aceste instrumente eliberează programatorii de o mulțime de muncă gruntă, dar pot adăuga greutate unui proiect. Biblioteca populară Facebook React sursă deschisă pentru construirea de interfețe cu utilizatorul, de exemplu, cântărește 100 de kiloocteți. Aruncați alte instrumente și grafică și, în curând, vorbiți de mulți megabyți.
Noul cadru JavaScript Svelte, creat de jurnalistul vizual și dezvoltator de software Rich Harris, își propune să faciliteze scrierea de site-uri web și aplicații interactive mai mici și mai rapide. Dezvoltatorul web Shawn Wang spune că a redus dimensiunea site-ului său personal de la 187 kilobyte la 9 kilobyte trecând de la React la Svelte.
„A fost un moment mare„ wow ”, spune Wang. "Nici măcar nu încercam să optimizez dimensiunea și a scăzut."
Harris, editor grafic pentru The New York Times, a creat și a lansat prima versiune a Svelte în 2016 în timp ce lucra pentru The Guardian. Multe dintre proiectele sale implicau grafică interactivă și animații, dar se temea că grafica ar putea dura prea mult timp pentru a fi încărcată sau ar putea mesteca limitele de date ale utilizatorilor.
Cadrele adaugă greutate site-urilor web, deoarece servesc în mod tradițional ca strat intermediar între codul unei aplicații și browserul utilizatorului. Asta înseamnă că dezvoltatorii trebuie să grupeze întregul cadru, în plus față de propriul cod, cu o aplicație, chiar dacă nu utilizează toate caracteristicile cadrului. Wang compară acest lucru cu o navă rachetă care are nevoie de rezervoare masive de combustibil pentru a se lansa în spațiu.
Harris a adoptat o abordare diferită. Svelte își desfășoară activitatea în stratul mediu înainte ca un dezvoltator să încarce cod pe un server web, chiar înainte ca un utilizator să îl descarce vreodată. Acest lucru face posibilă eliminarea funcțiilor inutile, micșorând aplicația rezultată. De asemenea, reduce numărul de piese în mișcare atunci când un utilizator rulează aplicația, ceea ce poate face aplicațiile Svelte mai rapide și mai eficiente. „Svelte este ca un lift spațial”, spune Wang. Cadrul a fost dificil de creat, dar susținătorii spun că facilitează dezvoltarea dezvoltatorilor de aplicații eficiente pentru dezvoltatori.
Tot ce ați dorit vreodată să știți despre Linux, GNU și despre cât de mari companii câștigă bani din software-ul gratuit bazat pe colaborare.
Wang spune că îi place să folosească Svelte pentru pagini web, dar încă folosește React pentru aplicații mai mari, inclusiv pentru munca sa profesională. În primul rând, cu cât o aplicație este mai mare, cu atât este mai probabil ca un dezvoltator să utilizeze toate caracteristicile React. Asta îl face mai puțin risipitor. De fapt, unele aplicații Svelte sunt mai mari decât aplicațiile realizate cu React sau instrumente similare. Și există o cerere mult mai mare pentru dezvoltatorii React decât dezvoltatorii Svelte.
În sondajul State of JavaScript 2019 din peste 21.000 de dezvoltatori, 88% dintre respondenții care au folosit Svelte s-au declarat mulțumiți de acesta, oferindu-i al doilea cel mai mare rating de satisfacție din sondaj, chiar în spatele ratei de satisfacție React de 89%. Dar doar 7,8% dintre respondenți folosiseră Svelte, iar 24,7% nu au auzit niciodată de asta. Între timp, 80,3% folosiseră React.
Harris înțelege de ce mulți dezvoltatori ar ezita să investească în învățarea Svelte. Lumea dezvoltării JavaScript se mișcă rapid, iar programatorii au deja un număr amețitor de instrumente din care să aleagă și să învețe. „React are avantajul de a fi susținut de Facebook, o piață de muncă puternică și un ecosistem imens de lucruri terțe care funcționează cu acesta”, spune el. Deși Harris folosește Svelte pentru a face grafică și animații pentru The New York Times, site-ul editorului se bazează în continuare pe React.
Svelte este încă un proiect de hobby la care Harris și alți dezvoltatori lucrează în primul rând în timpul liber. Harris lucrează la el „pe ceas” numai atunci când trebuie să remedieze ceva sau să adauge o caracteristică care îl ajută cu munca sa pentru Times.
Harris spune că Svelte este cel mai potrivit pentru cazurile în care performanța și dimensiunile fișierelor sunt deosebit de importante, cum ar fi aplicațiile care rulează pe televizoare inteligente sau dispozitive cu consum redus de energie.
Dar unii dezvoltatori Svelte îl folosesc pentru a construi aplicații mai mari. Ryan Atkinson este fondatorul Felt Social, care creează instrumente pentru construirea de site-uri web foarte personalizabile. El spune că a ales Svelte, deoarece oferă aplicații mai rapide și mai receptive, chiar dacă acestea nu sunt întotdeauna cele mai mici. „Arhitectura lui Svelte poate schimba fundamental jocul construirii interfețelor utilizator”, spune el.
Atkinson spune că programatorii resping adesea instrumentele care sunt bune pentru a construi lucruri mici, considerând că sunt „jucării” care nu pot fi folosite pentru a construi lucruri mari.
„Cred că este o eroare”, spune el. La urma urmei, subliniază el, JavaScript a fost odată considerat un „limbaj de jucărie”. Acum este folosit pentru a scrie aplicații precum Gmail și Google Docs.