Rust Überblick

Rust ist eine Programmiersprache, deren Entwicklung 2006 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. Viele andere Unternehmen (siehe unten), sowie Entwickler von Projekten wie Apache httpd, AWS Firecracker, Google Android (Bluetooth, Keystore), Google Fuchsia (Bluetooth, Netzwerk), librsvg, Mercurial, Node.js, Parcel, Rome, Signal, Threema, Tor 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, welcher AWS, Facebook, Google, Huawei, Microsoft und Mozilla angehören. Einige Rust- und Tokio-Entwickler sind inzwischen Angestellte dieser Firmen.

Design

In der ersten Präsentation zu Rust wurde 2010 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ährt hatten, wurden in Firefox integriert. Erfahrungen aus der Programmierung von Servo beeinflussten wiederum das Design von Rust. So unterscheidet 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 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.

Diskussion

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 Company, Avast, AWS, Barco, bearer, Bolt Labs, Brave Software Inc., Bundesdruckerei GmbH, Buoyant, Calendly, Centogene, ChartMogul, Chef Software, Inc., citybldr, Cloudflare, Cloudseal Inc., Commure, Cosmian, Coursera, CrowdStrike, Crown Software GmbH, CSIS, Cultivate, CV Partner, Datalust, Deepgram, Deliveroo, DEMV Systems, Discord Inc., Ditto, Dropbox Inc., Dwelo, e.ventures, Einride, Elektron.se, ELOKON, 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, ifm software gmbh, Impero, Imperva, Indeed, InfluxData, inscripta, Intel, JoS QUANTUM, Joyent, jusst technologies, 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, Second Spectrum, SEED, Senacor, Sentry, ShowSeeker, Signal Foundation, Signavio, sisu, Slight, Slowtec, Snapview, Snips, Sonos, Swift Navigation, System76, Tag1 Consulting, Temporal, Tempus Ex, The Techno Creatives, The Walt Disney Company, Ticketmaster, Tilde Inc., Tobii, tonari, TrueLayer, 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, Treyarch, Utopixel

mit Blockchain:

Adobe Systems, Bitfinex, Bitski, Blockstack, BOTLabs GmbH, CasperLabs, ChainSafe, Chorus One, Clearmatics, Confio GmbH, 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