Programování

Proč je jazyk Rust na vzestupu

Pravděpodobně jste nikdy nic nenapsali do Rustu, otevřeného programovacího jazyka na systémové úrovni vytvořeného Mozillou, ale pravděpodobně to někdy uděláte. Vývojáři korunovali Rusta za svůj „nejoblíbenější“ jazyk v průzkumu vývojářů Stack Overflow z roku 2019, zatímco Redmonk v pololetním jazykovém žebříčku viděl, jak se Rust dostal do prchavé vzdálenosti mezi top 20 (pořadí # 21).

A to navzdory uživatelům systému Rust „shledávají potíže a frustraci z vysoce nabízených funkcí jazyka pro bezpečnost a správnost paměti“.

Proč je známo, že jazyk je tak obtížně naučitelný, že je tak milovaný? V rozhovorech s vývojáři se zdá, že odpověď přichází na myšlenku, že Rust je „programování systémů se zábradlím“, jak to popisuje Oso CTO Sam Scott, přičemž jeden z těchto „zábradlí“ je výjimečně příjemnou komunitou.

Programování systémů s ochrannými lištami

Většina vývojářů obvykle necestuje do oblasti programování systémů. Například vývojáři aplikací nemají tendenci se blížit základnímu hardwaru. Pravděpodobně také nepotřebují budovat platformy, na kterých bude běžet další software, základní definiční prvek programování systémů.

Pro ty vývojáře, kteří pracují s programovacími jazyky nižší úrovně, jako je C nebo C ++, je Rust zjevením, něčím, co jsem poprvé popsal v roce 2015. Rychle vpřed o několik let, nicméně, Rust se stále zlepšuje.

Vývojář David Barsky, který je požádán o podrobnost hlavních prodejních míst společnosti Rust, nabízí následující:

  • Účinkující. Rust je schopen nahradit C / C ++ v prostorech, ve kterých se obvykle dařilo. Například: „U síťových služeb citlivých na latenci vede Rustův nedostatek uvolňování paměti za běhu k téměř neexistující latenci ocasu.“
  • Spolehlivý. "Jeho typový systém a kontrola výpůjčky - statický sběrač odpadků v době kompilace - brání celé třídě chyb, které jsou v Pythonu, Javě a C ++ přijímány jako 'normální'."
  • Produktivita vývojáře. „Cargo, nástroj pro vytváření a správu balíků, je jedním z nejlepších systémů pro správu a správu balíků, které jsem použil.“ Rust také přichází s vynikající integrovanou dokumentací a skvělým integrovaným testováním jednotky, integrace a dokumentace.

Barskyho zkušenost vypadá podobně jako Scottova. Scott, který pochází z programovacích jazyků vyšší úrovně (Java, Ruby on Rails), říká, že jeho zkušenosti s C byly méně než příjemné: „C bylo hrozné, protože jsem neustále narážel na problémy s pamětí, segfaults atd. A já víceméně měl jsem pocit, že jsem celou dobu bojoval s kódem. “

Rust byl naopak „programování systémů se zábradlím“. Scott vysvětluje:

Pak jsem zkusil Rust (právě se změnil na 1,0) a připadalo mi to jako programování systémů se zábradlím. Všechny věci, které jsem potřeboval k programování nízkoúrovňových systémů, ale s velkou pomocí k ladění a zajištění bezpečného kódu - jako kontrola výpůjčky a kompilátor, a později na nástroje jako linters („clippy“). Nabízí mnoho známých aspektů funkčního a objektově orientovaného programování a zdálo se, že odpovídá mému mentálnímu modelu toho, jak chci stavět systémy.

Jako spoluzakladatel Oso se Scott nemohl vyhnout programování na nižší úrovni. Oso, s posláním učinit zabezpečení back-end infrastruktury neviditelným pro vývojáře a jednoduchým pro operace, “potřebuje výkon, který nabízí jazyk na systémové úrovni. "Nemůžeme používat nesmyslný jazyk, jako je Go, protože výkon by nebyl dostatečně konzistentní pro to, co děláme, protože jsme na kritické cestě provozu zákazníků," řekl Scott.

Všechno to zní skvěle, dokud se nevrátíme k potenciálnímu problému získávání talentů pro vývojáře, kteří se dobře orientují v relativně novém jazyce. Přístupný talent však může být Rustovým nejlepším rysem ze všech.

Programátoři rezu chtěli

Kritickou součástí učení se něčemu novému je nutit lidi ochotné pomoci s přechodem. Zde svítí Rust. Jak říká Barsky,

Komunita Rust je plná vášnivých, laskavých a inteligentních lidí. Má přísně dodržovaný kodex chování, což znamená, že hrubé nebo obtěžující chování není tolerováno. Anekdoticky má jedny z nejvyšších koncentrací LGBTQA lidí, jaké jsem kdy viděl v jakékoli technologické komunitě.

Tato komunita je velkým důvodem, že podle Scotta mohou vývojáři vyzvednout Rusta za pár měsíců. Rust „vyžaduje trochu změnu myšlení,“ říká. "Musíte dělat více práce dopředu uvažování o věcech, jako jsou typy a životy." Ale jakmile se tam dostanete, „vyplácí vám to dividendy.“

Není tedy divu, že tolik vývojářů miluje Rusta. Vzhůru je velká a nevýhoda minimalizuje Rustova vstřícná a inkluzivní komunita.