( szemet | 2018. 03. 01., cs – 14:44 )

Használtam Rustot az elmúlt fél évben production környezetben. Olyan célra használtam ahol C (esetleg C++) lett volna az alapértelmezett választás (ergo a Rust is;): sok Linux syscall level b*szakodást csináló CLI

A legnagyobb problémák amikbe belefutottam mindig az elérhető packagek kiforratlanságai miatt voltak, de ez pont az, ami rohamosan tud fejlődni ha a közösség jó.

Úgy haladtam a projekttel mint a villám, elsősorban talán a package kezelés miatt: a core logika kb. ugyanakkora erőfeszítéssel megírható lett volna C-ben, de az, hogy az egészet professzionális alkalmazássá tegyem ott a Rust sokat gyorsított: logging, regexp, komplex CLI, extra input fájlformátumok supportja (JSON, tar)), stb... Mindegyikre volt valami már valami használható package amit 2 sor volt a buildhez adni, ráadásul a legtöbb lib a C-hez képest minimális boilerplate-tel működött. Szóval maga végső programom forrása majdnem olyan szép, tömör és high-level mint egy azonos funkciójú python vagy ruby script lenne, ami engem nagy elégedettséggel tölt el (ízlések eltérhetnek, valaki szereti a boilerplate-t (go!;), szerintem mondjuk attól hogy valami explicit (amit én is szeretek), még lehet lényegre törő (APL!;)).

Amúgy a nyelvi garanciák, meg az egységes resource management pl. részben pont a 3rd partyk integrálásánál voltak nagyon megnyugtatóak. Hiába húz be a package management a végén 20-30 packaget nem kell "segmentation fault"-tól rettegnem, ha meg mégis megtörténne (velem nem történt meg) elég csak az unsafe-re greppelni...

Amúgy pusztán kíváncsiságból elkezdtem pár Rustban írt Linux CLI appot is használni ha már a build környezetem ott volt, azokkal is elégedett vagyok. (ripgrep,exa,fd) Szóval ha az "amilyen a fa olyan a gyümölcse" mondást nézzük, ott sem áll rosszul egyelőre...