Geekstammtisch

Geekstammtisch

Interviews von und mit Geeks aus allen Bereichen

GST040 - Es gibt kein GOTO in Rust!

Audio herunterladen: MP3 | AAC | OGG | OPUS

Jan-Erik Rediger (00:00:00)

  • https://twitter.com/badboy_, http://fnordig.de/
  • Irgendwas zwischen Entwickler und Administrator
  • Aktuell sehr aktiv in Redis und Rust (seit ~3 Jahren)
  • Jan-Erik ist über das Interesse an Algorithmen an Redis gekommen (lesbares C)

Redis (00:03:00)

  • https://redis.io/
  • Key-Value Datenbank

Open Source (00:08:00)

  • Einstieg in Open Source Projekte
  • erstes Projekt: Redis
  • Einstieg z.B. über Dokumentation
  • Redis ist inzwischen nicht mehr so einfach für den Einstieg
  • Es gibt Projekte (wie Rust), die Issues zum Einstieg markieren

Rust (00:13:30)

  • Jan-Erik ist bei Rust 0.11 eingestiegen
  • Probleme von C/C++
    • sehr alt :)
    • kommen aus einer Welt, wo es nur eine CPU gab
    • wenig (gute) Spracheigenschaften um Parallelität gut abzubilden
  • Rust erkennt viele der herkömmlichen Probleme schon beim Kompilieren
  • Rust will eine Low-Level Sprache sein, mit weniger Problemen

Rust's Ursprung & Andere Ansätze (00:19:25)

  • Graydon Hoare hat ~2006 angefangen an einer eigenen Sprache zu arbeiten
  • Seit 2009 hat sich Mozilla dem Projekt angenommen
  • D https://dlang.org/

Rust's Entwicklung (00:23:00)

  • Rust hatte bis vor ein paar Jahren immer noch eine Runtime
  • Fokus sollte wieder auf die Sprache selber gehen und die Runtime wurde entfernt, die Standard Library aufgeräumt
  • Rust 1.0 wurde am 2015 released (aktuell 1.19)
  • bis Rust 1.0 war die Sprache durch viele Änderungen extrem volatil

Einstieg in Rust (00:29:00)

Rust Releases, Plattformen, Buildsystem (00:33:30)

  • Rust wird alle zwei Wochen released
  • Es gibt aktuell keine "Marketing" Releases, sondern einfach nur einen festen Release Zyklus
  • Jeder Pull Request wird getestet
  • Zum Testen von Kompileränderungen werden alle aktuellen Pakete gebaut und getestet
  • (fast) alles was LLVM unterstützt, wird auch von Rust unterstützt
  • installieren kann man den Rustcompiler z.B. via rustup: https://www.rustup.rs/
  • cargo ist das Buildsystem und der Paketmanager von Rust: https://crates.io/

Womit loslegen in Rust? (00:40:00)

  • "Alles, was man sonst so mit C machen würde" :)
  • Jan-Erik schlägt CLI Tools als Einstiegspunkt vor
  • Aber: Rust ist keine besondere einfache Sprache

Testen in Rust (00:44:12)

  • Unit Tests sind direkt in das Tooling eingebaut: cargo test
  • In der Dokumentation können Codebeispiele verwendet werden, die ebenfalls getestet werden können: https://github.com/steveklabnik/rustdoc

Deployments (00:48:00)

  • rust kompiliert nicht sonderlich schnell
  • trust: Travis CI Template um Binary Releases zu bauen https://github.com/japaric/trust
  • rust Programme sind statisch gelinkt (ähnlich zu Go)

Firefox und Rust (00:54:30)

  • Mozilla baut eine neue Browser-Engine: servo https://servo.org/
  • Firefox ist größtenteils in C++ geschrieben
  • daher hat Rust eine gute Integration mit C/C++ (ohne Overhead)
  • Stylo ist eine neue CSS Engine für Firefox

Spracheigenschaften von Rust (01:02:30)

  • die Intergation in C/C++ kann unsicher sein: unsafe
  • besonders effizenter code kann auch schon mal unsafe benötigen
  • Code aus unsafe kann auch den sicheren (save) Code beeinflussen
  • Type Inference
  • Borrowship und Ownership: Jeder Wert hat einen Besitzer
  • Mutable und Immutable Data
  • Send und Sync
  • Wrap und Unwrap
  • "Result" Datentyp
  • Keine Exceptions
  • Refactoring Ruby with Monads: https://codon.com/refactoring-ruby-with-monads

Rust und Nebenläufigkeit (01:33:00)

  • Basis ist Borrowship und Ownership, sowie Send und Sync

Rust Entwicklung (01:43:15)

  • von Mozilla gespondert, aber viele Contributor
  • RFC Prozess, um Vorschläge von Sprachänderungen zu diskutieren
  • https://github.com/rust-lang/rfcs

Redis und Rust Communities (01:52:20)


Kommentare


Neuer Kommentar

Durch das Abschicken des Formulars stimmst du zu, dass der Wert unter "Name oder Pseudonym" gespeichert wird und öffentlich angezeigt werden kann. Wir speichern keine IP-Adressen oder andere personenbezogene Daten. Die Nutzung deines echten Namens ist freiwillig.

Über diesen Podcast

Mehr oder weniger regelmäßiger Stammtisch rund um Geektum, (Web)development und was immer unsere Gäste an interessanten Dingen zu erzählen haben

von und mit Dirk Breuer, Sebastian Cohnen

Abonnieren

Follow us