/ Software-Entwicklung / Programmiersprache: Rust 1.17 bringt syntaktischen Feinschliff

Programmiersprache: Rust 1.17 bringt syntaktischen Feinschliff

Gerfried Steube on April 28, 2017 - 11:12 am in Software-Entwicklung

Ein paar Neuerungen in Rust sorgen für weniger Boilerplate-Code. Unter anderem impliziert die Verwendung von Konstanten oder statische Variablen die ‘static-Lifetime. Außerdem haben die Macher die Bibliotheken stabilisiert.

Gut einen Monat nach der Veröffentlichung von Rust 1.16 hat das Team Version 1.17 der von Mozilla Research ins Leben gerufenen Programmiersprache freigegeben. Zwar bringt das Release keine großen Neuerungen, aber vor allem Feinschliff an der Syntax, der den Code übersichtlicher machen und Boilerplate-Code vermeiden soll. So dürfen Entwickler nun für als const oder static definierten Variablen die Angabe der Lebensdauer ‘static weglassen. Die Verwendungen von

const NAME: &'static str = "Heise";

lässt sich somit durch

const NAME: &str = "Heise";

ersetzen. Dasselbe gilt, wenn NAME static ist. Der Blogbeitrag begründet die Vereinfachung damit, dass für Konstanten und statische Variablen ‘static die einzig sinnvolle Lebenszeit ist. Die Lebensdauer von Variablen gehört zum Grundkonzept von Rust, und ‘static zeigt an, dass die entsprechende Variable dieselbe Lebenszeit wie das Programm hat.

Einfachere Zuweisung für Structs

Aus JavaScript übernimmt Rust das Konzept der vereinfachten Variablenzuweisung für struct-Elemente, die denselben Namen haben. So lässt sich

let p = Point {
x: x,
y: y,
};

ersetzen durch

let p = Point {
x,
y,
};

Darüber hinaus haben die Macher die Bibliotheken stabilisiert. Details zu den betroffenen APIs lassen sich den Release Notes entnehmen. Eine weitere kleine Ergänzung ist eine klarere Fehlermeldung, wenn Entwickler versuchen, zwei &str-Objekte zu verbinden, was Rust verbietet. Die Fehlermeldung enthält nun den Hinweis darauf, stattdessen die Funktion to_owned() für den linken &str zu verwenden.

Programmierfehler vermeiden

Mozilla hatte Rust 2010 mit dem Ziel vorgestellt, besonders sicher und praxisnah zu sein. Sie unterstützt Nebenläufigkeit und soll Programmierfehler vermeiden helfen, die zu Speicherzugriffsfehlern oder Pufferüberläufen führen. Syntaktisch ähnelt die Programmiersprache C/C++, bringt aber vor allem Änderungen, die Flüchtigkeitsfehler verhindern sollen. So müssen beispielsweise nach if– und while-Statements auch einzelne Anweisungen in geschweiften Klammern stehen. Neben Mozillas Servo-Engine setzen unter anderem Chefs Build-und-Deploy-Tool Habitat und OpenDNS auf Rust. (rme)

Read more on: Source

Comments are disabled