© JrCasas/shutterstock.com
Was Rust in Sachen Speicherverwaltung so besonders macht

Rust Memory Ownership


Neue Programmiersprachen laden dazu ein, sie aus Neugier und Abenteuerlust auszuprobieren und auf ihre Alltagstauglichkeit zu prüfen. So ist Go für mich interessant, weil es sich perfekt für Containertechnologien eignet. Dann kam mit WebAssembly eine Plattform zum sicheren Ausführen von plattformunabhängigem Code aus dem Web, die meine Neugier weckte, und in deren Folge Rust. So wie Go die Sprache für Containertechnologien ist, so ist Rust die Sprache rund um WebAssembly. Eine der Eigenschaften von Rust ist das ausgefeilte Konzept von Memory Ownership. In diesem Artikel wird dieses Konzept vorgestellt und zum besseren Verständnis mit C# verglichen.

Ich programmiere C# seit den ersten Technologie-Preview-Versionen. Viele Jahre habe ich mich auf diese Programmiersprache und das damit verbundene .NET Framework konzentriert. Die am Beginn gängigste Alternative, Java, hat auf mich nie eine allzu große Anziehungskraft ausgeübt. Ich fühlte mich wohl bei C#. Vor einigen Jahren, als .NET in die Jahre gekommen war und von .NET Core nur erste Konzepte existierten, begann ich, mich bei anderen Sprachen umzusehen. Erst probierte ich TypeScript mit Node.js und fand sofort Gefallen daran. Diese Kombination wurde meine zweite Heimat, wenn es um serverseitigen Code ging. Am Client entschied ich mich damals ganz für TypeScript und beschloss, bei Webtechnologien zu bleiben. Mein zweites Programmiersprachenabenteuer begann vor ca. zwei Jahren. Go hatte mein Interesse geweckt und es macht mir mittlerweile großen Spaß, die Sprache Go in Cloud-Projekten einzusetzen. Besonders interessant ist Go für mich, da ich seit langem ein begeisterter Anhänger von Containertechnologien bin und sich Go dafür perfekt eignet.

Vor einigen Monaten bin ich dann auf eine technologische Entwicklung aufmerksam geworden, die das Potenzial hat, meine Gewohnheiten in Sachen Softwarearchitektur gehörig durcheinanderzuwirbeln: WebAssembly wird immer interessanter und darf aus meiner Sicht nicht rein als Plattform für Browseranwendungen missverstanden werden. WebAssembly ist eine Plattform zum sicheren Ausführen von plattformunabhängigem Code aus dem Web. Ob die Laufzeitumgebung im Browser, auf einem Server oder auf einem IoT-Gerät ausgeführt wird, ist dabei nebensächlich. WebAssembly wird meiner Einschätzung nach auf lange Sicht eine Alternative oder zumindest bedeutsame Ergänzung zur heute in der Praxis eingesetzten Containertechnologie.

So wie Go DIE Sprache ist, wenn es um Containertechnologien geht...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang