Ďalšia iterácia Rustu v Linuxe 6.2 znovu rozprúdi debaty o výmene C za Rust

RustLinux

Integrácia Rustu v Linuxe má vysokú úroveň prijatia komunitou a vývojármi

Jeden z veľké problémy, ktoré sa vyskytli pri vývoji jadra Linuxu na dlhú dobu, je myšlienka nájsť dokonalého kandidáta na zmenu programovacieho jazyka „C“ za modernejšieho a až donedávna s príchodom Rustu sa tento nápad neprestal dávať na stôl.

S prvou ukážkou Rust v systéme Linux 6.1, Oživujem duchov zo strany veľkej časti vývojárov z jadra a Jonathan Corbet poukazuje na to, že „v jadre by stále nebolo dosť Rustu na to, aby sme urobili niečo zaujímavé“, zahrnutie tohto jazyka znovu rozprúdilo diskusiu o potrebe zbaviť sa jazyka C v prospech Rustu. systémového programovania. Táto otázka rozdeľuje komunitu vývojárov.

asahi linya sa ujal úlohy vývoja ovládača grafického procesora (GPU) pre Mac M1 v Ruste.

O vašom porovnaní medzi jazykmi Rust a C spomína, že:

„Neexistuje absolútne žiadna šanca, že by ste sa nemuseli zaoberať správou súbežného prístupu, pokusmi o prístup do pamäťových oblastí po vydaní a všetkými druhmi iných problémov, ak by ste to napísali v C. Všetky problémy so súbežnosťou zmiznú s Rustom! V prípade potreby sa pamäť uvoľní! Keď sa naučíte, ako prinútiť Rust pracovať pre vás, myslím si, že vás to povedie k napísaniu slušného kódu, dokonca aj nad rámec bezpečnostných prísľubov jazyka. Je to naozaj čarovné! »

"Veľa sa diskutuje o tom, či je alebo nie je Rust v jadre užitočný... podľa mojich skúseností je oveľa užitočnejší, ako som si kedy predstavoval!" “, dodáva.

Tvoje komentáre sa akosi opakujú z kompilácie technických dôvodov, že pravdepodobne odôvodniť vypustenie jazyka C v prospech Rustu. V skutočnosti 15,9 % z 2288 20 zraniteľností, ktoré zasiahli linuxové jadro za XNUMX rokov (údaje zo slovníka Common Vulnerabilities and Exposure (CVE)), súvisí s chybami v jazyku C, problémami súvisiacimi so správou pamäte: pretečením vyrovnávacej pamäte , neuvoľnené pridelenia, prístup k neplatným alebo uvoľneným pamäťovým oblastiam atď.

Okrem toho hlavní správcovia linuxového jadra poznajú jazyk C, ktorého vek sa už považuje za 3. vek. Nová generácia správcov, ktorých veková skupina je po tridsiatke, je na vzostupe, a preto je pravdepodobné, že ťažkosti pri hľadaní správcov pre jadro Linuxu sa zvýšia, ak bude jeho vývoj pokračovať v jazyku C. Dôvody, prečo Linus Torvalds otvoril dvere jadru vývoj v Rust.

K otázke možnosti zrušenia jazyka C, tvorca jazyka C uvádza množstvo dôvodov, prečo iniciatívy pravdepodobne zlyhajú ktoré idú týmto smerom:

VS Language Toolchain

Jazyk C nie je len jazyk samotný, ale aj všetky vývojové nástroje vyvinuté pre tento jazyk.

Chcete urobiť statickú analýzu vášho zdrojového kódu? – Veľa ľudí na tom pracuje pre C. Nástroje na detekciu únikov pamäte, dátových pretekov a iných chýb? Je ich veľa, aj keď je váš jazyk lepšie vybavený.

Ak chcete zacieliť na málo známu platformu, je pravdepodobné, že používate status C. C ako lingua franca výpočtovej techniky, pre ktorú sa dnes oplatí písať nástroje a mnoho nástrojov je napísaných.

Ak má niekto funkčný reťazec nástrojov:

prečo riskovať zmenu jazyka? „Lepšie C“ by malo generovať veľa ďalšej produktivity, aby motivovalo čas strávený nastavovaním nového reťazca nástrojov. Či je to možné, sa ešte len uvidí.

Neistoty nového jazyka

Predtým, ako jazyk dosiahne zrelosť, je pravdepodobné, že bude chybný. a je výrazne upravený tak, aby riešil sémantické otázky jazyka. A je jazyk vôbec v súlade s reklamou? Môže ponúknuť niečo ako „výnimočné časy kompilácie“ alebo „rýchlejšie ako C“, ale tieto ciele sa ťažko dosiahnu, keď jazyk pridá

A udržiavatelia? Iste, môžete rozvetviť jazyk s otvoreným zdrojovým kódom, ale pochybujem, že veľa spoločností by malo záujem používať jazyk, ktorý by mohli byť nútené ponechať si neskôr. Stávka na nový jazyk je veľké riziko.

Skutočnosť, že jazyk nemusí byť dosť dobrý

Zaoberá sa jazyk skutočnými bolesťami jazyka C?

Ukázalo sa, že Ľudia sa nie vždy zhodujú v tom, aké sú slabiny C. Alokácia pamäte, spracovanie poľa a reťazcov sú často zložité, ale so správnymi knižnicami a dobrou stratégiou pamäte ich možno minimalizovať.

Nerieši jazyk problémy, ktoré pokročilých používateľov v skutočnosti nezaujímajú? Ak áno, jeho skutočná hodnota by mohla byť oveľa nižšia, ako sa očakávalo.

A čo je ešte horšie, čo ak jazyk vynechá kľúčové vlastnosti, ktoré sú prítomné v C? Funkcie, na ktoré sa spoliehajú pokročilí programátori v jazyku C? Toto riziko sa zvyšuje, ak dizajnér jazyka nepoužíval veľa C, ale pochádza z C++, Java atď.

Nedostatok skúsených vývojárov pre nový jazyk

Nový jazyk bude mať prirodzene oveľa menšiu skupinu skúsených vývojárov. Pre každú strednú alebo veľkú spoločnosť je to veľký problém. Čím viac vývojárov má spoločnosť k dispozícii, tým je na tom lepšie.

Okrem toho, ak má spoločnosť skúsenosti s náborom vývojárov v jazyku C, nevedia, ako robiť nábor pre tento nový jazyk.

Nakoniec, ak máte záujem dozvedieť sa viac, obráťte sa na podrobnosti v nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.