Zeptejte se dvou zkušených vývojářů v Rustu, jestli se jim vyplatilo Rust učit, a můžete dostat úplně opačné odpovědi. Jeden vám řekne, že jeho kariéře nic nedal; druhý to může označit za jedno z nejlepších technických rozhodnutí, jaká kdy udělal. Oba můžou mít pravdu.
Právě v tomhle rozporu otázka „vyplatí se učit Rust“ doopravdy leží, a proto vám paušální ano k ničemu není. Rust je kompilovaný jazyk, jehož bezpečná podmnožina vynucuje pravidla bezpečnosti paměti při kompilaci, aniž by za běhu potřeboval garbage collector.
Takže se zavážu k odpovědi, pojmenuju podmínku, na které visí, a ukážu vám, kolik ta podmínka stojí.
Zkrácená verze
Rust se vyplatí učit, pokud stavíte něco dlouhodobého, kde se vyplatí platit za to, že kompilátor zachytí celou třídu chyb. Špatná volba je, pokud potřebujete tento měsíc vydat CRUD aplikaci, učíte se programovat nebo počítáte pracovní inzeráty. 4 z 5, s odečtem za to, co stojí, než se začne vyplácet.
- Co kupujete: v bezpečném Rustu mění pravidla vlastnictví a výpůjček chyby typu use-after-free, double-free, neplatné reference a data race v chyby při kompilaci místo incidentů v produkci. To je celé to lákadlo a je dobré.
- Co platíte: kompilátor vás nutí zapsat rozhodnutí o paměti, která váš současný jazyk dělá potichu, a zpočátku to působí, jako by nástroj jen zlobil.
- Otázka trvanlivosti je vyřešená. Správci jádra uzavřeli experiment s Rustem na Maintainers Summit v prosinci 2025 a štítek „experimentální“ zmizel v Linuxu 7.0.
- Otázka módy vyřešená není a je to jiná otázka. Rust je na #10 v zářijovém indexu TIOBE za rok 2026, o rok dříve byl na #18.
- Moje testovací služba v Rustu potřebovala ke kompilaci mnohem víc paměti než k běhu: při sestavování byla na vrcholu kolem 1 GB a za běhu v nečinnosti zhruba 3,5 MB.
- Pro vás, pokud už vydáváte software v jiném jazyce a stavíte něco, kde by chyba v paměti byla drahá, nebo pracujete blízko systémového softwaru. Ne pro vás, pokud vás tlačí termín, začínáte od nuly nebo hledáte jazyk s nejvíce volnými místy.
Jak tato recenze vznikla: čísla o sestavení a běhu jsou tady moje. Nainstaloval jsem Rust 1.98.1, napsal malou webovou službu v Axum a změřil, co stála kompilace a co stál běh. Běželo to v izolovaném kontejneru, ne na dedikovaném hardwaru, a je to jeden projekt, takže berte čísla jako datový bod, ne jako zákon. Všechno ostatní pochází z primárních nebo autoritativních zdrojů: patch jádra a zpravodajství LWN o něm, bezpečnostní příspěvky Googlu k Androidu, vlastní index TIOBE (s dubnovým komentářem podle záznamu na Slashdot), Phoronix o slučovacím okně Linuxu 7.0, záznamy CVE linuxového jádra ke zranitelnosti v Binder, prohlášení samotné společnosti Canonical a průzkum Stack Overflow 2025. Patch jádra jsem četl. Kód v Rustu v jádře jsem neauditoval. A Rust nepíšu roky, takže tam, kde tato recenze hodnotí samotný jazyk, vychází z praktiků, kteří ano, a jmenuje je.
Co vám kompilátor dá
Dejte v Rustu dvěma vláknům měnitelnou referenci na stejný vektor a kód se nezkompiluje. Žádné varování. Žádný lint, který můžete potlačit, když hoří termín. Prostě se to nesestaví. To odmítnutí je to, co si v bezpečném Rustu kupujete: chyby use-after-free, double-free, neplatné reference a data race se mění v chyby při kompilaci místo incidentů v produkci. Úniková cesta Rustu (unsafe) může některé z těchto záruk obejít, takže to není absolutní slib o každé kódové základně v Rustu.
Vlastnictví znamená, že každá hodnota má právě jednoho vlastníka, který odpovídá za její uvolnění. Výpůjčky znamenají, že můžete půjčovat reference, ale kompilátor sleduje jejich životnost a nedovolí, aby některá přežila to, na co ukazuje, ani aby měnitelná výpůjčka existovala současně s jakoukoli jinou. V bezpečném Rustu zachytí chyby use-after-free, double-free, neplatné reference a data race systém vlastnictví a typů ještě před spuštěním programu.
Žádný garbage collector tu není, a to je druhá polovina dohody. Protože vlastnictví už určuje, kdo co a kdy uvolní, nic nemusí za běhu procházet vaši haldu. Dodáváte binárku bez collectoru uvnitř a nemusíte ladit kolem pauz.
Cena se objevuje na stejném místě jako záruka. Každé rozhodnutí o paměti, které váš současný jazyk potichu udělá za vás, po vás Rust chce zapsat: kdo tohle vlastní, jak dlouho žije tamta reference, jestli ji vidí ještě něco jiného a jestli překračuje hranici vlákna. Kompilátor nezlobí. Odmítá hádat.
Takže: tohle je důvod, proč kdokoli platí, co Rust žádá, a myslím, že obstojí. Pokud třída chyb, kterou odstraňuje, není třída, které se bojíte, zbytek této recenze váš názor nejspíš nezmění.
Je Rust pořád experimentální, nebo už je produkční infrastrukturou?
Experimentální být přestal v prosinci 2025 a ukončili to sami správci jádra. Na Maintainers Summit 2025 dospěli k závěru, že Rust si v jádře obhájil své místo, technicky i společensky. Jonathan Corbet z LWN o konsenzu informoval 10. prosince 2025: Rust v jádře už není experimentální.
Rust vstoupil do hlavní řady Linuxu ve verzi v6.1 v roce 2022 právě proto, aby ten experiment proběhl. Patch, kterým Miguel Ojeda štítek odstranil, přišel tři dny po Summitu a dostal se do slučovacího okna Linuxu 7.0.
„Ale experiment je u konce, tj. Rust tu zůstane.“
Miguel Ojeda, „rust: conclude the Rust experiment“, LKML, 13. prosince 2025
Samostatně a dříve: přepis ovladače Binder pro Android do Rustu od Googlu, tedy vrstvy IPC, přes kterou (neustále) komunikují procesy Androidu, se dostal do Linuxu 6.18, který vyšel 30. listopadu 2025. Držte tenhle milník odděleně od konsenzu na Summitu. Je to ten, kde firma vsadila dodávaný produkt na Rust v jádře, ne skupina správců, která žehná myšlence. Rust v jádře mezitím vyprodukoval své první CVE: CVE-2025-68260, souběh (race condition) v tomtéž ovladači Binder, který Greg Kroah-Hartman oznámil 16. prosince 2025, zavedený v 6.18 a opravený v 6.18.1. První zprávy se soustředily na pády, ale pozdější hodnocení týmu CVE linuxového jádra dává CVE-2025-68260 skóre 7,8 (vysoké) a popisuje cestu k lokální eskalaci oprávnění přes poškození paměti jádra. Stejný ovladač (rust_binder) od té doby nasbíral i další CVE.
Android je místo, kde důkazy dostávají čísla. Bezpečnostní blog Googlu v prosinci 2022 uvedl, že nebyla objevena žádná zranitelnost v bezpečnosti paměti v kódu Androidu psaném v Rustu, při zhruba 1,5 milionu řádků Rustu v AOSP a asi 21 % veškerého nového nativního kódu v Androidu 13. Je to tvrzení z roku 2022 s rozsahem roku 2022. Pozdější příspěvky Googlu ukazují dlouhodobější trend: problémy s bezpečností paměti tvořily 76 % zranitelností Androidu v roce 2019 a 24 % v roce 2024, přičemž jejich absolutní počet klesl z více než 220 na předpokládaných 36. Ta čísla dávají smysl jen proti výchozímu stavu, který nahradila, a tím jsou C a C++ psané velmi dobrými inženýry s velmi dobrými nástroji.
Stejným směrem ukazují dva menší signály. Ovladač GPU Apple AGX v Asahi Linux je napsaný v Rustu, a to projektem Asahi Linux v rámci reverzního inženýrství, nikoli společností Apple. Canonical ve své aktualizaci rust-coreutils uvádí, že Ubuntu 26.04 LTS dodává rust-coreutils 0.8.0 pro většinu utilit, zatímco cp, mv a rm zůstávají u GNU coreutils, protože k 22. dubnu 2026 bylo stále otevřeno osm problémů typu TOCTOU; Canonical pro zbývající utility míří na 26.10.
Tuhle osu bych hodnotil nejvýš a důvodem je druh závazku, o který jde. Správci jádra experimenty neodvolávají, Google nevrací přepis takové velikosti a Canonical nedává přepsané coreutils do LTS jen proto, aby viděl, jak to dopadne. Ať se s popularitou Rustu stane cokoli, někdo musí ten kód roky udržovat.
Je Rust mrtvý, nebo se jen stabilizuje?
Ne. Rust v lednu 2026 vyrovnal svou nejlepší pozici v TIOBE vůbec, #13. O tři měsíce později spadl zpět na #16 a generální ředitel TIOBE Paul Jansen v dubnu 2026 napsal v komentáři, který tehdy citoval Slashdot, že růst popularity Rustu „se zdá stabilizovat“ a že místo v top 10 „nyní vypadá vzdálenější než dřív“.
Popisoval, jak Rust dosáhl své nejvyšší pozice vůbec v jeho vlastním indexu, místa, které poprvé držel v červenci 2024, a pak ho zase ztratil.
Index TIOBE za září 2026 řadí Rust na #10, o rok dříve byl na #18, a to je výš než #13, kterou TIOBE v lednu označil za jeho nejvyšší pozici vůbec.
Můj pohled: plató bylo skutečné. Byla to vzduchová kapsa, ne strop. To je lepší než verze obou táborů, protože „Rust se zasekl“ je teď špatně a „Rust jde jen nahoru“ nikdy nebyla pravda.
Ta výhrada platí oběma směry a Slashdot na ni ve svém článku tehdy upozornil: nemohou žebříčky jen kolísat kvůli měsíčnímu šumu ve výsledcích vyhledávačů, což je přesně to, co index počítá? Pokud byl pokles o tři místa za čtvrtletí slabým důkazem, že Rust zpomaluje, je vzestup o šest míst stejně slabým důkazem, že vítězí. Berte to jako počasí, ne jako klima.
Silnějším signálem o náladách je průzkum Stack Overflow, kde je Rust opět nejobdivovanějším programovacím jazykem roku 2025 se 72 %: lidé, kteří ho za poslední rok používali a chtějí ho používat dál. To je záměr pokračovat, ne míra adopce, a pokud se rozhodujete, jestli vás bude bavit u jazyka zůstat, je to tady užitečnější signál než holá popularita.
Momentum je nejednoznačné a dávám mu menší váhu než trvanlivosti výše, protože neinvestujete do žebříčku.
Co vás učení Rustu bude stát
Náklady přijdou brzy a všechny najednou. Kód, který by Python, Java nebo C# ochotně spustily, je opakovaně odmítán z důvodů, které působí libovolně, dokud vám model vlastnictví nesepne, a odložit se to nedá. Kolem borrow checkeru se nedá prodrat prostým vydáváním kódu tak, jako se dá vydávat kód, aniž byste plně chápali svůj ORM.
Tady je část, která mě překvapila, a funguje obráceně, než byste čekali. Ve vlákně r/rust „Struggling to learn Rust“ odpověď s největším ohlasem přerámovává problém jako nezvyk, ne obtížnost, a vlákno ukazuje na zkušené vývojáře přicházející z jazyků s garbage collectorem jako na ty, kdo to mají těžší. u/Voxelman to říká přímo: „Rust není těžký. Je jiný.“ Ve stejném vlákně popisuje svou vlastní cestu: C64 Basic, pak řada imperativních jazyků a první setkání s Rustem, které „bylo všechno, jen ne WOW“, protože zbavit se starých návyků chvíli trvalo.
Takhle vypadá účet. Pokud osm let píšete v Pythonu, neučíte se sadu pravidel, vzdáváte se sady předpokladů o tom, kdo po vás uklízí. Kdo ví méně, má se méně co odnaučovat.
V tom vlákně se opakovaně objevuje ještě jeden vzorec a z chyby v pořadí dělá problém se sebedůvěrou: lidé se nezaseknou na Rustu, ale na výběru webového frameworku, když se snaží naučit jazyk přes Axum nebo Actix dřív, než jim dojde vlastnictví. Jak to vystihl u/jmartin2683, je to „jako snažit se naučit ruby tím, že se učíš rails.“
Většinu varování před náklady čtu tak, že míří na špatnou věc. Počítejte s dlouhodobým cvičením, ne s víkendem, a nečtěte ranou frustraci jako verdikt nad svými schopnostmi.
Rust potřebuje na sestavení větší stroj než na běh
Tady je zjištění, které jsem nečekal: sestavení tohoto projektu v Rustu zabralo o řády víc paměti než jeho běh. Sestavil jsem malou službu v Axum (Tokio se sadou funkcí full plus serde, serde_json, tower, jedna JSON routa, asi 60 crates ve stromu závislostí) na rustc a cargo 1.98.1, s strip = true v release profilu, a pak ji dvakrát sestavil načisto:
# constrained: one compile job at a time
cargo build --release --jobs 1
# unconstrained: default parallelism, 4 vCPUs available
cargo build --release
S omezením na jednu kompilační úlohu (--jobs 1) se špičková paměť napříč cargo, rustc a linkerem pohybovala mezi 464 MB a 527 MB podle toho, kterou z mých dvou metod měření vezmete (měřil jsem dvěma způsoby, protože první číslo vypadalo až moc čistě), a trvalo to 113 sekund. S výchozím paralelismem na čtyřech vCPU se špičková paměť zhruba zdvojnásobila na asi 1 GB a sestavení skončilo asi za 35 sekund. Proměnnou je tu paralelismus, ne projekt. Víc úloh znamená víc procesů rustc v paměti najednou, a proto jsou kompilátory jednou z mála zátěží, které si s radostí vezmou každé jádro, které jim dáte, a to na celé minuty.
Hotový program má po strip 1,3 MB a v nečinnosti používá zhruba 3,3 až 3,6 MB paměti.
Při výchozím paralelismu je to na kompilaci dvě- až třísetkrát víc paměti než na běh; s omezením na jednu úlohu pořád hodně přes stonásobek. Nadimenzujte server podle toho, co vaše služba v Rustu potřebuje v produkci, a můžete skončit se strojem, který ji nedokáže sestavit, a selhání přitom není čistá chyba: je to OOM killer, který zabije rustc uprostřed sestavení, nebo kompilátor, který dvacet minut mlátí swap. Fungují dvě řešení. Sestavujte někde s rezervou a dodávejte binárku, stejný vzorec jako samostatný stroj na sestavování pro náročnou práci s Dockerem. Nebo sestavujte přímo na stroji a dejte mu prostor: pro službu tohoto typu jsou pohodlné dva gigabajty RAM a dvě vCPU. Když to nestačí, únikovou cestou je --jobs 1 (ano, je to pomalejší; to je ta daň).
Pokud stroj, na kterém pracujete, takovou rezervu nemá, náš samostatně spravovaný Linux VPS vám dává root přístup s hodinovou nebo měsíční fakturací a místo, kam dát sestavení a které vrátíte, až skončíte, i když je to pořád server, který provozujete vy, a ne server, který se provozuje sám.
Jeden projekt, jeden typ, jeden stroj. Strojem byl sdílený izolovaný kontejner, ne dedikovaný server, se zhruba 2 GB dostupné paměti, takže neomezená špička se pohybovala blíž ke svému stropu, než by tomu bylo na větším stroji. Nejde o univerzální konstantu: pokud je váš strom závislostí čtyřikrát větší nebo váš release profil zapíná optimalizaci při linkování, čekejte jiná čísla. Větší stromy závislostí, optimalizace při linkování a kód plný generik můžou paměť při sestavení vytlačit výš, takže má měření neberte jako univerzální strop.
Zařadil bych to pod to, jak pracujete, ne pod to, jestli se jazyk naučíte. Vězte o tom dřív, než na to narazíte.
Kdo by se měl učit Rust
Tři situace, kdy bych vám řekl, ať ten čas investujete: dlouhodobý software, kde je chyba v paměti drahá, práce blízko operačního systému a touha po tom, co s vaším uvažováním o paměti udělá boj s kompilátorem. Každá má důvod, proč se ten čas vrátí.
Už vydáváte software v jiném jazyce a stavíte něco dlouhodobého, kde by chyba v paměti byla drahá. Služba, která musí běžet. Knihovna, na které závisí jiné týmy. Cokoli, kde use-after-free znamená revizi incidentu, ne stack trace v terminálu. Pro tenhle případ byla celá záruka postavená a to, co zaplatíte předem, se rozloží přes celou životnost toho, co stavíte.
Pracujete blízko systémového softwaru nebo přímo v něm. Ovladače, práce se zařízeními, utility základního systému, embedded, cokoli, co sedí pod operačním systémem místo nad ním. Průmysl se tu zavázal způsobem, jakým jinde ne, a důkazy o bezpečnosti paměti jsou tu nejsilnější.
Chcete ten vedlejší efekt. Dva komentující v tom vlákně r/rust se v kariérní hodnotě Rustu zásadně neshodnou, a přesto tady skončí na stejném místě. u/tyler_church, který říká, že na jeho kariéru to nemělo žádný vliv, přesto připouští „možná jemné vlivy na to, jak píšu jiné programy v jiných jazycích.“ u/SirKastic23, který je už dva roky placený za psaní v Rustu, říká, že mu to rozšířilo programátorské dovednosti způsobem, jaký nikdy nečekal. Dva lidé, ne studie, ale je to přínos, který přetrvá, i když Rust nikdy nebudete psát profesionálně: změna v tom, jak přemýšlíte, ne řádek v životopise.
Kdo by se Rust učit neměl
Tři situace, kdy je lepší ten čas věnovat něčemu jinému: tento měsíc máte termín, teprve se vůbec učíte programovat, nebo vybíráte jazyk podle toho, v kolika pracovních inzerátech se objevuje. Na tu třetí se lidé ptají nejčastěji.
Tento měsíc máte termín na CRUD aplikaci nebo prototyp. Rust přichází přesně ve špatném harmonogramu pro práci, která musí existovat do pátku. Pokud chcete kompilovaný jazyk s rychlým sestavením a správou paměti přes garbage collector a nepotřebujete záruky Rustu založené na vlastnictví, zjevnou volbou je místo něj Go.
Teprve se vůbec učíte programovat. Tahle otázka opravdu rozděluje lidi, kteří Rust píšou profesionálně, a neshoda ve vláknech r/rust vede oběma směry, takže můj postoj je, že dát začátečníkovi hod mincí je špatná rada bez ohledu na to, jak mince padne. Nejdřív se naučte, jak stroj funguje, někde shovívavějším, a pak se vraťte a nechte kompilátor to utáhnout.
Vybíráte jazyk podle toho, v kolika pracovních inzerátech se objevuje. Číslo vám tady nedám, protože jsem pro Rust nenašel údaj o platech ani volných místech, který by vedl ke zdroji, za nímž bych si stál. To, co popisuje u/crusoe v tom vlákně r/rust, je trh s menším počtem specializovanějších pozic. Je to jeden komentující v jednom vlákně, ne data o trhu práce, takže bych z toho nedělal tvrzení, že pracovních míst v Rustu je obecně málo. Pokud je objem nabídek vaším rozhodujícím faktorem, podívejte se na aktuální inzeráty na svém cílovém trhu, než si jazyk vyberete.
Časté dotazy
Je Rust zdarma?
Ano. Jazyk a jeho oficiální projekty jsou obecně duálně licencované pod licencí MIT a Apache License 2.0 a toolchain se instaluje zdarma přes rustup. Neexistuje žádná placená úroveň ani komerční licence ke koupi.
Jak dlouho trvá naučit se Rust?
Pokud už programujete, syntaxe je obvykle ta snadná část. Vlastnictví a výpůjčky trvají déle, protože mění to, jak přemýšlíte o paměti, a životnosti a asynchronní Rust později přidají další vrstvu. Obhajitelnou univerzální časovou osu jsem nenašel, takže bych na to číslo nedával.
Je Rust dobrý první programovací jazyk?
Moje odpověď je ne, ale měli byste vědět, že mezi zkušenými praktiky je ta otázka sporná. Ve vlákně r/rust „Struggling to learn Rust“ u/cassepipe bez okolků říká, že Rust „není dobrý první jazyk“, poté co se od něj odrazil a vrátil se přes C a C++, zatímco u/Voxelman tvrdí opak: imperativní jazyky jsou špatné místo pro začátek, protože učí návyky, kterých se pak musíte zbavit. Stejná neshoda se táhne přes čtyři stránky na vlastním uživatelském fóru Rustu. Žádná ustálená odpověď komunity, kterou by šlo uvést, neexistuje.
Nahrazuje Rust C++?
Ne. Rust se přidává vedle C a C++ a volí se pro konkrétní nové komponenty, což je něco jiného. V linuxovém jádře se Rust přidává vedle stávající kódové základny v C, místo aby ji plošně nahrazoval. V Androidu je deklarovaným přístupem Googlu psát nový kód v paměťově bezpečných jazycích místo převádění stávajícího C a C++. Počítejte s dlouhým soužitím.
Je Rust rychlejší než Go?
Tohle jsem neměřil, takže nebudu tvrdit, že jeden je kategoricky rychlejší. Rust vám dává jemnější kontrolu nad alokací a nevyžaduje garbage collector; Go používá runtime s garbage collectorem a vyměňuje část nízkoúrovňové kontroly za jednodušší vývoj. Který je rychlejší, závisí na zátěži, implementaci a úzkém hrdle, takže používejte benchmarky, které se podobají vaší vlastní aplikaci.
Diskuse
Komentáře
Přihlaste se a zapojte se do diskuse.