Voor elke developer is het een belangrijke vraag: wat is de volgende programmeertaal waarin ik me zou moeten verdiepen? Volgens Martin Carton, software engineer bij Prodrive Technologies, verdient Rust een kans. Sinds 2015 is hij betrokken bij het project en de community erachter. Tijdens de Developers Summit 2020 geeft hij een masterclass waarin hij Rust vergelijkt met andere opties, met name C++.
De programmeertaal Rust is ontstaan vanuit het idee om betrouwbare en efficiënte software te bouwen. Deels geïnspireerd op C en C++, maar met de nodige verschillen, is het vooral een functionele programmeertaal die focust op veiligheid. De Franse software engineer Martin Carton maakt deel uit van de Rust-community en is een van de voornaamste ontwikkelaars van een veelgebruikte tool voor Rust: Clippy. De naam is natuurlijk een grap en een verwijzing naar de controversiële Microsoft Word-assistent Clippy de Paperclip. Clippy voor Rust valt de gebruiker niet lastig met ongevraagde adviezen, maar helpt developers hun code te verbeteren met een set handige utilities.
Project zit in de lift
Carton woont sinds enkele jaren in Nederland, in de buurt van Eindhoven waar hij werkt voor Prodrive Technologies. Daarvoor studeerde hij Informatica en Toegepaste Wiskunde aan een universiteit in Toulouse, waar hij in 2015 afstudeerde. Als student maakte hij kennis met C++ en Rust, waarvan in 2015 de eerste stabiele 1.0-versie verscheen. “Toen ik ermee begon was het nog een kleine community, maar die is sindsdien flink gegroeid. Ik heb een aantal pull-requests gedaan voor de compiler. Maar heb me vooral gericht op Clippy, wat aanvankelijk een kleinschalig sideproject was, maar inmiddels een belangrijke tool voor Rust. Ik hoop dat ik heb kunnen bijdragen aan dit succes. Op dit moment zijn het vooral anderen die aan Clippy werken, zelf kom ik er niet meer zoveel aan toe als ik eigenlijk zou willen.”
Met Rust, in 2010 begonnen door Mozilla als open source-project, was het eigenlijk liefde op het eerste gezicht. “Ik ben altijd wel geïnteresseerd in het leren van nieuwe talen. Ik merkte al snel dat het een mooi alternatief voor C++ was; in essentie dezelfde doelgroep, maar met moderne features en tooling. En anders dan C++, dat eigenlijk een voortzetting is van C, is men bij Rust vanaf nul weer begonnen met een andere basis. Daarbij is echt afgevraagd: wat willen we met deze taal? En dat merk je.” Rust voelt modern aan, vanwege tooling voor documentatie en een officiële package manager. “Wanneer je wil beginnen met Rust maakt de package manager het je gemakkelijk. Dat is een verschil met C++, waarbij het aanvankelijk lastig is om alle tools te vinden. Alles is beter met elkaar geïntegreerd en hoewel er nog altijd een behoorlijke leercurve is met Rust, maak je hierdoor een snelle start.” Carton verwijst ook naar de behulpzame community, onder meer op Stack Overflow waar Rust al vier jaar op rij de populairste taal is.
Rust roest niet
Inmiddels werken vanuit de community honderden developers aan Rust, vaak in hun vrije tijd, al zijn er ook bedrijven die bijdragen. Onder meer Microsoft en Amazon hebben interesse getoond in Rust en Carton hoopt dat ontwikkelingen als deze bijdragen aan een verdere groei. “C++ blijft een belangrijke programmeertaal en veel grote projecten maken er gebruik van. Het kost veel tijd om Rust daarmee te integreren en dat zal ook niet overal gebeuren. Programmeurs met kennis van C++ zijn er volop, Rust-developers zijn wat lastiger te vinden. Bij nieuwe initiatieven ligt dat anders. Bij Prodrive Technologies bijvoorbeeld zijn de twee meest gebruikte talen C++ en C#, maar daarnaast gebruiken we sinds ongeveer twee jaar Rust. Dat gebeurt vooral in kleinere projecten waar wij normaal gesproken C++ zouden gebruiken, maar waar de betere integratie, de libraries en tooling van Rust voordelen bieden."
Prodrive Technologies is een grote internationale speler op het gebied van elektronische apparatuur, met vestigingen in Europa, Noord-Amerika en Azië. Klanten komen uit uiteenlopende markten, waaronder de automotive en (maak)industrie, de medische wereld, energie en infrastructuur. Een moderne low-level programmeertaal als Rust biedt voordelen in onder meer robotics-projecten. "Een taal zoals Rust helpt bij het voorkomen van veelvoorkomende bugs in C++. Daarbij maken de moderne features en tooling het gemakkelijker om programma’s met Rust te ontwikkelen."
Tegelijkertijd ziet Carton vanuit de hoek van webdevelopment de aandacht voor Rust toenemen. “Ook op websites kom je veel low-level tech tegen, bijvoorbeeld complexe algoritmen of games. Nu wordt er vaak gebruik gemaakt van technologie die daar eigenlijk niet voor geschikt is en daardoor te veel resources gebruikt. Rust is ook hiervoor gemaakt.”
De community staat klaar om te helpen
Met zijn masterclass in Utrecht hoopt Carton meer developers enthousiast te maken voor Rust. “Ik zal het op verschillende punten vergelijken met alternatieven, vooral C++, en uitleggen waarom het zo’n goede keuze is. Tegelijkertijd wil ik ook eerlijk zijn over de nadelen, zoals een wat steilere leercurve dan sommige andere talen. Ik hoop dat ik anderen kan overtuigen dat de voordelen de nadelen waard zijn en dat zij zouden moeten overwegen om Rust te leren. En mocht je de stap maken, dan zijn er online meer dan genoeg resources te vinden om te beginnen. De community staat klaar om je te helpen. Er zijn veel tutorials te vinden en er is zelfs een boek geschreven om nieuwkomers wegwijs te maken in Rust.”
Meer weten over Rust? Kom ook naar de Developers Summit 2020 op 13 februari in DeFabrique in Utrecht!