Rust-ohjelmointikielen asema ja sen soveltuvuus nykypäivän ohjelmistoihin
Ketolainen, Joel (2022)
Kandidaatintyö
Ketolainen, Joel
2022
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2022120970218
https://urn.fi/URN:NBN:fi-fe2022120970218
Tiivistelmä
Maailman digitalisoitumisen kasvu tulee vaatimaan aina vain enemmän kirjoitettua koodia. Tästä kasvusta huolimatta, suurin osa laitteista on ohjelmoitu epäturvallisilla systeemiohjelmointikielillä, kuten C ja C++. Näillä kieleillä kirjoitetun koodin epäturvallisuus liittyy yleisimmin muistinhallintaan. Tässä kandidaatintyössä tarkastellaan nuorta systeemiohjelmointikieltä nimeltä Rust. Työssä pyritään selvittämään Rust-kielen ominaisuuksia ja miten ne vertautuvat muihin ohjelmointikieliin. Tämän lisäksi pohditaan, miten Rust-kieli soveltuu nykypäivän ohjelmistoihin ja pystyisikö se korvaamaan tämänhetken käytetyimpiä ohjelmointikieliä.
Rust-kielen soveltuvuuden selvittämiseksi, tässä kandidaatintyössä toteutetaan systemaattinen kirjallisuuskatsaus. Tutkimuksessa selvitetään Rust-kielen soveltuvuutta nykypäivän ohjelmistoihin ja sitä verrataan muihin ohjelmointikieliin. Kirjallisuuskatsaukseen hyväksytyistä tutkimuksista nousi esiin neljä kategoriaa: Rust-kielen turvallisuus, suorituskyky, käyttöönotto ja konkreettiset käyttötapaukset.
Näihin kategorioihin luokiteltujen tutkimusten pohjalta nousi esiin, että Rust-kielen hyvinä puolina pidettiin sen muistinhallinnan turvallisuutta ja korkeaa suorituskykyä. Rust-kielen suorituskyky vastasi muita systeemiohjelmointikieliä ja sen lisäksi koodi oli taatusti turvallista. Huonona puolena pidettiin kielen tuntemattomuutta. Muiden systeemiohjelmointikielten sujuva osaaminen on ohjelmoijien keskuudessa paljon yleisempää ja tämän takia Rust-kielen käyttöönotto ohjelmistoyrityksissä voi viedä vielä monta vuotta. The growing digitalization of the world is going need more and more lines of code. Despite this growth, a large portion of devices are programmed using unsafe programming languages like C and C++. The unsafety of these languages is usually linked to memory management. In this thesis the young Rust programming language is examined. The goal of this thesis is to research the different features of the Rust language and compare them to other programming languages. In addition to this, the suitability of the Rust language for modern software is investigated and if the Rust language could potentially replace other more common programming languages.
To investigate the suitability of the Rust language, a systematic mapping study is conducted. In this study it is examined whether the Rust language is suitable for modern software and the language is also compared to others. In the mapping study four different categories were identified: Rust language safety, performance, deployment, and concrete use cases.
Based on the articles grouped in these categories it was concluded that the strengths of Rust were the safety of its memory management and its performance. The performance of the Rust language matched those of other systems programming languages and on top of that the code was guaranteed to be safe. One of the weaknesses was determined to be the obscurity of the language. Among experienced programmers, the proficient use of other systems programming languages was higher than that of the Rust language. Because of this, wide deployment of the Rust language can still take many years.
Rust-kielen soveltuvuuden selvittämiseksi, tässä kandidaatintyössä toteutetaan systemaattinen kirjallisuuskatsaus. Tutkimuksessa selvitetään Rust-kielen soveltuvuutta nykypäivän ohjelmistoihin ja sitä verrataan muihin ohjelmointikieliin. Kirjallisuuskatsaukseen hyväksytyistä tutkimuksista nousi esiin neljä kategoriaa: Rust-kielen turvallisuus, suorituskyky, käyttöönotto ja konkreettiset käyttötapaukset.
Näihin kategorioihin luokiteltujen tutkimusten pohjalta nousi esiin, että Rust-kielen hyvinä puolina pidettiin sen muistinhallinnan turvallisuutta ja korkeaa suorituskykyä. Rust-kielen suorituskyky vastasi muita systeemiohjelmointikieliä ja sen lisäksi koodi oli taatusti turvallista. Huonona puolena pidettiin kielen tuntemattomuutta. Muiden systeemiohjelmointikielten sujuva osaaminen on ohjelmoijien keskuudessa paljon yleisempää ja tämän takia Rust-kielen käyttöönotto ohjelmistoyrityksissä voi viedä vielä monta vuotta.
To investigate the suitability of the Rust language, a systematic mapping study is conducted. In this study it is examined whether the Rust language is suitable for modern software and the language is also compared to others. In the mapping study four different categories were identified: Rust language safety, performance, deployment, and concrete use cases.
Based on the articles grouped in these categories it was concluded that the strengths of Rust were the safety of its memory management and its performance. The performance of the Rust language matched those of other systems programming languages and on top of that the code was guaranteed to be safe. One of the weaknesses was determined to be the obscurity of the language. Among experienced programmers, the proficient use of other systems programming languages was higher than that of the Rust language. Because of this, wide deployment of the Rust language can still take many years.