main() Development
Home → Rust Tinderbox
| | | | | | Rust | | | | | | | | | | Rust | Terug
De Rust Programming Language is momenteel aan zowel een technologische opmars bezig, als ook een charmeoffensief. Jaar in jaar uit wordt Rust als meest populaire programmeertaal gekozen door Stack Overflow.

Voor wat betreft het ontwikkelen in Rust -of in andere programmeertalen- zijn wij bij main() Development erg ingenomen met de IDE's van JetBrains en daarom erg enthousiast over RustRover, temeer daar voor het eerst in het bestaan van JetBrains de licentie gratis is voor niet-commerciële toepassingen - en dus ook voor developers. RustRover is erg intuïtief en fijn om mee te werken. Rust development is ook te vinden in IntelliJ IDEA Ultimate en CLion middels een plugin.

Rust development is natuurlijk ook mogelijk met andere IDE's of editors. Een populaire editor is Visual Studio Code. Om optimaal te kunnen werken met VS Code is het handig om gebruik te maken van diverse beschikbare Rust plugins:
  • rust-analizer - (This extension provides support for the Rust programming language. It is recommended over and replaces rust-lang.rust.)
  • CodeLLDB - debug funtionaliteit
  • Even Better TOML - (A TOML language support extension backed by Taplo.)
    • Crates - (Simplify Dependency Management in Rust & VSCode)
    • Dependi - (Empowers developers to efficiently manage dependencies and address vulnerabilities in Rust)
  • Error Lens - (ErrorLens turbo-charges language diagnostic features by making diagnostics stand out more prominently, highlighting the entire line wherever a diagnostic is generated by the language and also prints the message inline.)
  • Tabnine - (AI assistant for software developers)
  • Todo Tree - (This extension quickly searches (using ripgrep) your workspace for comment tags like TODO and FIXME, and displays them in a tree view in the activity bar. The view can be dragged out of the activity bar into the explorer pane (or anywhere else you would prefer it to be).)

Programmeren in Rust kan best overweldigend aanvoelen. Zeker als je net begint met je developers' loopbaan. Probeer niet alles ineens te begrijpen. Vooral niet als het om de Borrow Checker gaat. De golden nugget is dat je veel bestaande code moet doorlezen / proberen te begrijpen en vooral zélf beginnen met coderen - en dat blijven doen. En dan doe je het maar een keer fout. Daar leer je gewoon van. Voor beginnende Rust developers geldt natuurlijk eerst... "Read the Book". Een online Rust handleiding, die alle belangrijke taaleigenschappen behandelt. main() Development kan je helpen met een Rust Personal Coach, die je kan adviseren - of gewoon even met je mee kan kijken. Stuur een enail naar rust@maindevelopment.nl en we nemen zo snel mogelijk contact met je op. Natuurlijk gaan we vertrouwelijk om met alles wat je met ons deelt.
De globale tijdlijn van Rust is als volgt.
  • Rust wordt gecreëerd door Graydon Hoare: 2006
  • Rust wordt gesponsord door Mozilla: 2009
  • Rust wordt vooreerst aangekondigd: 2010
  • Rust 1.0: 2015

===================================================
Rust - een korte Bestaansgeschiedenis
===================================================
Veel softwareprojecten ontstaan omdat –ergens– een programmeur een persoonlijk probleem moest oplossen.
Dat is min of meer wat er met Graydon Hoare is gebeurd. In 2006 was Hoare een 29-jarige computerprogrammeur die werkte voor Mozilla, het open-source softwarebedrijf met de zo kenmerkende browser. Toen hij thuiskwam in zijn appartement in Vancouver, ontdekte hij dat de lift defect was. De software was gecrasht. En dit was ook niet de eerste keer dat dit gebeurde.
Hoare woonde op de 21e verdieping en toen hij de trap opliep, raakte hij geïrriteerd. “Het is belachelijk,” dacht hij, “dat wij techies niet eens een lift kunnen maken die werkt zonder te crashen!” Veel van dergelijke crashes, zo wist Hoare, zijn te wijten aan problemen met de manier waarop een programma geheugen gebruikt. De software in apparaten zoals liften is vaak geschreven in talen als C++ of C, die erom bekend staan dat programmeurs code kunnen schrijven die zeer snel werkt en vrij compact is. Het probleem is dat deze talen het ook gemakkelijk maken om per ongeluk geheugenbugs te introduceren: fouten die een crash veroorzaken. Microsoft schat dat 70% van de kwetsbaarheden in de code te wijten zijn aan geheugenfouten in code die in deze talen is geschreven.
Als wij 21 trappen op zouden moeten sjokken, zouden de meesten van ons gewoon boos worden en het daar laten staan. Maar Hoare besloot er iets aan te doen. Hij opende zijn laptop en begon een nieuwe computertaal te ontwerpen, een taal waarvan hij hoopte dat deze het mogelijk zou maken om kleine, snelle code te schrijven zonder geheugenfouten. Hij noemde het Rust, naar een groep opmerkelijk winterharde schimmels die, zegt hij, ‘overontwikkeld zijn om te overleven’.
Zeventien jaar later is Rust een van de populairste nieuwe talen ter wereld geworden – misschien wel de populairste. Er zijn 2,8 miljoen programmeurs die in Rust schrijven, en bedrijven van Microsoft tot Amazon beschouwen het als de sleutel tot hun toekomst. Het chatplatform Discord gebruikte Rust om zijn systeem te versnellen, Dropbox gebruikt het om bestanden naar je computer te synchroniseren en Cloudflare gebruikt het om meer dan 20% van al het internetverkeer te verwerken.
Wanneer Stack Overflow zijn jaarlijkse enquête onder ontwikkelaars over de hele wereld houdt, wordt Rust al zeven jaar op rij beoordeeld als de meest 'geliefde' programmeertaal. Zelfs de Amerikaanse overheid promoot gretig software in Rust als een manier om haar processen veiliger te maken. De taal is, net als veel succesvolle open-sourceprojecten, een kinderboerderij geworden: er zijn nu honderden die-hard contributors, waarvan velen vrijwilligers. Hoare zelf stapte in 2013 uit het project en droeg het graag over aan die andere ingenieurs, waaronder een kernteam bij Mozilla.
Het is niet ongebruikelijk dat iemand een nieuwe computertaal maakt. Veel programmeurs creëren voortdurend tools als side project. Maar het komt zelden voor dat een meteoor inslaat en onderdeel wordt van het pantheon van bekende talen, naast bijvoorbeeld JavaScript, Python of Java. Hoe deed Rust dat?
Om te begrijpen wat Rust zo nuttig maakt, is het de moeite waard om een kijkje onder de motorkap te nemen naar hoe programmeertalen omgaan met computergeheugen.
Je zou het dynamische geheugen in een computer heel grofweg kunnen zien als een schoolbord. Terwijl een stukje software draait, schrijft het voortdurend kleine stukjes gegevens naar het schoolbord, houdt bij welke waar zich bevindt en wist ze wanneer ze niet langer nodig zijn. Verschillende computertalen beheren dit echter op verschillende manieren. Een oudere taal zoals C of C++ is ontworpen om de programmeur veel macht te geven over hoe en wanneer de software het schoolbord gebruikt. Die kracht komt goed van pas: met zoveel controle over het dynamische geheugen kan een programmeur de software heel snel laten werken. Dat is de reden waarom C en C++ vaak worden gebruikt om ‘bare metal’-code te schrijven, het soort dat rechtstreeks met hardware communiceert. Machines die geen besturingssysteem hebben zoals Windows of Linux, inclusief alles van dialysemachines tot kassa's, draaien op dergelijke code. (Het wordt ook gebruikt voor geavanceerder computergebruik: op een gegeven moment moet een besturingssysteem met hardware communiceren. De kernels van Windows, Linux en MacOS zijn allemaal grotendeels in C geschreven.)
“Het is erg leuk om in Rust te programmeren, ook al is dat misschien een beetje raar om te zeggen, maar de syntax is gewoon fantastisch. Het is leuk. Je voelt je een tovenaar, en dat gebeurt nooit in andere talen.” Maar hoe snel ze ook zijn, talen als C en C++ hebben een wisselwerking. Ze vereisen dat de ontwikkelaar nauwkeurig bijhoudt naar welk geheugen wordt geschreven en wanneer het moet worden gewist. En vergeet je per ongeluk iets te wissen, dan kun je een crash veroorzaken: de software kan later proberen een ruimte in het geheugen te gebruiken waarvan hij denkt dat die leeg is, terwijl er wel degelijk iets is. Of je kunt een digitale exploit een manier geven om binnen te sluipen. Een hacker kan ontdekken dat een programma zijn geheugen niet correct opruimt (informatie die had moeten worden gewist (wachtwoorden, financiële informatie) hangt nog steeds rond) en die stiekem te pakken krijgen. Naarmate een stukje C- of C++-code steeds groter wordt, is het mogelijk dat zelfs de meest zorgvuldige developer veel “memory fog” maakt.
Oh ja... de software in de lift is uiteindelijk vervangen door... Rust.