Svelte on käyttöliittymiä varten kehitetty avoimen lähdekoodin UI-kääntäjä – se ei siis suoranaisesti ole framework, vaan sen sijaan kääntäjä tarjoaa kirjaston tyyppisiä työkaluja käyttöliittymien rakentamiseen. Svelte toimii hieman eri tavalla kuin esimerkiksi React tai Vue, jotka ovat todella suosittuja ja suurilta osin samaan käyttötarkoitukseen suunniteltuja frameworkeja.
Näiden kirjastojen ajatus on siinä, että verkkosivustolla lähetettävä HTML-rakenne on aluksi hyvin tynkä, ja JavaScriptillä muodostetaan lähetyksen jälkeen malli tavoitellusta rakenteesta, minkä myötä sivustolle luodaan halutut HTML-elementit. Käytännössä sivuston ulkoasu rakennetaan siis itse suorituksen aikana.
TypeScriptillä kirjoitetun Svelten tehokkuus perustuu siihen, että sen kääntäjä lisää käännösvaiheessa käyttäjän kirjoittamaan koodiin viitteitä, jotka päivittävät tarpeen mukaan HTML-rakennetta juuri oikeasta kohdasta. Tämä on yleisesti ottaen tehokkaampaa kuin Reactin ja Vuen tapa, jossa sivun rakenne käydään joka muutoksen jälkeen uudestaan läpi ja tarkastetaan, mihin kaikkialle muutoksen kuuluu vaikuttaa.
Svelte kääntää kaikki sillä kuvattavat HTML-mallit suoraan olemassa olevaksi ja tarkoituksenmukaiseksi koodiksi, joka siirtyy kääntämisen jälkeen tiettyyn polkuun sivustolla. Kääntäjä siis muodostaa suoraan näytettävän mallin ja muodostaa siitä koodin, joka manipuloi rakennetta käyttäjän toiminnan mukaan. Svelte ei siis sinänsä muodosta erillistä, näkyvää HTML-mallia päivittävää rakennetta taustalla vaan päivittää sitä suoraan ilman välikäsiä.
Kääntäjän vahvuus on juuri siinä, että se tarjoaa verkkosivustoille nopeampaa päivittymistä. Lisäksi se on myös itse laitteelle kevyempi: selaimesta ei kulu prosessitehoa taustan virtuaalisen rakenteen käsittelyyn, kun valmiiksi käännetty näytettävä rakenne osaa päivittää itseään suoraan tarvittavalla tavalla.
Myös sivuston Javascriptillä koodattu logiikka on käännösvaiheessa optimoitu niin, ettei ylimääräisiä rakennetta päivittäviä prosesseja tarvitse suorittaa. Sveltessä toiminnallisuuksien koodaus ei vaadi ohjelmoijalta Reactille ominaista erillisten tilanhallintaominaisuuksien opettelua, vaan ohjelmoija voi keskittyä muokkaamaan haluttua dataa, minkä jälkeen kääntäjä lisää kirjoitetun koodin joukkoon tarvittavat, sivun rakennetta päivittävät osat.
Käytännössä kyseessä on uusi käyttöliittymäohjelmointiin ja käyttöliittymien kehittämiseen hyödynnettävä tekniikka, joka mahdollistaa omalta osaltaan tehokkaamman käyttöliittymän rakentamisen.
Sveltellä toteutettu sivusto tuntuu käyttäjälleen nopealta. React-sivustoilla käyttäjä saattaa joissakin tilanteissa nähdä pientä “tökkimistä” sivulla esimerkiksi animaatioissa, näkymää vaihdettaessa tai tekstikenttään kirjoitettaessa. Tämä johtuu usein siitä, että sivuston optimointi on jätetty Reactin osalta vähäiseksi. Svelten kääntäjä hoitaa suuren osan optimoinnista automaattisesti, jolloin rakenteen muutokset tapahtuvat mahdollisimman tehokkaasti.
Ohjelmistokehittäjille Svelten hyötyihin puolestaan kuuluu, että se on tekniikkana selkeästi ymmärrettävä. Siinä ei myöskään ole paljoa boilerplate-koodia, eli kääntäjää varten ei tarvitse kirjoittaa runsasta määrää ylimääräisiä, kehittäjien manuaalista työtä lisääviä ja jokaisessa sovelluksessa vaadittavia koodinpätkiä, jotta sovellus toimii. Kehittäjä voi siis kirjoittaa vain juuri sitä, mitä haluaa ohjelman loogisesti käsittelevän käyttäjän tehdessä käyttöliittymässä erilaisia asioita.
Svelten avulla voidaan siis käytännössä minimoida kehittäjän tekemä työ uusien ominaisuuksien valmistumiseksi, eikä selaimen itsessään tarvitse tehdä niin paljon töitä toteuttaessaan sivuston toiminnallisuuksia.
Svelten ongelmana voidaan ainakin tällä hetkellä nähdä se, että tähän mennessä sillä tehtyjä käytännön toteutuksia on verrattain vielä vähän. Vaikka tekniikka on toimiva, ei ole kannattavaa lähteä toteuttamaan hyvin räätälöityä sovellusta, joka sisältää teknisesti monimutkaisempia näkymiä tai toimintoja. Kaikki räätälöidyt ominaisuudet pitää nimittäin toteuttaa itse. Toki sekin on täysin mahdollista, mutta kyseinen työ vie ainakin tällä hetkellä rutkasti aikaa – ja tämän työn voi välttää toisilla frameworkeilla.
Jos vertaillaan Svelteä vaikkapa mainittuihin Reactiin ja Vueen, kyseiset frameworkit ovat paljon käytetympiä, ja niissä on huomattavasti enemmän käytettäviä kirjastoja ja koodinpätkiä ohjelmiston muodostamista varten. Ohjelmistojen rakentaminen on siis ainakin vielä yksinkertaisesti nopeampaa kahden muun vaihtoehdon avulla.
Sveltellä vastaavia kirjastoja ei siis ole vielä olemassa, eikä ole varmaa, tuleeko olemaankaan: Svelten tulevaisuus riippuukin siitä, onko se yksinkertaisesti tarpeeksi hyvä ohjelmistokehittäjien mielestä. Kyseessä on joka tapauksessa lupaava vaihtoehto, mutta vaikka itse ohjelmistokehitys on sen avulla helpompaa, se vaatii enemmän työtä ominaisuuksien kehittämisen puolelta.
Tekniikkana Svelte on kuitenkin herättänyt kovasti kiinnostusta, ja sitä pitäisikin testailla paljon käytännössä, jotta ohjelmistokehittäjien piireissä leviäisi yleisempään tietoon, onko se vaatimansa työn arvoinen.