Rust-ohjelmointikielen ydinkehitys sai 5. elokuuta kirjatun säännön sille, mitä kielimallit siellä saavat tehdä. Vastaus on epätavallisen tarkkarajainen: lukea, analysoida ja arvioida saa, kirjoittaa ei.
Linjauksen hyväksyivät kääntäjätiimi, kirjastotiimi, tyyppitiimi, rustdoc-tiimi ja bootstrap-tiimi alatiimeineen. Se koskee vain rust-lang/rust-varastoa eli kielen ydintä, ei projektin muita repositorioita. Kielitiimi ja editiotiimi jäivät ulkopuolelle.
Perusperiaate mahtuu yhteen lauseeseen, jonka linjauksen kirjoittajat nostivat itse kärkeen.
“Kielimalleja saa käyttää kysymyksiin vastaamiseen, analysointiin, tiivistämiseen, hiomiseen, tarkistamiseen, ehdottamiseen ja arviointiin. Mutta ei luomiseen.”
Käytännössä kehittäjä saa syöttää mallille olemassa olevaa koodia ja kysyä, mitä se tekee. Hän saa pyytää mallia etsimään bugeja, tiivistämään pitkän issue-ketjun tai käymään läpi omaa keskeneräistä työtään. Tällainen yksityinen käyttö ei vaadi mitään ilmoitusta.
Raja ylittyy siinä hetkessä, kun mallin tuottama teksti päätyy julkiseksi omalla nimellä. Kiellettyjä ovat mallin kirjoittamat issue-tekstit, pull request -kuvaukset ja GitHub-kommentit, samoin dokumentaatio ja ei-triviaalit lähdekoodin kommentit. Osa poikkeuksista on sallittu, jos mallin osuudesta kerrotaan avoimesti. Valehtelu asiasta on käytössääntöjen rikkomus.
Miksi juuri turvallisuuskommentit
Rustin koko lupaus perustuu siihen, että kääntäjä estää muistivirheet ennen kuin ohjelma edes käynnistyy. Poikkeuksen tekee unsafe-lohko: sen sisällä ohjelmoija ottaa vastuun asioista, joita kääntäjä ei kykene todistamaan. Vastineeksi jokaisen tällaisen lohkon yhteyteen kirjoitetaan SAFETY-kommentti, joka perustelee miksi koodi on siitä huolimatta turvallista.
Se kommentti ei ole dokumentaatiota vaan todistus. Sen lukee seuraava kehittäjä, joka miettii saako viereistä riviä muuttaa. Jos perustelu on virheellinen tai vain uskottavan kuuloinen, vika ei näy käännösvirheenä vaan muistin korruptoitumisena jossain aivan muualla ohjelmassa, mahdollisesti vuosia myöhemmin.
Kielimalli on erinomainen tuottamaan uskottavan kuuloista tekstiä. Juuri siksi linjaus sulkee sen pois kohdasta, jossa uskottavuus ja oikeellisuus pitäisi erottaa toisistaan. Sama logiikka ulottuu soundness-kriittisiin muutoksiin: niitä saa tehdä mallin avulla vain, jos tekijä on jo valmiiksi alueen asiantuntija.
Kääntäjän virheilmoitukset ovat oma erikoistapauksensa. Rustin virheilmoituksia pidetään yleisesti alan parhaimpina, ja ne on hiottu vuosien mittaan käsin. Ne ovat kielen näkyvintä dokumentaatiota, ja moni oppii kielen nimenomaan lukemalla niitä. Niiden sävy on osa projektin identiteettiä, eikä sitä haluta antaa mallin hoidettavaksi.
Mitä linjaus kieltää ja mitä sallii
Kielletty: mallin luoma dokumentaatio, ei-triviaalit lähdekoodin kommentit ja turvallisuuskommentit, kääntäjän virheilmoitukset, omalta tililtä julkaistut mallin kirjoittamat kommentit sekä täysin autonomisten agenttien tekemät osallistumiset. Mallin arviota ei myöskään saa käyttää perusteena muutoksen hyväksymiselle tai hylkäämiselle.
Sallittu: yksityinen käyttö, kysymysten esittäminen koodista, oman työn tarkistuttaminen ja selvästi kokeellisiksi merkityt muutokset. Ilmoitusvelvollisuuden kanssa sallittuja ovat konekäännös, triviaalit korjaukset kuten kirjoitusvirheet, bugien löytäminen mallin avulla sekä erillisiltä tileiltä toimivat arviointibotit, joiden lausunto ei estä yhdistämistä.
Muut projektit ovat vetäneet rajan tylymmin
Rust ei ole ensimmäinen iso projekti, joka on kirjoittanut säännön ylös. Gentoo-jakelun neuvosto kielsi jo huhtikuussa 2024 kielimallien avulla tuotetun sisällön kokonaan ja perusteli päätöstä tekijänoikeuksilla, laadulla ja eettisillä syillä. Virtualisointiohjelmisto QEMU hylkää lähtökohtaisesti kaikki lähetykset, joiden uskotaan sisältävän tekoälyn tuottamaa sisältöä, koska kehittäjä ei silloin voi allekirjoittaa koodin alkuperätodistusta.
Verkkotyökalu curl puolestaan lopetti tammikuussa 2026 rahallisten bugipalkkioiden maksamisen kokonaan. Syynä olivat mallien tuottamat roskaraportit, jotka painoivat vahvistettujen haavoittuvuuksien osuuden yli viidestätoista prosentista alle viiteen vuodessa.
Rustin ratkaisu eroaa näistä siinä, ettei se ole kielto vaan työnjako. Se nimeää tehtävät, joissa mallista on hyötyä, ja tehtävät, joissa sen käyttö siirtäisi vastuuta pois ihmiseltä. Linjauksen kirjoittanut Jynn Nelson myöntää suoraan, että projektin sisällä ollaan tekoälyn sopivuudesta perustavanlaatuisesti eri mieltä ja että sääntö syntyi konsensuksella eikä yksimielisyydellä.
Mitä tästä seuraa suomalaiselle kehittäjälle
Suomalaisissa ohjelmistotaloissa kielimalli on jo arkinen työkalu, ja monessa paikassa sen käyttöä ohjaa lähinnä sanaton sopimus. Rustin linjaus ei sido ketään heistä, mutta se tarjoaa mallin, joka on helpompi ottaa käyttöön kuin täyskielto. Sitä voi soveltaa suoraan omaan koodikatselmointikäytäntöön.
Kiinnostavinta on se, mihin raja vedetään. Yleisin tapa yrityksissä on rajoittaa mallin käyttöä varsinaisen koodin kirjoittamisessa ja jättää kommentit ja dokumentaatio vapaaksi, koska ne tuntuvat vaarattomilta. Rust tekee päinvastoin: koodia saa tietyin ehdoin generoida, mutta perusteluja ei. Perustelu on se, mihin seuraava lukija luottaa silloin kun ei ehdi lukea koodia.
Avoimen lähdekoodin projekteihin osallistuvalle yritykselle linjausten kirjavuus on jo itsessään riski. Sama korjaus voi olla täysin sallittu yhdessä projektissa ja automaattinen hylkäys toisessa, eikä eroa näe mistään keskitetystä listasta. Käytännön neuvo on tylsä mutta toimiva: tarkista kohdeprojektin sääntö ennen kuin lähetät mitään, ja kerro mallin osuudesta silloinkin kun kukaan ei kysy.
Tavallinen ihminen ei näe riviäkään Rustia, mutta ajaa sitä joka päivä. Kieltä käytetään Linux-ytimessä, Windowsissa, Androidissa, selainten moottoreissa ja pilvipalvelujen perustassa eli paikoissa, joissa muistivirhe muuttuu tietoturva-aukoksi. Väärä turvallisuuskommentti Rustin ytimessä ei ole tyylikysymys vaan mahdollinen haavoittuvuus miljardeissa laitteissa.
Rust-kielessä erikseen merkitty kohta, jossa ohjelmoija ottaa itse vastuun muistin oikeasta käsittelystä, koska kääntäjä ei pysty sitä tarkistamaan.
Repositorio (varasto)
Verkossa oleva säilö, johon ohjelmiston lähdekoodi ja sen koko muutoshistoria tallennetaan. GitHub on tunnetuin palvelu tällaisten säilöjen ylläpitoon.
Soundness
Ohjelmointikielen ominaisuus, joka takaa ettei turvalliseksi merkityllä koodilla voi aiheuttaa muistivirheitä. Jos takuu pettää yhdessä kohdassa, koko kielen turvallisuuslupaus murtuu.
Linjaukseen on rakennettu myös varoventtiili, jota muissa projekteissa ei juuri näy. Jos kuuden viikon aikana yli puolet yhdistetyistä muutoksista on kielimallin luomia, uudet mallin kirjoittamat muutokset kielletään vähintään kymmeneksi päiväksi.
Sääntö paljastaa, mistä koko linjauksessa lopulta on kyse. Se ei suojele vain koodin laatua vaan sitä joukkoa ihmisiä, joka koodia osaa. Kääntäjän kaltaista järjestelmää ei ylläpidetä ilman kymmenkuntaa vuotta kerättyä hiljaista tietoa, ja se tieto syntyy nimenomaan siitä, että joku joutuu itse kirjoittamaan vaikean perustelun auki. Rust päätti varmistaa, ettei sitä vaihetta voi ohittaa.
Viikoittainen uutiskirje
Tule firmasi fiksuimmaksi AI-osaajaksi
Yksi uutiskirje kerrallaan. Kokoamme viikon tärkeimmät tekoälyuutiset suomeksi ja kerromme, mitä ne tarkoittavat sinun työsi kannalta. Luet sen kahvitauolla.