Rust (programmeertaal)
Rust | ||||
---|---|---|---|---|
![]() | ||||
Paradigma | Gecompileerd, gelijktijdig (concurrent), functioneel, imperatief, gestructureerd, generiek | |||
Verschenen | 2010 | |||
Ontworpen door | Graydon Hoare | |||
Ontwikkeld door | Rust-projectontwikkelaars | |||
Huidige versie | 1.63.0[1] (11 augustus 2022) | |||
Typesysteem | Statisch, nominaal, lineair, algebraïsch, lokaal afgeleid[2] | |||
Implementaties | Rustc[3] | |||
Beïnvloed door | Alef, C, C#, C++, Camlp4, Common Lisp, Cyclone, Erlang, Haskell, Hermes, Limbo, Napier, Napier88, Newsqueak, NIL, Ocaml, Racket, Ruby, Sather, Standard ML | |||
Besturingssysteem | Windows, OS X, Linux en FreeBSD | |||
Licentie | Dubbele licentie: MIT-licentie / Apache-licentie 2.0 | |||
Bestandsextensies | .rs | |||
Website | (en) Officiële website | |||
|
Rust is een gecompileerde multi-paradigma programmeertaal bedacht door Graydon Hoare en is begonnen als een project van Mozilla Research[4]. Rust is deels geïnspireerd door de programmeertalen C en C++, maar kent syntactische en semantische verschillen tegenover deze programmeertalen. Rust focust zich met name op snelheid, veiligheid, betrouwbaarheid en productiviteit. Dit wordt gerealiseerd door gebruik te maken van een krachtig typesysteem en een borrow checker. Hiermee kan Rust een hoog niveau van geheugenveiligheid garanderen zonder een garbage collector nodig te hebben[5].
Rust beoogt moderne computersystemen efficiënter te benutten. Hiervoor maakt het onder meer gebruik van geheugenbeheer dat geheugen in een blok toewijst en daarnaast strikt toeziet op de stacktoewijzing. Hierdoor kunnen problemen zoals stackoverflows, bufferoverflows en niet-geïnitialiseerd geheugen voorkomen worden. Verder staat Rust ook geen null-pointers, dangling-pointers of data-races toe in veilige code. Als alternatief voor null maakt Rust gebruik van een Option
type waarmee gekeken kan worden of een pointer wel Some
of geen None
waarde bevat. Wanneer er op laag niveau geprogrammeerd wordt kan onveilige code niet altijd vermeden worden, daarom beschikt Rust over een unsafe
keyword waarbij bepaalde onderdelen die veiligheid garanderen worden uitgeschakeld.
De ontwikkeling van Servo en de Rust compiler hebben geholpen bij het verfijnen van de taal.
In de maand februari van het jaar 2021 zijn de trademarks en de infrastructuur van het project overgeheveld naar The Rust Foundation[6].
Tools[7][bewerken | brontekst bewerken]
IDE ondersteuning[bewerken | brontekst bewerken]
Rust heeft eerste klas ondersteuning voor 8 IDE's:
- Visual Studio Code (met de Rust of rust-analyzer extensie voor taalondersteuning en de CodeLLDB extensie voor debugging)
- Sublime Text
- Atom
- IntelliJ IDEA / CLion (met de Rust plugin)
- Eclipse (met de Rust package)
- Vim
- Emacs
- Geany
Naast deze 8 is er ook ondersteuning te vinden in andere ontwikkelomgevingen en texteditors zoals Kate, Gedit en GNOME Builder.
Bouwen[8][bewerken | brontekst bewerken]
Rust heeft zijn eigen build tool genaamd Cargo. Cargo kan gebruikt worden voor het creëren, testen, beheren en bouwen van projecten en crates (packages).,
Linten[9][bewerken | brontekst bewerken]
Rust beschikt over zijn eigen linter genaamd Clippy. Met Clippy kan statische analyse uitgevoerd worden op de code, hiermee kunnen veelvoorkomende fouten worden gedetecteerd.
Formatteren[10][bewerken | brontekst bewerken]
Rust beschikt over een formatter genaamd Rustfmt. Met Rustfmt kan code geformatteerd worden aan de hand van stijlrichtlijnen.
Documentatie[11][bewerken | brontekst bewerken]
Voor het documenteren van Rust code kan gebruik worden gemaakt van Rustdoc.
Hello World[bewerken | brontekst bewerken]
Hello World kan op volgende manier geprogrammeerd worden in Rust:
fn main() {
println!("Hello world!");
}
Versiegeschiedenis[bewerken | brontekst bewerken]
Iedere zes weken geeft het 'release team' van de Rust-gemeenschap een nieuwe versie uit. Indien nodig worden er tussentijds correctieversies uitgegeven. Daarnaast wordt elke twee tot drie jaar een versie als Editie gemarkeerd als een soort mijlpaal waarbij de functionaliteiten samen worden gebracht in een duidelijk pakket[12]. Hieronder zijn een aantal van de meest significante versies uitgelicht. De volledige versiegeschiedenis is te vinden in het RELEASES.MD bestand op de Github pagina van Rust.
- 1.56.0 - 2021-10-21, 2021 Editie[13]
- 1.31.0 - 2018-12-06, 2018 Editie[14]
- 1.0.0 - 2015-05-15, 2015 Editie[15] (Eerste stabiele versie)
- 0.1.0 - 2012-01-20, Eerste versie
Zie ook[bewerken | brontekst bewerken]
- De Mozilla projecten Servo (layout-engine) en (en) Quantum gebruiken Rust als programmeertaal[19][20][21]
- Linkerd 2.x ('service mesh', tool voor micro-service monitoring) is voor een groot deel geschreven in Rust[22][23]
- Lijst van programmeertalen
Externe links[bewerken | brontekst bewerken]
Programmeertalen |
---|
ABAP · ABC · ActionScript · Ada · Algol · APL · assembleertalen · AWK · B · BASIC · BCPL · C · C++ · C♯ · Clean · Clipper · COBOL · COMAL · Curry · D · Eiffel · Erlang · F♯ · Forth · Fortran · Go · Haskell · Icon · J♯ · Java · Kotlin · Lisp · Logo · Lua · m4 · ML · Modula-2 · Oberon · Object Pascal · Objective-C · Ocaml · Oz · Pascal · Perl · PHP · PL/I · PL/SQL · Prolog · Prova · Python · Rexx · RPG · Ruby · Rust · SAS · Scala · Scheme · Self · Simula · Smalltalk · Swift · TCL · TypeScript · Vala · Visual Basic |