Rust Überblick

Rust ist eine Programmiersprache, deren Entwicklung von Graydon Hoare begonnen und zwischen 2009 und 2020 maßgeblich durch seinen damaligen Arbeitgeber Mozilla Corporation gefördert und bestimmt wurde. Nachdem 2 Ansätze in C++ gescheitert waren, erhoffte sich Mozilla, mit Rust erstmals eine sichere und parallelisierte Webbrowser-Engine entwickeln zu können.

Mittlerweile sind mehrere Firefox-Komponenten durch Rust-Code ersetzt. Auch Unternehmen wie 1Password, Amazon, Apple, Cloudflare, Deliveroo, Dropbox, Facebook, Google, Huawei, Microsoft, Nike, Ticketmaster, Twitter, Yelp, sowie Entwickler von Projekten wie Apache httpd, AWS Firecracker, Google Android (Bluetooth, Keystore), Google Fuchsia (Bluetooth, Netzwerk), librsvg, Mercurial, Node.js, Parcel, Signal, Threema und das Unicode Consortium haben Software teilweise oder vollständig in Rust neu- oder umgeschrieben. Für Chromium (experimenteller Branch) wird dieser Schritt geprüft.

Seit 2021 wird Rust durch die Rust Foundation gefördert, der AWS, Facebook, Google, Huawei, Microsoft und Mozilla angehören. Einige Kernentwickler sind inzwischen Angestellte dieser Firmen.

Design

In der ersten Präsentation zu Rust aus 2010 wurde die Absicht ausgedrückt, ausschließlich auf Erkenntnisse und Erfahrungen anderer Programmiersprachen zurückzugreifen. Auch heute ist wohl nur das Zusammentreffen bestimmter Aspekte an Rust besonders.

Rust wurde gleichzeitig mit Servo entwickelt. Servo war, bis zu der firmenweiten Reorganisation im August 2020, das in Rust geschriebene Mozilla-Forschungsprojekt einer parallelisierten Webbrowser-Engine. Komponenten, die sich in Servo bewährten, wurden in Firefox integriert. Erfahrungen aus der Nutzung der Sprache bei Servo konnten wiederum früh in das Design von Rust zurückfließen. So unterschied sich das Rust 1.0 von 2015 deutlich von dem Rust aus 2010. Das frühe Rust hatte z.B. Green Threads und einen Garbage-Collector. Letzterer wurde später durch das Ownership-Modell und den Borrow-Checker ersetzt, als man erkannte, dass sowohl Thread- als auch Speichersicherheit mit den gleichen Mechanismen erreicht werden können.

Bewertung

Rust ist keine einfache Sprache. Das liegt vor allem an den Randbedingungen, die sich Rust verpflichtet hat, zu erfüllen. Diese führten auch dazu, dass die Entscheidungsfindung zum await-Syntax schwieriger war, als bei anderen Sprachen.

Rust wichtigstes Angebot ist die Verhinderung ganzer Klassen von Laufzeitfehlern bereits zur Kompilierzeit. Speicher- und Thread-Sicherheit ohne Garbage Collection sind dabei nur ein Aspekt. Dass Sprache und Ökosystem insgesamt eine hohe langfristige Produktivität ermöglichen können, wird oft übersehen. Aber: nicht nur das Erlernen von Rust ist einmalig eine Investition, sondern jedes mal neuen oder veränderten Code kompilierbar zu machen. Ob diese Investition profitabel ist, lässt sich nur im Einzelfall entscheiden.

Im Folgenden eine Aufstellung von Rusts Chancen und Risiken. Da in Rust die Erfahrungen anderer Programmiersprachen eingeflossen sind, gibt es naturgemäß Übereinstimmungen, besonders mit den Sprachen aus der ML-Familie.

Chancen

Risiken

Unternehmen, die Rust verwenden

3DSignals, Ahrefs, Aleph Alpha, Apple Inc., Asquera, Astropad, Avast, AWS, Barco, bearer, Bolt Labs, Brave Software Inc., Buoyant, Calendly, ChartMogul, Chef Software, Inc., citybldr, Cloudflare, Cloudseal Inc., Commure, Cosmian, Coursera, CrowdStrike, Crown Software GmbH, CSIS, Cultivate, CV Partner, Datalust, Deepgram, Deliveroo, Discord Inc., Ditto, Dropbox Inc., Dwelo, e.ventures, Einride, Elektron.se, eMundo, Enhance, ESG, ESR Labs, Etsy Inc., Everlane, Facebook Inc., Faraday.ai, Fashion Digital GmbH & Co. KG, Fastly, Figma, FireEye, ForAllSecure, FullStory, GitHub Inc., Google Inc., HENSOLDT, Hopin, Huawei, IBM, Impero, Imperva, InfluxData, inscripta, Intel, JoS QUANTUM, Joyent, KISIO Digital, Komodo Platform, Kopernikus Automotive GmbH, launchbadge, LINE Plus Corporation, LogDNA, Materialize, Inc., Microsoft, MindBuffer, Moogsoft Inc., move innovation, Mozilla, Narrative, Nationwide Building Society, Nike, Noibu, Nymi, NZXT, Ockam, OneSignal, Oxide Computer, Paige, Phylum, PingCAP, Postmates, PQShield Ltd., Qovery, Red Canary, Inc., Red Hat, Reddit, Redjack, Rhebo GmbH, Screenleap, SE4, SEED, Senacor, Sentry, ShowSeeker, Signal Foundation, Signavio, sisu, Slight, Slowtec, Snapview, Snips, Sonos, Swift Navigation, System76, Temporal, The Techno Creatives, The Walt Disney Company, Ticketmaster, Tilde Inc., Tobii, tonari, Tweede golf, Twitter Inc., Valve, vehicle.software, Vinted, VMRay, VMware, Wallaroo, wearTell, XAIN, Xayn, Y.at, YesLogic, Zenly, Zimpler

mit WebAssembly:

AgileBits, Assembl

Computerspiel-Hersteller:

Embark Studios, Ready At Dawn Studios, Utopixel

mit Blockchain:

Adobe Systems, Bitfinex, Bitski, Blockstack, BOTLabs GmbH, CasperLabs, ChainSafe, Chorus One, Clearmatics, Consensys, Facebook Inc., Famedly, filancore, Findora, Gnosis, Informal, IOHK, Kollider, Kraken, Layer1 Capital, LayerTwo, Massa, NEAR, nem, Parity Technologies, Polymath, SimpleStaking, SORAMITSU, TenX

made with makāmau