In dit artikel lees je alles over Rust. Het is een geliefde programmeertaal onder developers/programmeurs en wordt steeds meer gebruikt. Aan het eind van het artikel lees je hoe je zelf aan de slag kan gaan met Rust. Lees lekker verder!
Ja, ik wil als beginner Rust gaan leren!
Wat is Rust en wat kan je ermee?
Rust wordt de laatste tijd steeds populairder. Steeds meer developers maken er gebruik van. De developers die er gebruik van maken, zijn erg te spreken over de programmeertaal!
De bijnaam van Rust is “the book”. De programmeertaal Rust heeft dezelfde mogelijkheden als C en C++, alleen er is wel een belangrijk verschil. Rust biedt automatisch geheugenmanagement, daarom is het veiliger. Daarnaast is Rust ook sneller.
In C en C++ is geheugenmanagement een grote irritatie bij developers. In deze programmeertalen moet je daar zelf voor zorgen. Hierdoor kunnen er snel fouten optreden.
Geen enkele developer zit op fouten in het geheugen te wachten. Ze willen zich concentreren op de dingen die er echt toe doen. De compiler van Rust zorgt ervoor dat je op een veilige manier gebruik maakt van het geheugen. De compiler is strikter dan die van C/C++.
Met Rust kan je onder andere het volgende bouwen:
- Webbrowser
- Game
- Besturingssysteem
- Driver
- Compiler
- Microcontroller firmware
- Website
Je ziet dat er veel mogelijkheden zijn met Rust, je kan er zelfs een website mee bouwen. Met Rust kan je veel dezelfde toepassingen maken die ook in C/C++ gemaakt kunnen worden.
Als veiligheid hoog in het vaandel staat bij een project, is het verstandig om Rust te kiezen boven C/C++. Misschien wordt Rust op een gegeven moment wel populairder dan C/C++?
Grote bedrijven die gebruik maken van de programmeertaal Rust
Nu je een beter beeld hebt van Rust, is het leuk om naar drie voorbeelden te kijken van grote bedrijven die gebruik maken van Rust.
Dropbox
Dropbox is een programma en dient als online opslagplaats in de cloud. Gebruikers kunnen bestanden opslaan. Daarnaast is het ook mogelijk om bestanden te bewerken en te delen. Met andere personen kan je aan hetzelfde bestand werken.
Er zijn inmiddels meer dan 500 miljoen gebruikers. Dropbox is een enorm groot bedrijf. Het geeft wel wat aan dat zo’n groot bedrijf gebruik maakt van de programmeertaal Rust.
Verschillende componenten van het systeem die zorgen voor de opslag van bestanden, zijn geschreven in Rust. Dropbox heeft voor Rust gekozen, omdat het de efficiëntie en de veiligheid vergroot.
Windows
Wie kent het niet? Windows is het meest gebruikte besturingssysteem op de computer wereldwijd.
Als zelfs Windows gebruik gaat maken van Rust, betekent het dat Rust echt een programmeertaal is om rekening mee te houden. Rust is een goede programmeertaal en zal steeds meer bekendheid gaan winnen onder developers.
Microsoft is een aantal componenten van Windows aan het herschrijven van C/C++ naar Rust. Dit doen ze om meer beveiligingsproblemen in de toekomst te voorkomen. De eerste ervaringen zijn positief.
Yelp
Yelp is een platform op een internet waar gebruikers lokale bedrijven kunnen vinden en beoordelen. Er is zowel een website als een app van Yelp.
Het is een groot bedrijf met ongeveer 178 miljoen unieke bezoekers per maand.
Yelp maakt gebruik van Rust om A/B testen uit te voeren. Ze hebben voor de programmeertaal Rust gekozen, omdat het minstens even snel is als C en het is veiliger dan C.
Voor- en nadelen van Rust
Net zoals elke programmeertaal heeft ook Rust zijn voor- en nadelen. Laten we eerst beginnen met enkele voordelen.
Voordelen
- Automatisch geheugenmanagement en dus veiliger
- Ondanks dat Rust veel veiliger is dan C/C++, is het minstens even snel
- Kan gebruikt worden voor veel toepassingen
- Hard groeiende community
- Build system en package manager (Cargo) zijn goed
Nadelen
- Code kan je niet zo snel schrijven als bijvoorbeeld Python en Ruby
- Goede kennis nodig van C++ of een andere object georiënteerde programmeertaal om Rust te leren
- In Rust is er geen garbage collection
Ja, ik wil als beginner Rust gaan leren!
Rust vs C/C++
Eerder in het artikel heb je al enkele verschillen kunnen lezen tussen Rust en C/C++. Nu maken we een mooie opsomming van enkele belangrijke verschillen:
- Rust heeft een automatisch geheugenmanagement en is veiliger dan C/C++
- Rust heeft een betere performance dan C/C++
- Moeilijker om goede libraries te vinden in Rust dan in C/C++, omdat Rust een relatief nieuwe programmeertaal is
- Volgens veel developers is het makkelijker om te werken met Rust dan met C/C++
- C++ blijft momenteel een betere programmeertaal om games mee te maken dan Rust, door de goede game libraries
- Omdat Rust een vrij nieuwe programmeertaal is, is er meer informatie te vinden om C/C++ te leren dan Rust
Rust wint het nog niet op alle vlakken van C/C++. Dit kan ook niet, omdat het een vrij nieuwe programmeertaal is.
Bij een enquête van StackOverflow in 2018, is Rust door developers als meest geliefde programmeertaal gekozen.
Dit geeft aan dat er heel veel potentie in Rust zit! Op den duur kan het misschien wel C++ helemaal vervangen.
Rust codevoorbeelden
We gaan kijken naar drie eenvoudige voorbeelden van Rust code, zodat je een beter beeld hebt bij de syntax van Rust. We beginnen met “Hello World!”, de traditionele eerste kennismaking met een programmeertaal.
Hello World!
fn main() { println!("Hello World!"); }
Dit is niet zo spannend, maar het geeft een eerste indruk. De main()
function is de eerste function die aangeroepen wordt bij een Rust programma. Elk Rust programma heeft tenminste één function en dat is de main()
function.
println!()
zorgt ervoor dat de “Hello World!” tekst naar de console wordt geschreven.
Function
fn main() { alcohol_checker(18); } fn alcohol_checker(age: i32) { if age >= 18 { println!("Er mag alchohol gedronken worden!"); } else { println!("Er mag geen alchohol gedronken worden!"); } }
Net zoals je bij de main()
function in het vorige voorbeeld zag, staat er nu ook weer fn
voor de function. Dit geeft aan dat het een function is.
In dit geval heeft de function geen return type. Als de function wel een return type heeft, moet dat gedefinieerd worden achter het pijtje ->
. Dit gebeurt dan achter het sluitingshaakje )
in regel 5.
Verder valt in regel 5 i32
op. Dit is een primitive data type, namelijk een 32-bit signed integer type. Als je gewend bent om met hoge programmeertalen te programmeren, zal dit je misschien opvallen.
In tegenstelling tot C/C++ is de volgorde van de functions niet van belang. Stel dat je alchohol_checker()
boven main()
definieert, dan maakt dat niet uit en werkt het ook gewoon prima.
Error handling
fn positive_word(word: &str) { if word == "ugly" { panic!("That's a negative word!"); } println!("Positive word: {}", word); } fn main() { positive_word("ugly"); }
panic!
is de meest eenvoudige vorm van error handling in Rust. In deze voorbeeldcode is het vrij duidelijk. Als de function positive_word()
“ugly” als argument meegeeft, dan treedt panic!
in werking.
De function wil namelijk alleen positieve woorden. “ugly” wordt in dit geval niet geaccepteerd. Wanneer panic!
in werking komt, worden alle taken beëindigd en stopt het programma. Normaal geef je een nettere foutmelding aan de gebruiker en hoeft het programma niet direct te stoppen.
Ga zelf aan de slag met Rust
Hopelijk heb je een beter beeld gekregen van de programmeertaal Rust en ben je enthousiast geraakt om er ook zelf mee aan de slag te gaan. Rust heeft de toekomst en het is zeker interessant om je erin te verdiepen.
Pluralsight is een heel gaaf platform voor programmeurs. Ook heb je daar hele goede videocursussen over Rust voor beginners.
In “Pluralsight review en ervaringen” lees je een uitgebreide review en mijn eigen ervaringen over het platform. Het platform is zelfs 10 dagen helemaal gratis uit te proberen.
Binnen korte tijd is Rust misschien wel een hele populaire programmeertaal geworden en is de vraag naar Rust developers erg groot. Die kans zit er zeker in, omdat Rust veel potentie heeft.
Als jij je nu al verdiept in Rust, heb je een voorsprong op de rest. Kennis over Rust kan goud waard zijn. Als je echt interesse hebt, raad ik je aan om lekker aan de slag te gaan. Veel succes!
Heb je nog vragen en/of opmerkingen? Laat dan hieronder een reactie achter of neem contact op.