
Linuxi kerneli kogukonnas on olnud mõningaid vaidlusi Rusti programmeerimiskeele integreerimise üle. Christoph Hellwig, Linuxi tuuma DMA, KVM, Slab Allocator ja PowerPC arhitektuuri alamsüsteemide hooldaja, endine Linuxi fondi tehnilise juhtkomitee liige ja VMware vastu algatatud GPL-iga seotud kohtuasja hageja, on keeldunud toetamast Rusti draiveri arendamise toetamisega seotud plaastreid.
Pakutud paigad, mis lisavad DMA alamsüsteemi funktsioonidele ümbriseid, on tekitanud muret koodide hoolduse suurendamise ja tarkvara kvaliteedi võimaliku vähenemise pärast. Mõned arendajad eelistavad hoida oma API-d C-vormingus, et vältida täiendavat keerukust.
Keeldumise põhjusteks toodi koodi hooldamise keerukuse suurenemist teiste keelte sidumise korral ja soovi säilitada tarkvara liidesed DMA-ga loetaval kujul C-keeles, ilma et see leviks üle arusaamatute sidemete. Christophe tegi ettepaneku pääseda otse juurde igas Rusti draiveris loomulikule C DMA API-le, et mitte tekitada täiendavaid abstraktsioone, millest kerneli hooldajad peaksid sõltuma.
Vaatamata projekti Rust for Linux arendajate väljendatud kavatsusele Rustis kirjutatud koodibaasi täiesti iseseisvalt hooldada, pandi paikade vastuvõtmisele veto.
Christoph märkis, et kui arendajad tahavad muuta Linuxi hooldamatuks, segades samas koodibaasis erinevaid programmeerimiskeeli, peaksid nad seda tegema oma draiveris, mitte pihustama seda "vähikasvajat" põhikernelile.
Hooldatavuse probleemi tuum seisneb selles, et Rust-sidemed muudavad hooldajad Rusti koodist sõltuvaks. Esmapilgul tundub, et sidumised on vaid C-struktuuride ja funktsioonide lisandmoodulid, mis ei mõjuta kuidagi C-koodi arendamist ja hooldust. Kuid see pole nii. Selliste sidemete olemasolul peavad C-s kirjutatud alamsüsteemide arendajad arvestama nende muudatuste mõjuga sidumiste jätkuvale funktsionaalsusele. Mis tahes muudatused C-i andmestruktuurides või sisemistes funktsioonides võivad nõuda sidumiskoodi muutmist, seega tuleb C-koodi muudatusi, mis mõjutavad sidumist, jälgida ja Rusti koodiga sünkroonida. Paljud hooldajad ei ole nõus võtma endale täiendavat vastutust Rust-koodis ilmnevate probleemide lahendamise eest ega kuluta oma aega Rust-köite oleku jälgimisele.
Allikas: linux.org.ru
