De 8 bedste ting, jeg har lært af 4000 rustudviklere

Ved du, at de fleste Rust-programmører arbejder på webapplikationer? ? Rust er udfordrende, men også givende og sjovt! Lær Rust som eksempel, eller? Åbn denne GitHub repo for at komme i gang i VSCode.

Rust er en af ​​de hotteste? programmeringssprog i dag. Det er StackOverflow mest elskede programmeringssprog i de sidste 4 år. Alligevel har det stadig et ry som programmeringssprog for alfa-nørder.

Efter nogle skøn er der 600.000 Rust-udviklere over hele verden, hvilket er et betydeligt antal. Men det er stadig dværg sammenlignet med titusindvis af JavaScript-, Java- og Python-udviklere.

Hvem er disse Rust-udviklere? Hvad bruger de Rust til? Hvorfor elsker de Rust så meget? Og vigtigst, hvordan går du ind i deres rækker og ser selv, hvorfor Rust er så elsket? Bliv ikke efterladt.

For at besvare disse spørgsmål har Rust-samfundet gennemført årlige udviklerundersøgelser fra rust-lang.org siden 2016. Webstedet offentliggjorde for nylig sine 2019-undersøgelsesresultater baseret på svar fra næsten 4000 Rust-udviklere. Her er de øverste 8 ting, jeg lærte fra undersøgelsen.

??‍? Rust er til professionelle programmører

Programmeringssprog Rust er ikke designet til at være ”let at komme i gang”. Det er snarere designet til at være kraftigt og sikkert på samme tid. Det sigter mod at være udviklerens produktivitetssprog for professionelle programmører. Det er udfordrende, sjovt og givende. Det viser i undersøgelsen.

Meget få respondenter kalder sig selv som Rust-eksperter. De fleste vurderer deres Rust-ekspertise som 7/10 eller derunder, på trods af at over 68% af dem skriver Rust-kode ugentligt. Det er helt klart et sprog, der tager tid at mestre og udmærke sig.

Cirka 37% af rustbrugerne følte sig produktive i Rust på mindre end en måneds brug - dette er ikke alt for forskelligt fra procenten sidste år (40%). Over 70% følte sig produktive i deres første år. Desværre er der ligesom sidste år stadig en kamp blandt brugerne - 21% oplyste, at de endnu ikke følte sig produktive.

På samme tid, når de bliver spurgt, hvorfor ikke bruge Rust på nogle projekter, bliver læringskurven nævnt som den mest almindelige årsag. Årsagen nr. 1 er selvfølgelig virksomhedens beslutning om at bruge et bestemt programmeringssprog i et projekt.

? Dokumentation er afgørende for vedtagelse

Hvordan overvinder udviklere Rust's læringskurve og forelsker sig i den? Nå, ikke uventet, citerede de fleste udviklere "bedre dokumentation" som driveren til vedtagelse.

Men tro mod "professionelle programmører" er den mest efterspurgte Rust-dokumentation indhold på mellemniveau, der hjælper udviklere med at forbedre deres Rust-færdigheder og produktivitet.

Mens undersøgelsen er partisk mod udviklere, der allerede kendte det grundlæggende i Rust, ser det ud til, at der er en tørst efter viden og selvforbedring i denne skare.

? Udviklere vil ikke have tomme tekst

Traditionel softwaredokumentation består typisk af hele bøger og websteder. Nye generationer af udviklere ønsker mere og bedre dokumentation. Som et "nyt" sprog fører Rust allerede innovationen, når det gælder dokumentation til programmeringssprog.

For eksempel er Rust-kompilatoren et selvdokumenterende værktøj. En af de mest unikke og elskede egenskaber ved Rust er dens aggressive kompilator, der hjælper dig med at sikre korrekthed og sikkerhed, før programmet selv kører. Som et resultat kan Rust-udviklere skrive ydeevne, men alligevel sikre programmer.

Når du støder på en kompileringsfejl i Rust, giver compileren dig en øjeblikkelig forklaring på fejlen og forslag til, hvordan du løser fejlen ud fra sammenhængen med dit program.

Dette startprojekt i GitHub får dig i gang med Rust-kompilatoren og Cargo-systemet uden at skulle installere noget softwareværktøjskæde. Du kan bruge VSCode online IDE direkte med dette projekt.

Rustdokumentationswebsteder som docs.rs og Rust by Example (og dens udvidede udgave) bruger Rust Playground til at køre Rust-eksempelkode direkte fra browseren. Disse interaktive bøger er meget bedre end simpel tekst.

Som undersøgelsen finder ud af, vil udviklere imidlertid have mere. Udviklere er for eksempel tørstige efter mere videoindhold. Vi kan se frem til flere kodende videoer og live-udsendelser fra samfundet snart.

? ️ De fleste bruger Rust til webapps, srsly!

Som et sprog på systemniveau, der er beregnet til at erstatte C og C ++, antager de fleste, at Rust ville blive brugt til infrastrukturprogrammering, såsom operativsystemer, oprindelige biblioteker og runtime-platforme.

Alligevel viser undersøgelsen tydeligt, at de fleste Rust-udviklere i dag arbejder med webapp-backends med stor margin. Ikke underligt, at kasser som hyper, actix-web og Rocket er blandt de mest populære blandt Rust-udviklere.

For at være sikker arbejder de fleste softwareudviklere på webapplikationer. Det er ikke overraskende, at Rust-projekter vil spejle den større softwareindustri, da Rust opnår mainstream-vedtagelse.

Det giver imidlertid muligheder for projekter og værktøjer, der integrerer Rust i populære webapplikationstider. For eksempel får Rust + JavaScript-hybridapplikationen tilgang.

? Blockchain er en Rusty hotbed

Når det kommer til infrastruktursoftware, skinner Rust virkelig som et programmeringssprog til blockchain-systemer.

For alle softwarerelaterede sektorer viser undersøgelsen, at blockchain kun rangerer den 35. for alle softwareudviklere, men 11. for Rust-udviklere. Det skyldes ikke mindre aggressiv rustoptagelse af store blockchain-projekter som Polkadot / Substrate, Oasis, Solana og Second State osv.

På mange måder passer blockchains perfekt til Rust. Blockchains repræsenterer samfundets bestræbelser på at genopbygge internetinfrastrukturen på en decentral måde. De kræver højtydende software, der også er meget sikker. Hvis du er interesseret i en karriere som blockchain-ingeniør, er Rust en must-have-færdighed i dag.

Rust ❤️ Websamling

Undersøgelsen afslører, at WebAssembly er et populært runtime-miljø for Rust-programmer. Rust og WebAssembly blev begge opfundet på Mozilla.

Rust er fokuseret på ydeevne og hukommelsessikkerhed, mens WebAssembly er fokuseret på ydeevne og runtime sikkerhed. Som en runtime container gør WebAssembly også Rust-programmer på tværs af platforme og mere håndterbare. Der er faktisk meget synergi mellem de to teknologier.

WebAssembly blev oprindeligt opfundet som en virtuel maskine på klientsiden til at køre applikationer i browseren. Men som Java og JavaScript før det, foretager WebAssembly nu migrationen fra klientsiden til serversiden.

Rust-in-WebAssembly lover godt med tendensen til at fremskynde rustoptagelse på backend-webapplikationer. Du kan komme i gang med Rust og WebAssembly applikationsudvikling fra et startprojekt i dette GitHub-arkiv.

? Asynkron programmering tager fart

I de senere år har to nye programmeringssprog fået markant trækkraft blandt udviklere. Den ene er rust, og den anden er Go. En stor del af deres succes er deres overlegne støtte til samtidige programmeringsmodeller.

Faktisk er en tidlig tagline af Rust "frygtløs samtidighed". Det lover udviklerens produktivitet ved at skrive asynkrone multitrådede programmer optimeret til nutidens multi-core CPU-arkitekturer. Som Node.js demonstrerede, er nem asynkron programmering afgørende for et sprog eller en rammes succes på serversiden.

Undersøgelsen viser, at 4 af de 10 vigtigste Rust-kasser (dvs. tredjepartsbiblioteker), tokio, async, futures og hyper, er rammer for asynkrone multi-thread applikationer.

? R, Python og JavaScript

Efterhånden som vedtagelsen af ​​Rust vokser, skal udviklere i stigende grad integrere Rust-programmer med programmer skrevet på andre sprog. Tidligere var C og C ++ de mest almindelige sprog for at "tale" med Rust, da de alle bruges i infrastruktursoftwareprojekter.

Da Rust vokser til applikationssoftwareprojekter, er der behov for flere grænseflader og broer på sprogniveau nu. Et godt eksempel er Rust JavaScript-broen, der understøtter Rust-funktioner i Node.js-applikationer.

Undersøgelsen viste, at udover C / C ++ og JavaScript er Rust-udviklere interesseret i at integrere med R og Python. Det indikerer udviklerinteresser inden for maskinlæring, big data og kunstig intelligens (AI) -applikationer. Faktisk implementeres mange Python og R maskinindlæring og statistiske pakker i native binære moduler.

Rust er et af de bedste programmeringssprog til at skrive native moduler. Dette eksempel viser, hvordan du bruger Rust til at udføre Tensorflow-modeller i et Node.js-program. I fremtiden forestiller vi os, at sådanne Rust-moduler kører i højtydende administrerede containere som f.eks. WebAssembly.

Konklusion

2019 var et år med vækst og inkrementelle forbedringer for Rust. Da Rust bliver et almindeligt programmeringssprog, ser vi frem til mere dokumentation, flere værktøjer, mere økosystemstøtte, mere interoperabilitet med andre sprog og en blidere læringskurve.

Og vigtigst af alt er vi ivrige efter at få flere venner og have det sjovt med det mest elskede programmeringssprog i verden!

Om forfatteren

Dr. Michael Yuan er forfatter til 5 bøger om software engineering. Hans seneste bog Building Blockchain Apps blev udgivet af Addison-Wesley i december 2019. Dr. Yuan er medstifter af Second State, en VC-finansieret opstart, der bringer WebAssembly og Rust-teknologier til cloud-, blockchain- og AI-applikationer. Det giver udviklere mulighed for at implementere hurtige, sikre, bærbare og serverløse rustfunktioner på Node.js.

Forud for Anden Stat var Dr. Yuan lang tid open source-bidragyder hos Red Hat, JBoss og Mozilla. Uden for software er Dr. Yuan en hovedforsker ved National Institutes of Health med flere forskningspriser om kræft og folkesundhedsforskning. Han har en ph.d. i astrofysik fra University of Texas i Austin.