De 8 belangrijkste dingen die ik heb geleerd van 4000 roestontwikkelaars

Weet u dat de meeste Rust-programmeurs aan webapplicaties werken? ? Roest is uitdagend, maar ook lonend en ontzettend leuk! Leer Rust door het voorbeeld, of open deze GitHub-opslagplaats om aan de slag te gaan in VSCode.

Roest is een van de heetste? programmeertalen vandaag. Het is de meest geliefde programmeertaal van StackOverflow in de afgelopen 4 jaar. Toch heeft het nog steeds een reputatie als de programmeertaal voor alfa-geeks.

Volgens sommige schattingen zijn er wereldwijd 600.000 Rust-ontwikkelaars, wat een aanzienlijk aantal is. Maar het valt nog steeds in het niet bij tientallen miljoenen JavaScript-, Java- en Python-ontwikkelaars.

Wie zijn die Rust-ontwikkelaars? Waar gebruiken ze Rust voor? Waarom houden ze zo veel van Rust? En het allerbelangrijkste, hoe sluit je je aan bij hun gelederen en ontdek je zelf waarom Rust zo geliefd is? Blijf niet achter.

Om die vragen te beantwoorden, heeft de Rust-gemeenschap sinds 2016 jaarlijkse ontwikkelaarsenquêtes gehouden van rust-lang.org. De site heeft onlangs de onderzoeksresultaten van 2019 vrijgegeven op basis van antwoorden van bijna 4000 Rust-ontwikkelaars. Dit zijn de 8 belangrijkste dingen die ik uit de enquête heb geleerd.

??‍? Rust is voor professionele programmeurs

De Rust-programmeertaal is niet ontworpen om "gemakkelijk aan de slag te gaan". Het is eerder ontworpen om tegelijkertijd krachtig en veilig te zijn. Het is bedoeld om de productiviteitstaal van ontwikkelaars te zijn voor professionele programmeurs. Het is uitdagend, leuk en lonend. Dat blijkt uit de enquête.

Zeer weinig respondenten noemen zichzelf Rustexperts. De meeste mensen beoordelen hun Rust-expertise als 7/10 of lager, ondanks het feit dat meer dan 68% wekelijks Rust-code schrijft. Het is duidelijk een taal die tijd nodig heeft om te beheersen en uit te blinken.

Ongeveer 37% van de Rust-gebruikers voelde zich productief in Rust na minder dan een maand gebruik - dit verschilt niet veel van het percentage vorig jaar (40%). Meer dan 70% voelde zich productief in hun eerste jaar. Helaas is er, net als vorig jaar, nog steeds een worsteling tussen gebruikers - 21% gaf aan zich nog niet productief te voelen.

Tegelijkertijd wordt op de vraag waarom Rust bij sommige projecten niet gebruikt, de leercurve genoemd als de tweede meest voorkomende reden. De belangrijkste reden is natuurlijk de beslissing van het bedrijf om een ​​bepaalde programmeertaal in een project te gebruiken.

? Documentatie is essentieel voor adoptie

Hoe overwinnen ontwikkelaars de leercurve van Rust en worden ze er verliefd op? Niet onverwacht noemden de meeste ontwikkelaars "betere documentatie" als de driver voor adoptie.

Maar trouw aan "professionele programmeurs", is de meest gewilde Rust-documentatie inhoud op gemiddeld niveau die ontwikkelaars helpt hun Rust-vaardigheden en productiviteit te verbeteren.

Hoewel de enquête vooringenomen is in de richting van ontwikkelaars die de basis van Rust al kenden, lijkt het erop dat er in deze menigte een honger naar kennis en zelfverbetering heerst.

? Ontwikkelaars willen geen stukjes tekst

Traditionele softwaredocumentatie bestaat doorgaans uit volledige boeken en websites. Nieuwe generaties ontwikkelaars willen meer en betere documentatie. Als "nieuwe" taal loopt Rust al voorop in de innovatie als het gaat om documentatie van programmeertalen.

De Rust-compiler is bijvoorbeeld een hulpmiddel voor zelfdocumentatie. Een van de meest unieke en geliefde kenmerken van Rust is de agressieve compiler die u helpt om correctheid en veiligheid te garanderen voordat het programma zelfs maar wordt uitgevoerd. Hierdoor kunnen Rust-ontwikkelaars zeer performante maar veilige programma's schrijven.

Als je een compileerfout tegenkomt in Rust, geeft de compiler je direct een uitleg van de fout en suggesties voor het oplossen van de fout op basis van de context van je programma.

Dit startersproject in GitHub helpt je op weg met de Rust-compiler en het Cargo-systeem zonder dat je een softwaretoolketen hoeft te installeren. U kunt de VSCode online IDE rechtstreeks bij dit project gebruiken.

Rust documentatie websites zoals docs.rs en Rust by Example (en de uitgebreide editie) gebruiken de Rust Playground om Rust voorbeeldcode direct vanuit de browser uit te voeren. Die interactieve boeken zijn veel beter dan eenvoudige tekst.

Zoals uit de enquête blijkt, willen ontwikkelaars echter meer. Ontwikkelaars hebben bijvoorbeeld dorst naar meer videocontent. We kunnen binnenkort uitkijken naar meer codeervideo's en live-uitzendingen van de community.

️ De meeste mensen gebruiken Rust voor web-apps, srsly!

Als een taal op systeemniveau die bedoeld is om C en C ++ te vervangen, gaan de meeste mensen ervan uit dat Rust zou worden gebruikt in infrastructuurprogrammering, zoals besturingssystemen, native bibliotheken en runtime-platforms.

Toch laat het onderzoek duidelijk zien dat de meeste Rust-ontwikkelaars tegenwoordig met een grote marge werken aan backends van webapps. Geen wonder dat kratten zoals hyper, actix-web en Rocket tot de meest populaire behoren bij Rust-ontwikkelaars.

Zeker, de meeste softwareontwikkelaars werken aan webapplicaties. Het is niet verwonderlijk dat, naarmate Rust steeds populairder wordt, Rust-projecten een afspiegeling zullen zijn van de grotere software-industrie.

Dat biedt echter kansen voor projecten en tools die Rust integreren in populaire runtimes van webapplicaties. De benadering van Rust + JavaScript-hybride applicaties wint bijvoorbeeld aan kracht.

? Blockchain is een broeinest van Rusty

Als het gaat om infrastructuursoftware, schittert Rust echt als een programmeertaal voor blockchainsystemen.

Voor alle softwaregerelateerde bedrijfstakken blijkt uit het onderzoek dat blockchain slechts op de 35e plaats staat voor alle softwareontwikkelaars, maar op de 11e plaats voor Rust-ontwikkelaars. Dat is niet in de laatste plaats te wijten aan de agressieve acceptatie van Rust door grote blockchain-projecten zoals Polkadot / Substrate, Oasis, Solana en Second State enz.

Blockchains passen in veel opzichten perfect bij Rust. Blockchains vertegenwoordigen de inspanning van de gemeenschap om de internetinfrastructuur op een gedecentraliseerde manier opnieuw op te bouwen. Ze hebben hoogwaardige software nodig die ook erg veilig is. Als je geïnteresseerd bent in een carrière als blockchain-engineer, is Rust vandaag een vaardigheid die je moet hebben.

Roest ❤️ WebAssembly

Uit het onderzoek blijkt dat WebAssembly een populaire runtime-omgeving is voor Rust-programma's. Rust en WebAssembly zijn beide uitgevonden bij Mozilla.

Rust is gericht op prestaties en geheugenveiligheid, terwijl WebAssembly gericht is op prestaties en runtime-veiligheid. Als runtime-container maakt WebAssembly Rust-programma's ook platformonafhankelijk en beter beheersbaar. Er is inderdaad veel synergie tussen de twee technologieën.

WebAssembly is oorspronkelijk uitgevonden als een virtuele machine aan de clientzijde om in-browsertoepassingen uit te voeren. Maar zoals Java en JavaScript ervoor, maakt WebAssembly nu de migratie van de clientzijde naar de serverzijde.

Rust-in-WebAssembly is een goed voorteken met de trend om de acceptatie van Rust op backend webapplicaties te versnellen. U kunt aan de slag met Rust en WebAssembly applicatie-ontwikkeling vanuit een startproject in deze GitHub-repository.

? Asynchroon programmeren neemt een vlucht

In de afgelopen jaren hebben twee nieuwe programmeertalen veel aandacht gekregen bij ontwikkelaars. De ene is Rust en de andere is Go. Een groot deel van hun succes is hun superieure ondersteuning voor programmeermodellen voor gelijktijdigheid.

In feite is een vroege slogan van Rust "onverschrokken concurrency". Het belooft ontwikkelaars productiviteit bij het schrijven van asynchrone multi-threaded programma's die zijn geoptimaliseerd voor de huidige multi-core CPU-architecturen. Zoals Node.js heeft aangetoond, is eenvoudig asynchroon programmeren cruciaal voor het succes van een taal of framework op de server.

Uit het onderzoek blijkt dat 4 van de 10 belangrijkste Rust-kratten (dwz bibliotheken van derden), tokio, async, futures en hyper, frameworks zijn voor asynchrone multi-thread-toepassingen.

? R, Python en JavaScript

Naarmate de adoptie van Rust groeit, moeten ontwikkelaars Rust-programma's steeds vaker integreren met programma's die in andere talen zijn geschreven. In het verleden waren C en C ++ de meest voorkomende talen om met Rust te "praten", aangezien ze allemaal worden gebruikt in infrastructuursoftwareprojecten.

Terwijl Rust uitgroeit tot applicatiesoftwareprojecten, zijn er nu meer taalniveau-interfaces en bruggen nodig. Een goed voorbeeld is de Rust JavaScript-bridge die Rust-functies ondersteunt in Node.js-toepassingen.

Uit het onderzoek bleek dat Rust-ontwikkelaars, naast C / C ++ en JavaScript, geïnteresseerd zijn in integratie met R en Python. Dat geeft de interesse van ontwikkelaars aan in machine learning, big data en kunstmatige intelligentie (AI) -toepassingen. In feite zijn veel Python- en R-machine learning en statistische pakketten geïmplementeerd in native binaire modules.

Rust is een van de beste programmeertalen om native modules te schrijven. Dit voorbeeld laat zien hoe u Rust kunt gebruiken om Tensorflow-modellen uit te voeren in een Node.js-toepassing. In de toekomst stellen we ons voor dat dergelijke Rust-modules zullen worden uitgevoerd in beheerde containers met hoge prestaties, zoals WebAssembly.

Conclusie

2019 was voor Rust een jaar van groei en stapsgewijze verbeteringen. Nu Rust een gangbare programmeertaal wordt, kijken we uit naar meer documentatie, meer tools, meer ecosysteemondersteuning, meer interoperabiliteit met andere talen en een zachtere leercurve.

En het allerbelangrijkste: we staan ​​te popelen om meer vrienden te maken en plezier te hebben met de meest geliefde programmeertaal ter wereld!

Over de auteur

Dr. Michael Yuan is de auteur van 5 boeken over software engineering. Zijn nieuwste boek Building Blockchain Apps werd in december 2019 gepubliceerd door Addison-Wesley. Dr. Yuan is de mede-oprichter van Second State, een door VC gefinancierde startup die WebAssembly en Rust-technologieën naar cloud-, blockchain- en AI-applicaties brengt. Het stelt ontwikkelaars in staat om snelle, veilige, draagbare en serverloze Rust-functies te implementeren op Node.js.

Voorafgaand aan Second State was Dr. Yuan een lange tijd open source-bijdrager bij Red Hat, JBoss en Mozilla. Buiten software is dr. Yuan hoofdonderzoeker bij de National Institutes of Health, met meerdere onderzoeksprijzen voor kanker en volksgezondheidsonderzoek. Hij heeft een PhD in astrofysica aan de Universiteit van Texas in Austin.