
La discussione sulla mail-list del kernel Linux riguardo all’utilizzo del linguaggio di programmazione Rust all’interno del kernel Linux continua a generare dibattiti. Linus Torvalds ha evitato in gran parte di partecipare alle discussioni in corso sulla LKML (Linux Kernel Mailing List) riguardo alla politica per il codice Rust nel kernel Linux, nonché ai conflitti tra sviluppatori e maintainer con opinioni diverse su Rust. Tuttavia, Linus Torvalds ha deciso di intervenire nella conversazione.
Recentemente c’era stato un commento secondo cui Linus Torvalds avrebbe integrato il codice Rust nel kernel Linux nonostante le obiezioni dei maintainer. Rispondendo a Christoph Hellwig, che con il suo ruolo di maintainer DMA si è opposto al codice Rust nelle aree DMA del kernel Linux, Linus Torvalds ha chiarito la sua posizione spiegando che i maintainer possono scegliere tra 2 approcci: assumere un ruolo attivo nello sviluppo delle interfacce Rust per le aree del kernel Linux da loro gestite, oppure adottare un approccio hands-off, ovvero lasciare che il nuovo codice coesista senza interferenze con quello esistente. Questo significa che se scelgono di non occuparsi direttamente del codice Rust, esso potrà comunque essere utilizzato in modo complementare alle loro porzioni di codice mantenute in C. Tuttavia, i maintener non possono opporsi arbitrariamente al nuovo codice come semplici “utenti” delle loro porzioni scritte in C.
Scrive Linus Torvalds in risposta a Christoph Hellwig:
The fact is, the pull request you objected to DID NOT TOUCH THE DMA LAYER AT ALL.
It was literally just another user of it, in a completely separate subdirectory, that didn’t change the code you maintain in _any_ way, shape, or form.Il fatto è che la richiesta di integrazione (pull request) a cui ti sei opposto non toccava affatto lo strato DMA. Era letteralmente solo un altro utente dello stesso strato in una sottocartella completamente separata e non modificava assolutamente nulla nel codice da te mantenuto.
Linus Torvalds trova preoccupante che Christoph Hellwig si lamenti dell’uso nuovo delle sue porzioni di codice e continui a presentare argomentazioni inconsistenti. Secondo Linus Torvalds, questo atteggiamento è problematico perché Christoph Hellwig sembra voler controllare non solo il codice da lui mantenuto ma anche come viene utilizzato da altri sviluppatori. Questa posizione è vista come inappropriata poiché i maintainer del kernel Linux hanno l’autorità sulle loro specifiche aree di codice, ma non possono arbitrariamente impedire che altre parti del kernel Linux utilizzino le interfacce C che essi gestiscono, e continua aggiungendo:
Honestly, what you have been doing is basically saying “as a DMA maintainer I control what the DMA code is used for”.
And that is not how *any* of this works.Onestamente quello che stai facendo è dire ‘come maintainers DMA controlliamo cosa viene utilizzato dal nostro codice’. E questo non funziona così.
In pratica, secondo Linus Torvalds, sebbene sia legittimo disapprovare l’utilizzo della lingua Rust o rifiutarsi di lavorarci sopra (nessuno infatti è costretto a scrivere o leggere quel tipo di codice), ciò non significa poter impedire agli altri sviluppatori l’accesso alle interfacce mantenute da Christoph Hellwig tramite il nuovo linguaggio Rust.
Quindi conclude:
So let me be very clear: if you as a maintainer feel that you control who or what can use your code, YOU ARE WRONG.
Quindi lasciatemi essere molto chiaro: se come maintainer pensi di controllare chi o cosa può usare il vostro codice, TI SBAGLI.
Nel contesto dello sviluppo del kernel Linux, Linus Torvalds valorizza la competenza tecnica dei suoi collaboratori e riconosce l’importanza della critica reciproca all’interno della comunità degli sviluppatori. Questo approccio promuove un ambiente di lavoro dinamico, dove le opinioni diverse sono benvenute e contribuiscono al miglioramento continuo del progetto.
In particolare, quando si tratta di questioni come l’integrazione di nuove tecnologie nel kernel Linux, come ad esempio il linguaggio Rust, emerge una discussione più ampia sui limiti dell’autorità dei maintainer. In questo scenario, Linus Torvalds ha voluto sottolineare che i responsabili delle varie aree del codice hanno il controllo sulle loro porzioni specifiche ma non possono decidere arbitrariamente chi o cosa possa utilizzarle una volta integrate nel kernel Linux. Questa filosofia riflette lo spirito collaborativo e inclusivo che caratterizza lo sviluppo open source del kernel Linux
Questa email quindi verte su una questione più ampia rispetto alla politica sulle interfacce per la lingua Rust: riguarda essenzialmente i limiti dell’autorità dei maintainers sul proprio lavoro.
In sintesi:
- I maintainers hanno controllo sul proprio codice, ma questo controllo termina quando si tratta dell’utilizzo finale.
- Non sono obbligati ad apprezzare o occuparsi della lingua Rust, ma neanche possono bloccarla arbitrariamente.
- Se decidono di ignorarlo completamente (hands-off approach), automaticamente rinunciano ad avere voce in capitolo su eventuali modifiche relative al suo utilizzo.
I maintainers interessati possono partecipare attivamente allo sviluppo delle interfacce per la lingua Rust, diventandone così anche responsabili; quelli invece che preferiscono concentrarsi solo sulle parti scritte in C saranno protetti dall’onere aggiuntivo derivante dalle problematiche relative alla gestione delle nuove tecnologie integrate tramite altre linguaggi programmativi come appunto quello menzionato qui sopra.
Linus Torvalds docet
Fonte: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers
Source: Read More