![](https://www.miamammausalinux.org/wp-content/uploads/2016/11/linux_big-e1559572730939.png)
Non più tardi di una settimana fa avevamo raccontato di come, tra le numerosissime novità che ci saranno nel Kernel Linux 6.14, fosse stato predisposto l’ambiente necessario a poter vedere il primo driver scritto interamente nel linguaggio Rust, almeno secondo Greg Kroah-Hartman, il maintainer della versione stable del Kernel.
La cosa per quanto non avesse stupito sembrava in controtendenza con le notizie dello scorso anno, tra le dimissioni lo scorso settembre di Wedson Almeida Filho, uno dei maintainer dell’apparato Rust nel Kernel, le quali seguivano le dichiarazioni di Linus Torvalds, il quale affermava come il dibattito intorno a Rust stesse assumendo toni quasi religiosi.
All’ultimo FOSDEM, Miguel Ojeda, che supervisiona l’introduzione di Rust nel Kernel, ha parlato in toni entusiastici dello stato dei lavori e dei progressi, riportando anche i risultati di un sondaggio interno al progetto nel quale quasi tutti sembrano essere favorevoli a collaborare per fare sì che Rust diventi un nuovo linguaggio usabile nel Kernel Linux.
Il problema è che le cose sono precipitate piuttosto in fretta.
A gettare una quantità esagerata di benzina sul fuoco in merito alla questione ci ha pensato un altro maintainer del Kernel Linux, Christoph Hellwig, il quale senza mezzi termini ha definito l’introduzione di Rust nel Kernel come dannosa per l’intero progetto, bocciando una patch proposta con un semplice:
No rust code in kernel/dma, please.
Niente codice rust all’interno di kernel/dma, per favore.Scatenando una discussione nella quale si è trovato ad offrire ulteriori indicazioni a proposito della sua avversione:
Don’t force me to deal with your shiny language of the day, maintaining multi-language projects is a pain I have no interest in dealing with. If you want to use something that’s not C, be that assembly or Rust, you write to C interfaces and deal with the impedance mismatch yourself as far as I’m concerned.
Non costringermi ad avere a che fare con il tuo linguaggio scintillante del momento, gestire progetti multi-linguaggio è una seccatura con cui non ho alcun interesse a occuparmi. Se vuoi usare qualcosa che non sia C, che sia assembly o Rust, scrivi su interfacce C e gestisci tu stesso la discrepanza di impedenza, per quanto mi riguarda.E, ancor di più, con le successive affermazioni:
Every additional bit that the another language creeps in drastically reduces the maintainability of the kernel
as an integrated project. The only reason Linux managed to survive so long is by not having internal boundaries, and adding another language complely breaks this. You might not like my answer, but I will do everything I can do to stop this. This is NOT because I hate Rust.
While not my favourite language it’s definitively one of the best new ones and I encourage people to use it for new projects where it fits.
I do not want it anywhere near a huge C code base that I need to maintain.
Sebbene non sia il mio linguaggio preferito, è sicuramente uno dei migliori nuovi e incoraggio le persone a usarlo per nuovi progetti in cui si adatta.
Non lo voglio minimamente vicino all’enorme base di codice C che devo mantenere.
Quindi per quanto poi si possa scendere in dettagli molto specifici, la posizione di Hellwig (e non solo la sua) è semplice: un Kernel, un linguaggio. Cioè C.
Come questo si sposerà con le aziende che vorrebbero la sua introduzione oltre che con Torvalds e Kroah-Hartman che sono sicuramente favorevoli è tutto da vedere, la questione è certamente ben lontana dall’essere conclusa.
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.