A vůbec nejlepší by bylo si pořádně procvičit to C. Pak se obejde bez Rustu i bez Go, které mi připadají jako pomocná kolečka přimontovaná na motorku.
Však si každý může vybrat, zda chce motorku, tříkolku nebo auto. Každé má svá pro i proti. Když se budu potřebovat rychle někam dostat něčím malým, tak zvolím motorku. Když na dovolenou s rodinou, tak asi auto. Ale hanět motorku kvůli tomu, že by si na ní průměrný plechovkář rozmlátil hubu, je nesmyslné. To není nedostatek motorky.
Ehm, říkat o Rustu, že je motorka s pomocnýma kolečkama, to je úplné nepochopení toto, co Rust nabízí. Rust je oproti C navíc memory safe a data race safe, což je kontrolované už během kompilace. V Rustu nejde program, který není paměťově bezpečný nebo je v něm data race, vůbec zkompilovat. To všechno při rychlosti srovnatelné s C. Obojí je velký nedostatek C, stále se vyskytují nové a nové kritické bezpečností chyby v profesionálním software psaným profesionály, protože někdo zapomněl, jak má velké pole nebo kam mu zrovna ukazuje pointer. Lidé prostě dělají chyby. Překladač Rustu chybu neudělá, odmítne to přeložit.
To je ale přesně co říkám. Na motorce se oproti autu taky snadno vysekáš, stačí štěrk v zatáčce nebo prudce puštěná spojka a už letíš. To se ti v autu (nebo pokud máš pomocná kolečka) nestane. Ne že by se nešlo v autě vybourat. Jde to, ale je třeba vyvinout trochu víc úsilí než jen zprudka pustit spojku. To ale není důvod snažit se zavrhnout motorku nebo ji znásilňovat pomocnými kolečky. Tak jako se mi už dávno nestává, že bych měl na motorce ty výše zmíněné problémy, tak ani v C se mi nestane, co se stává vám s pamětí. Už po těch letech máte vyvinutý určitý podvědomý cvik, jak s takovými objekty zacházet, člověk už ví, že dělá něco potenciálně nebezpečného a podle toho k tomu přistupuje. Ale to je otázka cviku, letité praxe. To se prostě musí zažít. Stejně jako na té motorce. Pokud vám to nejde, není to chyba motorky ani C. Prostě nemáte praxi nebo vám k tomu chybějí vlohy. Můžete furt dobře řídit to auto, ale jsou prostě chvíle, kdy ta motorka je efektivnější a když ji nezvládáte, musíte vzít za vděk méně efektivním řešením.
Problem je, ze hromada lidi poiziva motorku na miste, kde je potreba pasovy buldozer.
Navic i pokud za cenu hrozneho usili si pohlidam, aby muj C kod byl flawless, dosahnu leda toho, ze chyby dodal autor prilinkovane knihovny, treba OpenSSL.
Nahore jsem navrhoval GO. GO bude mit occa 30% slabsi singlecore vykon nez hole C. Pomoci goroutines a channeled buffers to s prstem v nose rozprostres na 8 cores - pojede jak z praku.
Veskery business kod mnohem bezpecnejsi a prehlednejsi, stringy, arrays, jsou bezpecne, HashMap v C vubec neni.
GO muze bez problemu embeddovat C kod, neni nejmensi problem udelat si ten jeden horky time critical forloop v C, veskery okolostojicny business kod v bezpecnem a pohodlnem GO.
Navic GO ma obrovskou vyhodu v ekosystemu. Pristupuje ke GITHubu ve stylu mavenu pro chude.
Potrebuju v GO programu nejaky message bus.
V commadlajne napisu: "go get github.com/nats-io/gnatsd" - a mam luxusni NATS message bus k obecnemu pouziti, samo se to stahne a nainstalu je do GO environmentu.
Navic GO ma luxusni standard library, je v ni treba i HTTP server na microservices.