Linus Torvalds fontolóra veheti a C++ bevezetését a Linux kernelbe?

linustorvalds

Linus Benedict Torvalds szoftvermérnök, aki a Linux kernel fejlesztésének kezdeményezéséről és karbantartásáról ismert.

pár hetes itt a blogon megosztjuk a hírt egy javaslattal kapcsolatban amely az életképességgel kapcsolatban sok év után újjáéledt a C++ kód elfogadása a Linux kernelben, egy javaslat, amely 2018-ban viccből indult.

La újból indult a javaslat a Kernel levelezőlistákon, de komolyan Hans Peter Anvin, Az Intel egyik kulcsfontosságú kernelfejlesztője és fejlesztője felvetette a C++ harmadik programozási nyelvként való beépítését a Linuxba.

Linux C++
Kapcsolódó cikk:
C++ Linuxon, a téma 6 év után újjáéled

Bevezetésével Rozsda Linuxon, sok fejlesztő és a közösség egy része nagyszerű utat látott előrébb a Linuxban, plusz az is Különféle „ötletek” születtek más programozási nyelvek megvalósítására, a C++ bevezetésére vonatkozó javaslat ismét vitát nyit a kernel fejlesztői között, sőt Linus Torvalds is a lehető legpasszívabb és legérthetőbb módon magyarázza el, hogy a Linux miért nincs felkészülve a C++-ra (szarkazmus).

Emlékeznünk kell arra, hogy a Rustot egyik pillanatról a másikra nem fogadták el a Linuxban, mivel a Rust projektet Linuxon (Rust for Linux) maga Linus Torvalds felülvizsgálta, mielőtt a rendszermag fő ágába elfogadták, és érdemes megemlíteni, hogy a Linux atyja nem volt puha. a felülvizsgálatok elvégzése és a javasolt változtatások észrevételezése során.

A cikk kidolgozása előtt meg kell említenem, hogy a cikk teljes tartalma személyes vélemény, amely az interneten olvasott információk és hírek értelmezése során keletkezik, így ez eltérhet attól az értelmezéstől, amelyet Ön, mint olvasó van, és szívesen szánok időt az elolvasásra, ha meg szeretnéd osztani itt a megjegyzésekben.

Most a C++ harmadik programozási nyelvként történő javaslata esetén, az állítólagos esetben, és azt mondom "természetesen" A megvalósításnak hasonló felülvizsgálatokon kell keresztülmennie, ha nem még szigorúbb, mint Rust esetében volt. És ennek megemlítése azért van, mert a C++ és a Linus története kicsi, de már sok éves.

Az említés oka hogy a C++ esetében harmadik Linux nyelvként mint a „Állítólag” azért, mert a Linux atyja, Linus Torvalds nem nézi és nem is fogja jó szemmel a C++-t., hiszen nem egyszer minden alkalommal megemlítette, hogy a C++ "borzasztó nyelv".

Említésselr néhány pillanat, amikor a C++ használatát fontolgatták Linuxon és Linus Torvalds nemcsak egyet nem értését fejezte ki, hanem egy "bizonyos gyűlölet" a C++ iránt, amivel megemlítik, hogy miért "egyszerűen nem választható a Linux számára", az egyik legfrissebb a felülvizsgálatok során volt a Rust megvalósításról, mivel egy Google-bejegyzés vita közben, a C++ felvétele javaslatként szerepelt:

"A megoldás egyszerű: csak használja a C++-t Rust helyett"

A Melyikhez Linus Torvalds nem tudott nem nevetni, és így válaszolt:

"LOL". «A C++ nem oldja meg a C egyik problémáját, és csak ront a helyzeten, ez valóban egy szemétnyelv.

Azok számára, akik nem szeretik a C-t, válasszanak egy olyan nyelvet, amely valóban kínál valami értékeset. Például a memóriabiztos és „az” nyelvek elkerülhetik a C buktatóit, vagy olyan nyelvek, amelyek belső GC „szemétgyűjtő” támogatással rendelkeznek, és megkönnyítik a memóriakezelést. "A C++ minden rossz problémát megold, és aki azt mondja, hogy "írja át a magot C++-ban", az túl tudatlan ahhoz, hogy ezt tudja is."

Linus Torvalds mindig is „pazarlásnak” tartotta a C++-t, és „haszontalannak” tartotta. Nos, a C++ egyáltalán nem tudja megoldani a C nyelv problémáját, csak ront a helyzeten. Torvalds hisz aki nem szereti a C nyelvet, kereshet egy olyan nyelvet, amely valóban hozzáadott értéket tud adni. Például olyan nyelvek, amelyek memóriabiztosak, és elkerülhetik a C által okozott rejtett veszélyeket (például a Rust).

A C++-hoz képest Linus megemlítette, hogy miért a C a szokásos választása:

„Amikor az emberek a C által okozott veszélyekről beszélnek, arról is beszélnek, hogy a C miért olyan erős: „Lehetővé teszi, hogy hatékonyan megvalósítsa mindezt az alacsony szintű dolgot” – mondta Linus. Továbbá, bár a GC a legtöbb esetben alkalmas a programozás egyszerűsítésére, általában nem lehet alacsony szintű rendszerprogramozásban megtenni.

Sőt, a levelezőlistákon ez szerepel Valamikor 1992-ben kísérletet tettek a C++ használatára Linuxon (nagyjából egy évvel a Linux születése után), de ez Torvalds óta csak "kísérlet" maradt említést erről a próbálkozásról:

Ez borzasztó. Higgye el: C++-ban kernelkódot írni egy KIADVA HÜLYE ÖTLET.

A helyzet az, hogy a C++ fordítók megbízhatatlanok. 1992-ben még rosszabbak voltak, de néhány alapvető tény nem változott:

– az egész kivételkezelési dolog C++-ban alapjaiban tönkrement. "Különösen" a kerneleknél törött.
– minden olyan fordító vagy nyelv, amely szereti a háta mögé rejteni az olyan dolgokat, mint a memóriafoglalások, egyszerűen nem jó választás kernel számára.
– írhat objektum-orientált kódot (hasznos fájlrendszerekhez stb.) C nyelven, „a C++ szemét nélkül”.

Tekintettel ezekre és sok más megjegyzésre, Megérthetjük egy kicsit, hogy Linus Torvalds miért tartja borzalmas nyelvnek a C++-t., amellett, hogy kritizálja a nyelvezetet, amiért a «gyenge minőségű programozók, odáig, hogy sokkal, de sokkal könnyebb komplett és totális szemetet generálni vele.» És ez az Úgy tűnik, hogy a C++ valamikor keserű ízt érzett Torvalds szájában., mivel a kritikáidból úgy tűnik, hogy megpróbálom a C++-t, hát E-mailben megemlítem:

"A C++ nagyon rossz tervezési döntésekhez vezet. Mindig elkezdi használni a "szép" nyelvi könyvtári funkciókat, például az STL-t és a Boost-ot, valamint más teljes és teljes szemetet, amelyek "segíthetnek" a programozásban, de a következőket okozzák:

végtelen mennyiségű fájdalom, amikor nem működnek (és aki azt mondja nekem, hogy az STL és különösen a Boost stabil és hordozható, az annyira tele van hülyeségekkel, hogy nem is vicces)
"nem hatékony absztrakt programozási modellek, ahol két évvel később észreveszed, hogy néhány absztrakció nem volt túl hatékony, de most az összes kódod a körülötte lévő szép objektummodellektől függ, és nem tudod megjavítani az alkalmazás átírása nélkül."

Tehát visszatérve a kiadvány címére, és már egy kicsit megértettem a Linus Torvalds C++ iránti gyűlöletének jéghegyének csúcsát, nem kell sokat nyomozni, mivel Torvalds számára a Linuxnak nincs szüksége más nyelvre, mert a C is elég és ez idő alatt a C az a nyelv, ami megfelel a munkájának, volt és lesz, Linus pedig továbbra is támadni fogja azokat a programozási nyelveket, amelyeket nem szeret, különösen a C++-t.

És ez az az egyik ok a sok közül, amiért a C++-t egyszerűen nem veszik figyelembe Linux esetén, az, hogy megengedi a kivételeket, míg Rust nem szereti a C-t, hiszen a kernel programozásban nem engedhető meg Egy fel nem fogott kivétel letilthatja az operációs rendszert, és még csak gondolni sem szabad a kernel meghibásodására.

Y a "feltételezett"-ben, tekintettel arra, hogy Torvalds a C++-t vette figyelembe a linuxon, ez több lehet, mint előny egy harmadik vagy több programozási nyelv beépítése, problémává válna, hiszen például megvalósításával Rozsda jelenleg néhány probléma kezd napvilágra kerülni, mint amilyeneket egy kiadványunkban már említettünk a Rust jelenlegi állapota Linuxon.

Rust illesztőprogramok Linuxon
Kapcsolódó cikk:
Rozsda Linuxon: fejlesztések, kihívások és jelenlegi állapot

Az aktuális kihívások között említjük meg a cikkben, hogy az egyik «toborozzon több ellenőrt a kódhoz amely fejlesztés alatt áll" mellett A GCC-alapú Rust fordító fejlődése lelassult, isNagyon kicsi az esélye annak, hogy a rendszermag nagy részét átírják a Rustban rövid távú, sőt nagyon kicsi az esélye annak, hogy mindenféle hiba és különösen kompatibilitási probléma nélkül meg tudják csinálni.

Ha ezek a problémák, amelyek a Rustban tükröződnek hozzáadjuk őket C++-ban vagy bármely más nyelven Linuxban hozzáadható, A kernel fejlődését nagymértékben befolyásolná és ezzel eleinte nem kéthavonta kapnánk meg egy verziót, hanem inkább a hosszabb verziók közötti fejlesztésről lenne szó, több fejlesztőre, több lektorra lenne szükség, és mindez nagyobb erőfeszítést jelent.

Kétségtelen, hogy a C++ harmadik programozási nyelvként való bevezetésének megközelítése még korántsem mérlegelhető, és ahogy már említettük, ennek egyik fő akadálya maga Linus Torvalds.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.