( Raynes | 2024. 03. 30., szo – 03:43 )

De, használod, bootloaderek így töltődnek be. Lehet te nem fejlesztesz ilyet, de nem árt tisztában lenni a természetével, ha pl. bootolási problémát kell helyreállítanod. Illetve aki ilyet fejleszt, annak is fontos.

Azt meg senki nem állította, hogy a C a legjobb, csak azt, hogy nem kell kidobni feltétlen a szemétre, ahogy azt a rust-osok állítják. Egyébként a C-ben sincs semmi szuperos, meg világmegváltás, lényegében egy architektúrafüggetlen macroassembly, ahol nem kell lemenned opcode-okig, regiszterekig, memóriacímekig, hanem tudsz helyette absztraktabb utasításokat, struktúrákat, mutatókat használni. Ilyen low level, rendszer-, egyszerű CLI programozásra mai napig használható, nem fog elavulni soha. Hiába állítják be úgy. Eleve a Linux kernel, BSD-k kódjának a megléte rá a bizonyíték, hogy mai napig működik, aktívan fejlesztenek benne modern projekteket, és hiába nem memsafe, tudják kezelni, mert ha annyira használhatatlan lenne, mint azt a hype állítja, akkor emiatt mert C-ben van írva, már az összes ilyen rendszert felnyomták volna, közben meg ez nem történet meg. Igen, elvétve vannak ilyen bufferoverflow támadások egy-egy rendszermodulban, de ahogy kiadják rá a CVE-t, általában órákon belül foltozzák.

Persze, lehet Rust-ban is írni, mindenkinek a saját projektjénél kell eldöntenie miben írja, milyen korlátokat vesz figyelembe. Kezdőknél szempont lehet, hogy a Rust újabb, ha még a C-t nem tudják, akkor nem fogja megzavarni az első nyelv tanulását, mindjárt egy modernebben tanulnak meg, azzal sincs baj. Viszont cserében a C hagyományosabb, ezer könyv, millió lib elérhető rá, jól szabványosított, minden architektúrára rengeteg implementációja létezik, a bloatabbaktól a minimalistáig, sok példakódból, tanfolyásból, anyagból lehet meríteni hozzá.

A C egyszerűbb viszont sok esetben. Pl. ha retró platformon akarod fordítani, mondjuk egy Amigán vagy egy muzeális PDP 11-en is lehet C-s kódot fordítani, pl. egyszerű CLI programokat simán. Rust-ban próbálj forgatni valamit ilyen gépen. Vagy pl. apró mikrokontrollereknél, pár MB RAM, épp csak akkora kódokat töltenek fel rá, hogy néhány tüskét vezéreljen vagy 1-2 ledet villogtasson, erre overkill lenne 13 gigás kódbázisú Rust fordítóban percekig cargo-zni a függőségeket, libeket, hogy kapj egy akkora binárist, amit már lehet fel sem tudsz arra a kis szutyokra tölteni. Mert oké, nem safe, de most ilyen felhasználási körökben mit adna hozzá a memsafety? Biztos, mert valaki ezt fogja meghekkelni, hogy egy Amigán tárolt kormánytitkokat beszerezze, meg a mikrokontrolleren vadul villogjon egy nem szándékolt 3. led is, éljünk veszélyesen.

Persze a Rust is fejlődik, már van pl. MS-DOS és m68k portja, csak minek. Ezekre ki fejleszt benne? Maximum mutatványozásra meg szellemi maszturbálásra jók, de nincs életszerűségük.