In a cumunità di sviluppu di u kernel Linux Ci hè statu qualchì disaccordu annantu à l'integrazione di u linguaghju di prugrammazione Rust. Christoph Hellwig, mantenitore di i sottosistemi di architettura DMA, KVM, Slab Allocator è PowerPC in u kernel Linux, chì à un certu puntu era membru di u cumitatu di gestione tecnica di l'urganizazione Linux A Fundazione, un querellante in a causa ligata à a GPL contr'à VMware, hà rifiutatu di appruvà i patch ligati à u supportu per u sviluppu di driver Rust.
I patchs pruposti chì aghjunghjenu wrappers per e funzioni di u sottosistema DMA anu suscitatu preoccupazioni per l'aumentu di u mantenimentu di u codice è potenzialmente riduce a qualità di u software. Certi sviluppatori preferanu mantene e so API in C per evità una cumplessità supplementaria.
I ragiuni citati per u rifiutu eranu l'aumentu cumplessità di u mantenimentu di u codice in presenza di ligami in altre lingue è u desideriu di priservà l'interfaccia di u software à DMA in una forma leggibile in a lingua C, senza esse sparghje in associazioni incomprensibili. Christophe hà prupostu d'accede direttamente à l'API nativa C DMA in ogni driver Rust, per ùn creà astrazioni supplementari chì i mantene di u kernel anu da dipende.
Malgradu l'intenzione espressa da i sviluppatori di u prughjettu Rust per Linux per mantene in modu completamente indipendente a basa di codice scritta in Rust, l'accettazione di patches hè stata vetata.
Christoph hà nutatu chì se i sviluppatori volenu rende lu insostenibile Linux A causa di a mistura di diversi linguaggi di prugrammazione in una basa di codice, devenu fà questu in u so driver, invece di sparghje stu "tumore cancerosu" nantu à u kernel principale.
U core di u prublema di mantenimentu hè chì i ligami di Rust facenu mantene i mantene dipendenu da u codice Rust. À u primu sguardu, pare chì i ligami sò solu add-ons nantu à strutture C è funzioni chì ùn anu micca in alcun modu affettanu u sviluppu è u mantenimentu di u codice C. Ma questu ùn hè micca cusì. In a prisenza di tali ligami, i sviluppatori di sottosistemi scritti in C anu da piglià in contu l'impattu di i so cambiamenti nantu à a funziunalità cuntinuata di i ligami. Ogni cambiamentu di strutture di dati o funzioni internu in C pò esse bisognu di cambiamenti à u codice di ubligatoriu, cusì i cambiamenti à u codice C chì affettanu u ligame deve esse tracciatu è sincronizatu cù u codice Rust. Parechje mantenitori ùn sò micca disposti à piglià a rispunsabilità supplementu di risolve i prublemi chì si sviluppanu in u codice Rust, è ùn sò micca disposti à passà u so tempu à monitorà u statu di u ligame Rust.
Source: linux.org.ru
