Hallo Gerhard,
also prinzipiell ist Rust eine sehr moderne Sprache mit vielen High-Level Konstrukten und einem sehr fähigen Paketmanager (cargo) wie man sie aus Python/Java/Javascript kennt, aber gleichzeitig ist Rust hinsichtlich der Performanz vergleichbar mit C/C++. Da es eine kompilierte Sprache ist, braucht es für jegliche Plattformen einfach entsprechende Compiler. Der für AVRs ist als Standard bereits mitinstalliert.
Designt wurde Rust von Mozilla als moderne Sprache für System-Programmierung. Rust basiert auf 2-3 Grundprinzipien:
- einem starken Typsystem, und davon dass sie einen zwingt jegliche Fehler die auftreten könnten bereits im Code handzuhaben. Ein Programm läuft dafür oft direkt ohne jemals groß Probleme zu machen.
- dem Ownership-Prinzip. Zu jeder Variable (Memory-Adresse) darf es nur eine exklusive Referenz geben. Man kann von vielen Programmteilen (oder Threads) von einer Zelle lesen, solange der Compiler garantieren kann dass während dieser Zeit kein Schreibvorgang stattfindet. Was erst mal kompliziert klingt, ist am Schluss beim Programmieren eigentlich recht logisch. Dadurch gibt es keine Memory-Leaks, aber der Compiler ist auch relativ strikt und es kann durchaus dauern bis man Code mal zum kompilieren bringt.
- Dokumentation ist integrierter Bestandteil des Paket- und Buildtools (cargo). Man hat also direkt hübsche (und einheitliche!) Doku für alle Pakete die man in seinem Projekt benutzt. Siehe auch: https://doc.rust-lang.org/std/macro.println.html als Beispiel.
Naja also zusammengefasst kann man sagen, die Zielgruppe ist jeglicher Code bei dem es auf Performance ankommt, aber auch dass der Code stabil läuft. Auf einem AVR wird man aber wohl kaum die Vielfalt an Features ausnutzen können. Ich denke aber dass die modernen Programmierkonzepte es erlauben, den Code übersichtlicher und langfristig wartbarer zu gestalten.
Als Beispiel für den Einsatzzweck von Rust könnte man das wohl prominenteste open-source Projekt anführen: den Linux-Kernel. Gerade vor ein paar Monaten wurde bekanntgegeben, dass in Zukunft mehr und mehr vom Linux Kernel in Rust implementiert werden soll. Macht aus meiner Sicht auch Sinn.
Hilft das soweit? Hier noch ein Link mit ein paar Beispielen zu ein paar Features von Rust.
https://learnxinyminutes.com/docs/rust/
LG Roland
Lesezeichen