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 worden. Viele andere Unternehmen (siehe unten), sowie Entwickler von Projekten wie Apache httpd, AWS Firecracker, Chromium, Google Android (Binder, Bluetooth, Keystore, Virtualisierung), Google Fuchsia (Bluetooth, Netzwerk), Linux Kernel, librsvg, Mercurial, Node.ts, Parcel, Rome, Signal, Threema, Tor, das Unicode Consortium und im Windows Kernel wurden/haben Software teilweise oder vollständig in Rust neu- oder umgeschrieben.
Seit 2021 wird Rust durch die Rust Foundation gefördert, welcher u.a. AWS, Google, Huawei, Meta, Microsoft und Mozilla angehören. Einige Rust- und Tokio-Entwickler sind inzwischen Angestellte dieser Firmen.
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 aus 2010 deutlich von Rust 1.0 aus 2015. Das frühe Rust hatte neben deutlichen syntaktischen Unterschieden auch Green Threads und einen Garbage Collector. Letzterer wurde durch das Ownership-Modell und den Borrow Checker hinfällig, als man erkannte, dass sowohl Thread- als auch Speichersicherheit mit den gleichen Mechanismen erreicht werden können.
Rust ist keine einfach zu erlernende 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.
panic!()
vermieden werden:
Result
, die Aufgrund von #[must_use]
nicht vergessen werden kann.Option
anstatt Nullable Types.
#[derive]
todo!()
zum polymorphen Prototypisieren.rustc
ist nur so portable wie LLVM. Siehe
aber auch mrustc und das
GCC Front-End für Rust.3DSignals, Ahrefs, Aleph Alpha, Alibaba Group, Apple Inc., Asquera, Astropad Company, Avast, AWS, Barco, bearer, Bolt Labs, Brave Software Inc., Bundesdruckerei GmbH, Buoyant, Calendly, Canonical, Centogene, ChartMogul, Chef Software, Inc., citybldr, Clausehound, Cloudflare, Cloudseal Inc., Commure, Cosmian, Coursera, CrowdStrike, Crown Software GmbH, CSIS, Cultivate, CV Partner, Datalust, deepc, Deepgram, DeepSign Security, Deliveroo, DEMV Systems, Discord Inc., Ditto, Dropbox Inc., Dwelo, e.ventures, Einride, Elektron.se, ELOKON, eMundo, EnBW Energie Baden-Württemberg, Enhance, ESG, ESR Labs, Etsy Inc., Everlane, Faraday.ai, Fashion Digital GmbH & Co. KG, Fastly, Figma, Inc., FireEye, ForAllSecure, Foresight Mining Software Corporation, FullStory, GitHub Inc., Google Inc., HENSOLDT, Hopin, Huawei, HUM Systems, IBM, ifm software gmbh, Impero, Imperva, Indeed, InfluxData, inscripta, Intel, JetBrains, JoS QUANTUM, Joyent, jusst technologies, KENBUN IT AG, KISIO Digital, Komodo Platform, Kopernikus Automotive GmbH, launchbadge, LINE Plus Corporation, LogDNA, Lumeo, Materialize, Inc., Meta, Microsoft, MindBuffer, Moogsoft Inc., move innovation, Mozilla, Narrative, Nationwide Building Society, Nike, Noibu, Nymi, NZXT, Ockam, OneSignal, Oxide Computer, Paessler AG, Paige, Phylum, PingCAP, Postmates, PQShield Ltd., Qovery, Red Canary, Inc., Red Hat, Reddit, Redjack, Rhebo GmbH, SAP, Screenleap, Seaplane, Second Spectrum, SEED, Senacor, Sentry, Shopify, 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, Threema GmbH, Ticketmaster, Tilde Inc., Tobii AB, tonari, TrueLayer, Tweede golf, Twitter Inc., ubix GmbH, Valve, vehicle.software, Vinted, VMRay, VMware, Wallaroo, wearTell, XAIN, Xayn, Y.at, YesLogic, Zenly, Zimpler
mit WebAssembly: 1Password
Computerspiel-Hersteller: DIMS, 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, Famedly, filancore, Findora, Gnosis, Informal, IOHK, Kollider, Kraken, Layer1 Capital, LayerTwo, Massa, Meta, NEAR, nem, Parity Technologies, Polymath, SimpleStaking, SORAMITSU, TenX