WebAssembly selainohjelmien kielenä

No Thumbnail Available

Files

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Bachelor's thesis
Electronic archive copy is available locally at the Harald Herlin Learning Centre. The staff of Aalto University has access to the electronic bachelor's theses by logging into Aaltodoc with their personal Aalto user ID. Read more about the availability of the bachelor's theses.

Date

2024-05-08

Department

Major/Subject

Tietotekniikka

Mcode

SCI3027

Degree programme

Teknistieteellinen kandidaattiohjelma

Language

fi

Pages

29

Series

Abstract

JavaScript on ollut käytännössä ainoa vaihtoehto selainsovellusten ohjelmointikielenä suurimman osan nykyaikaisen internetin historiaa. Erilaiset teknologiat ovat yrittäneet haastaa JavaScriptin ylivaltaa selaimessa vuosien varrella, mutta WebAssemblyä lukuunottamatta ne ovat kaikki jääneet historian varjoihin. WebAssembly pyrkii nimensä mukaan olemaan yhteinen kääntökohde erilaisilla ohjelmointikielillä kirjoitetuille ohjelmille, joita halutaan ajaa selaimessa. Tässä kirjallisuuskatsauksessa tarkastellaan WebAssemblyn rakennetta ja toimintaa yleisesti selaimessa ja verrataan sitä JavaScriptiin turvallisuuden ja tehokkuuden näkökulmista. Työssä arvioidaan myös Rustin yhteensopivuutta WebAssemblyn kanssa. WebAssemblyn tuki on vielä aikaisessa vaiheessa monien ohjelmointikielien osalta, mutta Rustilla on jo nyt hyvä työkalustus ja laaja kirjo WebAssemblyä käyttäviä webkehysympäristöjä. WebAssembly on onnistunut parantamaan tietyin osin turvallisuutta JavaScriptiin verrattuna, vaikkakin C-kielen muistihaavoittuvuudet ovat huolenaihe WebAssemblyksi käännettäessäkin. Suorituskyvyn suhteen WebAssembly on antanut lupaavia tuloksia testatteassa sitä paljon laskentatehoa vaativien selainsovellusten kanssa. Yksittäisiin algoritmeihin ja HTML-dokumentin muokkaamiseen perustuvat suorituskykytestit ovat antaneet vaihtelevampia tuloksia. Kaiken kaikkiaan WebAssembly on lupaava teknologia, joka tarjoaa hyvin erilaisen vaihtoehdon JavaScriptille selainsovelluksissa.

JavaScript has been practically the only option for modern web development for the most part of modern Internet's history. Several technologies have tried to challenge JavaScript's dominance in the browser over the years, but so far all of these attempts except for WebAssembly have fallen into obscurity. As the name implies, WebAssembly aims to be a common compilation target for programs written in various languages to be executed in the browser. This thesis is a literature review that broadly covers WebAssembly's structure and functionality in the browser and compares it to JavaScript in the domains of performance and security. This work also evaluates Rust's compatibility with WebAssembly. The support for WebAssembly is still in an early phase for many programming languages, but Rust already has mature tooling for it and a broad selection of web frameworks utilizing WebAssembly. WebAssembly has been able to improve on security compared to JavaScript in some parts, even though C programming language's memory vulnerabilities are also a concern when compiling to WebAssembly. In the field of performance, WebAssembly has shown promising results, when it was tested with certain resource-intensive web applications. Performance tests done with individual algorithms and some simple HTML-document modification operations show more varied results. In conclusion, WebAssembly is a promising technology that provides a distinct alternative to JavaScript for web applications.

Description

Supervisor

Vuorimaa, Petri

Thesis advisor

Vuorimaa, Petri

Keywords

WebAssembly, wasm, JavaScript, Rust, web application

Other note

Citation