06.01.2022

Rust-ohjelmointikielen kokeiluympäristöjä

Rust-ohjelmointia voi harjoitella itsekseen monella tavalla. Tässä listataan joitakin vaihtoehtoja, jotka eivät ole pelkkää lukemista, vaan niiden avulla voi oppia kirjoittamalla koodia.

Tour of Rust

Tour of rust käy läpi Rustin perusteet yhdeksässä kappaleessa. Jokaiseen asiaan liittyy esimerkki, joka on kuvauksen vieressä. Esimerkkiä voi muuttaa ja ajaa suoraan ikkunassa.

Kurssin ensimmäinen kappale on käännetty suomeksikin allekirjoittaneen toimesta, mutta se kannattaa käydä läpi alkuperäisenä englanninkielisenä versiona.

Rust Playground

Tour of Rustin esimerkit itse asiassa suoritetaan upotetussa Rust Playground -ikkunassa. Tätä voi käyttää suoraan selaimesta osoitteessa

Pro-vihje: voit tutkia ohjelman tuottamaan Assembly-koodia vaihtamalla Play -> Asm ja Debug -> Release. Ohjelmassa on vieläkin aika paljon ylimääräistä, mutta pääohjelmasi tuottama Assembly-koodi löytyy kohdasta playground::main.

VS Code Rust Playground

Joskus nopeisiin kokeiluihin ei riitä Rust Playgroundin sallimat cratet tai CPU-aika, joten voit haluta vastaavan toiminnallisuuden omaan koneeseesi.

VS Codeen on saatavilla plugin, jolla Rust-koodia voidaan kokeilla nopeasti luomatta kokonaista projektia:

IntelliJ IDEA Rust Playground

Vastaava Rust Playground IntelliJ IDEA -kehitysympäristöön löytyy

Rust-tehtäviä editorilla ja tarkistimella

CodeWars Rust

CodeWars sisältää tehtäviä, jotka voi tehdä sisäänrakennetulla editorilla, testata vastauksensa ja sitten toimittaa vastauksen julkiseen arvosteluun.

Rust-tehtäviä on tällä hetkellä noin 550 ja ne on jaettu kahdeksaan vaikeusasteeseen. Tehtävät ovat käyttäjien tekemiä.

Yksi hankaluus näissä tehtävissä on, että samat tehtävät on tarkoitettu usealle eri ohjelmointikielelle. Esimerkiksi keskimmäisen kirjaimen löytäminen merkkijonosta on Rustilla paljon vaikeampaa kuin C:llä, koska C olettaa tasamittaisen ASCII-koodin mutta Rust UTF-8 vaihtuvakoodisen merkistön. Monien tehtävien hyväksytyt ratkaisut ovatkin rumaa Rust-kieltä.

Monet tehtävät ovat myöskin enemmän matematiikkaa kuin ohjelmointia.

LeetCode

Toinen samanlainen sivusto on LeetCode.

Näistä monen tehtävän ongelmana on, että ne vaativat suoraan linkitetyn listan käyttöä, mikä on Rustissa vaikeaa tai mahdotontakin (ilman unsafe-lohkoja).

Codingame

Rustia voi oppia myös pelaamalla. Tällä sivustolla voit haastaa vastustajia 15 minuutin otteluun tehtävien ratkaisuista.

Nopeimmat ratkaisevat tehtävät yleensä Pythonilla, joten joudut olemaan nopeampi kuin he.

Muut

Tässä vielä muutama samantyyppinen tehtäväsivusto, joka tukee Rustia. Näitä en ole kokeillut.

Excercism tarjoaa perusharjoituksia 55 ohjelmointikielelle, joista Go on neljänneksi suosituin ja Rust viidenneksi.

Excercismin harjoitukset on ryhmitetty kielten rakenteiden mukaan, ja ne ovat CodeWarsiin ja LeetCodeen verrattuna yksinkertaisia.