De meeste websites en webapplicaties zijn geschreven in JavaScript, of in ieder geval iets dat is geconverteerd naar JavaScript. Er zijn in de loop der jaren veel pogingen gedaan om dat te veranderen, maar verwacht niet dat JavaScript snel volledig zal verdwijnen.
Zaplib is een startend bedrijf dat een raamwerk heeft gemaakt voor het herschrijven van delen van op JavaScript gebaseerde webapplicaties in de Rust-programmeertaal, die vervolgens in webbrowsers zouden worden uitgevoerd met behulp van WebAssembly. Rust is een programmeertaal op laag niveau die is geoptimaliseerd voor prestaties en veiligheid, en veel toepassingen hebben Rust gebruikt om de laadtijden en het reactievermogen aanzienlijk te verbeteren. Mozilla herschreef de CSS-engine in de Firefox-webbrowser met Rust in 2017, als onderdeel van de ‘Firefox Quantum’-update, die de typische prestaties van Firefox verdubbelde. Met WebAssembly kunnen sites hun code schrijven in meer traditionele programmeertalen, zoals C++, en deze in een webbrowser uitvoeren, net als JavaScript.
Zaplib hoopte dat het herschrijven van webapplicaties in Rust-powered WebAssembly, één sectie per keer, zou resulteren in prestatieverbeteringen van maar liefst 10x. De oprichters van het bedrijf zeiden echter in een ‘post-mortem’ dat de enorme sprongen niet helemaal uitkwamen. “Onze gok was dat het 10x ergonomischer zou zijn om je app stapsgewijs te versnellen in Rust. Dit hield geen stand in real-world implementaties, “zei het team.
De groep constateerde een paar problemen met haar plan. De meeste bedrijven aarzelden (begrijpelijkerwijs) om hun code te herschrijven in een taal die hun technici misschien niet kenden, maar wat nog belangrijker is, er was geen significant snelheidsverschil tussen goede JavaScript-code en goede Rust-code. Zaplib hielp een bedrijf een simulatietool over te zetten naar Rust, die uiteindelijk slechts 5% sneller was dan de bestaande JavaScript-versie. Zaplib hoopte ook dat zijn hardware-versnelde 2D-renderer zou helpen, maar de meeste prestatieverbetering kwam van WebGL, dat Rust of WebAssembly helemaal niet nodig heeft.
Dit betekent niet dat WebAssembly verschrikkelijk of nutteloos is – Google Earth en Photoshop zijn beide overgezet naar webbrowsers dankzij WebAssembly, en bedrijven zoals Microsoft bouwen kaders voor meer ontwikkelaars om dezelfde overgang te maken. Er is absoluut een reden voor het bestaan, maar JavaScript is de afgelopen jaren ook aanzienlijk geëvolueerd. De ‘V8’-engine die JavaScript-code in Chrome, Microsoft Edge en andere op Chromium gebaseerde browsers verwerkt, wordt steeds sneller. Recente optimalisaties maakten Chrome volgens Google tot de snelste webbrowser die beschikbaar is op de Mac, en andere veranderingen hebben ook de Windows- en Android-versies versneld.
WebAssembly brengt al een nieuwe golf van toepassingen op het web die een paar jaar geleden niet had kunnen bestaan, maar verwacht niet dat al het JavaScript snel zal verdwijnen. Zaplib zei in zijn bericht: “er zijn meestal eenvoudigere manieren om prestatieverbeteringen te vinden dan Rust [or WebAssembly].”
Bron: Zaplib