Rust Überblick

Hier wird ein Überblick zu Rust gegeben. Tiefergehende Informationen sind hier beschrieben.

Rust ist eine Programmiersprache, deren Entwicklung 2006 von Graydon Hoare begonnen und zwischen 2009 und 2020 durch seinen damaligen Arbeitgeber Mozilla Corporation maßgeblich 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, Azure Boost, Chromium, Google Android (Binder, Bluetooth, Keystore, Virtualisierung), Google Fuchsia, (Bluetooth, Netzwerk), Linux Kernel, librsvg, Mercurial, Node.ts, Parcel, 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.

Design

In der ersten Präsentation zu Rust wurde 2010 die Absicht vorgestellt, 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.

Diskussion

Rust ist nicht trivial zu erlernen und zu benutzen. Das liegt vor allem an den Randbedingungen, die sich Rust verpflichtet hat, zu erfüllen. Diese führten z.B. 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 auch 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 mit diesen unvermeidlich Ähnlichkeiten – besonders mit funktionalen Sprachen wie ML oder Haskell.

Chancen

Risiken

Unternehmen, die Rust verwenden

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, Cloudflare, Commure, Cosmian, Coursera, CrowdStrike, Crown Software GmbH, CSIS, Cultivate, CV Partner, Datalust, deepc, Deepgram, Deliveroo, DEMV Systems, Discord Inc., Ditto, Dropbox Inc., Dwelo, e.ventures, Einride, Elektron.se, ELOKON, eMundo, EnBW Energie Baden-Württemberg, Enhance, ESR Labs, Etsy Inc., Everlane, Faraday.ai, Fashion Digital GmbH & Co. KG, Fastly, Figma, Inc., ForAllSecure, Foresight Mining Software Corporation, FullStory, GitHub Inc., Google Inc., Huawei, Hugging Face, Inc., 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, 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, PingCAP, Postmates, PQShield Ltd., Qovery, Random Studio, Red Canary, Inc., Red Hat, Reddit, Redjack, Rhebo GmbH, SAP, Screenleap, Second Spectrum, Senacor, Sentry, Shopify, ShowSeeker, Signal Foundation, 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, Vinted, VMRay, VMware, Wallaroo, wearTell, XAIN, 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, Consensys, Famedly, filancore, Gnosis, Informal, IOHK, Kraken, LayerTwo, Massa, Meta, NEAR, nem, Parity Technologies, Polymath, SORAMITSU


Alle Angaben ohne Gewähr • HomeKontakt