De 8 bästa sakerna jag lärde mig av 4000 rostutvecklare

Vet du att de flesta Rust-programmerare arbetar med webbapplikationer? ? Rost är utmanande, men också givande och jättekul! Lär dig Rust genom exempel, eller? Öppna den här GitHub-repoen för att komma igång i VSCode.

Rost är en av de hetaste? programmeringsspråk idag. Det är StackOverflows mest älskade programmeringsspråk under de senaste 4 åren. Ändå har det fortfarande ett rykte som programmeringsspråk för alfa-nördar.

Enligt en uppskattning finns det 600 000 rostutvecklare över hela världen, vilket är ett betydande antal. Men det är fortfarande dvärgat jämfört med tiotals miljoner JavaScript-, Java- och Python-utvecklare.

Vem är de Rust-utvecklarna? Vad använder de Rust för? Varför älskar de Rust så mycket? Och viktigast, hur går du med i deras led och ser själv varför Rust är så älskad? Bli inte kvar.

För att svara på dessa frågor har Rust-communityn genomfört årliga utvecklingsundersökningar från rust-lang.org sedan 2016. Webbplatsen släppte nyligen sina undersökningsresultat för 2019 baserat på svar från nästan 4000 Rust-utvecklare. Här är de 8 bästa sakerna jag lärde mig från undersökningen.

??‍? Rust är för professionella programmerare

Programmeringsspråket Rust är inte utformat för att vara ”lätt att komma igång”. Snarare är den utformad för att vara kraftfull och säker samtidigt. Det syftar till att vara utvecklingsproduktivitetsspråk för professionella programmerare. Det är utmanande, roligt och givande. Det visar sig i undersökningen.

Mycket få respondenter kallar sig själva som Rust-experter. De flesta bedömer sin Rust-expertis som 7/10 eller lägre, trots att över 68% av dem skriver Rust-kod varje vecka. Det är helt klart ett språk som tar tid att behärska och utmärka sig.

Cirka 37% av rostanvändarna kände sig produktiva i rost på mindre än en månads användning - detta skiljer sig inte alltför mycket från andelen förra året (40%). Över 70% kände sig produktiva under sitt första år. Tyvärr, som förra året, finns det fortfarande en kamp bland användarna - 21% uppgav att de ännu inte kände sig produktiva.

Samtidigt, när man frågades varför man inte använder Rust i vissa projekt, nämns inlärningskurvan som den vanligaste orsaken. Anledningen # 1 är naturligtvis företagets beslut om att använda ett visst programmeringsspråk i ett projekt.

? Dokumentation är avgörande för adoption

Hur övervinner utvecklare Rusts inlärningskurva och blir kär i den? Tja, inte oväntat, citerade de flesta utvecklare "bättre dokumentation" som drivrutin för adoption.

Men sant för ”professionella programmerare” är den mest eftertraktade Rust-dokumentationen innehåll på mellannivå som hjälper utvecklare att förbättra sina Rust-färdigheter och produktivitet.

Medan undersökningen är partisk mot utvecklare som redan känner till grunderna för Rust, verkar det som om det finns en törst efter kunskap och självförbättring i denna publik.

? Utvecklare vill inte ha några text

Traditionell programvarudokumentation består vanligtvis av hela böcker och webbplatser. Nya generationer av utvecklare vill ha mer och bättre dokumentation. Som ett ”nytt” språk leder Rust redan innovationen när det gäller dokumentation för programmeringsspråk.

Till exempel är Rust-kompilatorn ett självdokumenterande verktyg. En av de mest unika och älskade funktionerna i Rust är dess aggressiva kompilator som hjälper dig att säkerställa korrekthet och säkerhet innan programmet ens körs. Som ett resultat kan Rust-utvecklare skriva högpresterande men ändå säkra program.

När du stöter på ett kompileringsfel i Rust ger kompilatorn dig en omedelbar förklaring av felet och förslag på hur du åtgärdar felet baserat på programmets sammanhang.

Detta startprojekt i GitHub kommer igång med Rust kompilatorn och Cargo-systemet utan att behöva installera någon programverktygskedja. Du kan använda VSCode online IDE direkt med detta projekt.

Rostdokumentationswebbplatser som docs.rs och Rust by Example (och dess utökade utgåva) använder Rust Playground för att köra Rust-exempelkod direkt från webbläsaren. Dessa interaktiva böcker är mycket bättre än enkel text.

Men som undersökningen får reda på vill utvecklare mer. Utvecklare är till exempel törstiga efter mer videoinnehåll. Vi kan se fram emot fler kodningsvideor och direktsändningar från samhället snart.

? ️ De flesta använder Rust för webbappar, srsly!

Som ett systemnivåspråk som är avsett att ersätta C och C ++ antar de flesta att Rust skulle användas i infrastrukturprogrammering, såsom operativsystem, inbyggda bibliotek och runtime-plattformar.

Ändå visar undersökningen tydligt att de flesta Rust-utvecklare idag arbetar med webbapp-backends med stor marginal. Inte konstigt att lådor som hyper, actix-web och Rocket är bland de mest populära bland Rust-utvecklare.

För att vara säker arbetar de flesta programutvecklare med webbapplikationer. Det är inte förvånande att Rust-projekt kommer att spegla den större mjukvaruindustrin när Rust vinner mainstream-antagande.

Men det ger möjligheter för projekt och verktyg som integrerar Rust i populära driftstider för webbapplikationer. Till exempel tar Rust + JavaScript hybrid-applikationsmetoden fart.

? Blockchain är en Rusty hotbed

När det gäller infrastrukturprogramvara lyser Rust verkligen som ett programmeringsspråk för blockchain-system.

För alla mjukvarurelaterade industrisektorer visar undersökningen att blockchain bara rankas som 35: e för alla programutvecklare, men 11: e för Rust-utvecklare. Det beror inte på aggressiv rostadoption av stora blockchain-projekt som Polkadot / Substrate, Oasis, Solana och Second State etc.

På många sätt passar blockkedjor perfekt för Rust. Blockchains representerar samhällets strävan att återuppbygga internetinfrastrukturen på ett decentraliserat sätt. De kräver högpresterande programvara som också är mycket säker. Om du är intresserad av en karriär som blockchainingenjör är Rust en måste-ha-skicklighet idag.

Rost Web️ WebAssemble

Undersökningen avslöjar att WebAssembly är en populär runtime-miljö för Rust-program. Rost och WebAssembly uppfanns båda på Mozilla.

Rust fokuserar på prestanda och minnessäkerhet, medan WebAssembly fokuserar på prestanda och runtime-säkerhet. Som en runtime-behållare gör WebAssembly också Rust-program plattformsoberoende och mer hanterbara. Det finns verkligen mycket synergi mellan de två teknikerna.

WebAssembly uppfanns ursprungligen som en virtuell maskin på klientsidan för att köra applikationer i webbläsaren. Men som Java och JavaScript innan det gör WebAssembly nu migreringen från klientsidan till serversidan.

Rust-in-WebAssembly är bra för trenden att påskynda rostadopiering i backend-webbapplikationer. Du kan komma igång med Rust och WebAssembly applikationsutveckling från ett startprojekt i detta GitHub-arkiv.

? Asynkron programmering tar fart

Under de senaste åren har två nya programmeringsspråk fått betydande dragkraft bland utvecklare. En är rost och den andra är Go. En stor del av deras framgång är deras överlägsna stöd för modellering av samtidiga programmeringar.

I själva verket är en tidig tagline av Rust "orädd samtidighet". Det lovar utvecklarens produktivitet genom att skriva asynkrona flertrådiga program optimerade för dagens flerkärniga CPU-arkitekturer. Som Node.js visade är enkel asynkron programmering avgörande för ett språk eller ramverk framgång på serversidan.

Undersökningen visar att fyra av de 10 viktigaste rostkassorna (dvs. tredjepartsbibliotek), tokio, async, futures och hyper, är ramverk för asynkrona applikationer med flera trådar.

? R, Python och JavaScript

När antagandet av Rust växer behöver utvecklare alltmer integrera Rust-program med program skrivna på andra språk. Tidigare var C och C ++ de vanligaste språken för att "prata" med Rust eftersom de alla används i infrastrukturprogramvaruprojekt.

När Rust växer till applikationsprogramvaruprojekt behövs fler gränssnitt och broar på språknivå nu. Ett bra exempel är Rust JavaScript-bron som stöder Rust-funktioner i Node.js-applikationer.

Undersökningen visade att, förutom C / C ++ och JavaScript, är Rust-utvecklare intresserade av att integrera med R och Python. Det indikerar utvecklarintressen inom maskininlärning, big data och artificiell intelligens (AI) -applikationer. Faktum är att många Python- och R-maskininlärning och statistiska paket implementeras i inbyggda binära moduler.

Rust är ett av de bästa programmeringsspråken för att skriva inbyggda moduler. Det här exemplet visar hur du använder Rust för att köra Tensorflow-modeller i ett Node.js-program. I framtiden ser vi för oss att sådana Rust-moduler ska köras i högpresterande hanterade containrar som WebAssembly.

Slutsats

2019 var ett år av tillväxt och stegvisa förbättringar för Rust. När Rust blir ett vanligt programmeringsspråk ser vi fram emot mer dokumentation, fler verktyg, mer ekosystemstöd, mer interoperabilitet med andra språk och en mildare inlärningskurva.

Och viktigast av allt, vi är angelägna om att få fler vänner och ha kul med världens mest älskade programmeringsspråk!

Om författaren

Dr Michael Yuan är författare till 5 böcker om programvaruteknik. Hans senaste bok Building Blockchain Apps publicerades av Addison-Wesley i december 2019. Dr. Yuan är medgrundare av Second State, en VC-finansierad start som ger WebAssembly och Rust-teknik till moln-, blockchain- och AI-applikationer. Det gör det möjligt för utvecklare att distribuera snabba, säkra, bärbara och serverlösa rostfunktioner på Node.js.

Före Second State var Dr. Yuan länge öppen källkodsansvarig på Red Hat, JBoss och Mozilla. Utanför programvaran är Dr. Yuan en huvudutredare vid National Institutes of Health, med flera forskningspriser om cancer och folkhälsoforskning. Han har doktorsexamen i astrofysik från University of Texas i Austin.