Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Einführung in Rust

Einführung in Rust

Rust ist eine moderne Programmiersprache, die Performance und Sicherheit verbindet. Sie ist systemnah und bietet leistungsstarke Abstraktionen, die stark an dynamische Sprachen wie Ruby oder Python erinnern. Rust bietet Speichersicherheit ohne Garbage Collector und macht die Low-Level-Programmierung einfacher und sicherer. Matthias wird einen einführenden Vortrag über Rust halten und in diesem Rahmen auch einige der schönsten Features vorstellen. Außerdem wird er auf Einsatzmöglichkeiten für WebAssembly, Cloud Computing und mehr eingehen.

Matthias Endler

January 24, 2020
Tweet

More Decks by Matthias Endler

Other Decks in Technology

Transcript

  1. ?

  2. Rust is a systems programming language that runs blazingly fast,

    prevents segfaults, and guarantees thread safety. It aims to bring modern language design and an advanced type system to systems programming. Rust does not use a garbage collector, using advanced static analysis to provide deterministic drops instead.
  3. Matthias Endler @matthiasendler - Düsseldorf, Germany - Backend Engineer at

    - Website performance team - Worked a lot with Python and PHP - Likes hot chocolate endler.dev mre
  4. Rust Facts • Programming language • Funded by Mozilla •

    First version: 2010 • Version 1.0: May 2015 • Current stable version: 1.40
  5. Rust Facts • Memory safety • No undefined behavior •

    Fearless concurrency • High-level language concepts • Strong compiler checks • Easily embeddable into existing
 projects
  6. What I like about… Package manager, Community Syntax, Libraries, Async

    Tooling, Documentation, Concurrency Speed, no overhead PHP: Python:
 Golang:
 C:
  7. What I like about… Package manager, Community Syntax, Libraries, Async

    Tooling, Documentation, Concurrency Speed, no overhead
 Generics, Error handling Rust:
  8. wc

  9. ... but there's more! • How to differentiate between end

    of file and error? • Parallel execution for multiple files? • What about very long lines? • Buffers for performance • Timeouts for slow reads? • SIMD?
  10. • Handles missing files • Handles read errors • Handles

    large files • UTF-8 support • Fast buffered reading • No memory leaks
  11. Who’s using Rust anyway? Firefox Dropbox Visual Studio Code npm

    Facebook (kind of) Google (kind of) trivago rust-lang.org/production
  12. 0 750 1500 2250 3000 Go C Rust How big

    is " Hello World " (in KB)? 40k 1k