Continue writing report

This commit is contained in:
Marko Korhonen 2020-05-02 21:11:26 +03:00
parent bc3fe77c93
commit f36c9fef60
No known key found for this signature in database
GPG key ID: 911B85FBC6003FE5
22 changed files with 266 additions and 165 deletions

View file

@ -5,9 +5,9 @@
Tämän takia myös web-ohjelmoinnissa käytettävissä teknologioissa on tapahtunut paljon muutoksia. Jotta nettisivuista saatiin pelkkien HTML-dokumenttien sijasta ohjelmia, 90-luvun puolivälissä julkaistiin PHP (palvelinpuolen kieli) ja JavaScript (asiakaspuolen kieli). Tänä päivänä näistä kahdesta JavaScript on ehdottomasti suositumpi, minkä takia keskityn tässä opinnäytetyössä sen vertailuun Rustin kanssa.
Vaikka JavaScript onkin suosittu, siinä on paljon ongelmia\cite{medium:javascript}. Suurimmat ongelmat liittyvät kielen heikkoon tyypitykseen, mikä saattaa aiheuttaa ongelmia jotka ilmenevät vasta ajon aikana ja vain tietyissä rajatapauksissa. Tämän takia koodin testaamiseen ja laadun ylläpitämiseen pitää panostaa enemmän. Toinen iso ongelma on se, että JavaScript ei ole tarkka koodin tyylistä. Jo pelkästään funktion kirjoittamiseen on useita eri tyylejä. Tämä hankaloittaa projekteissa kommunikointia ja työtoverien koodin lukemista.
Vaikka JavaScript onkin suosittu, siinä on paljon ongelmia\cite{medium:javascript}. Suurimmat ongelmat liittyvät kielen heikkoon tyypitykseen, mikä saattaa aiheuttaa ongelmia, jotka ilmenevät vasta ajon aikana ja vain tietyissä rajatapauksissa. Tämän takia koodin testaamiseen ja laadun ylläpitämiseen pitää panostaa enemmän. Toinen iso ongelma on se, että JavaScript ei ole tarkka koodin tyylistä. Jo pelkästään funktion kirjoittamiseen on useita eri tyylejä. Tämä hankaloittaa projekteissa kommunikointia ja työtoverien koodin lukemista.
Koska JavaScript on tulkittava kieli, se tulee aina häviämään suorituskyvyssä koottaville kielille. Tätä eroa on osittain kavennettu ajonaikaisen kääntämisen optimoinneilla.
Koska JavaScript on tulkattava kieli, se tulee aina häviämään suorituskyvyssä käännettäville kielille. Tätä eroa on osittain kavennettu ajonaikaisen kääntämisen optimoinneilla.
Edellä mainittujen syiden takia lähivuosina on ilmaantunut useita vaihtoehtoja sekä palvelin- että asiakaspuolen ohjelmointikieliksi. Näistä yksi itseäni eniten kiinnostava on Rust. Tämän opinnäytetyön yhteydessä toteutettu projekti käyttää Rustia sekä palvelimella että asiakaspuolella.