Artwork

Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen에서 제공하는 콘텐츠입니다. 에피소드, 그래픽, 팟캐스트 설명을 포함한 모든 팟캐스트 콘텐츠는 Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen 또는 해당 팟캐스트 플랫폼 파트너가 직접 업로드하고 제공합니다. 누군가가 귀하의 허락 없이 귀하의 저작물을 사용하고 있다고 생각되는 경우 여기에 설명된 절차를 따르실 수 있습니다 https://ko.player.fm/legal.
Player FM -팟 캐스트 앱
Player FM 앱으로 오프라인으로 전환하세요!

GST040 - Es gibt kein GOTO in Rust!

2:03:06
 
공유
 

Manage episode 309588395 series 3036179
Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen에서 제공하는 콘텐츠입니다. 에피소드, 그래픽, 팟캐스트 설명을 포함한 모든 팟캐스트 콘텐츠는 Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen 또는 해당 팟캐스트 플랫폼 파트너가 직접 업로드하고 제공합니다. 누군가가 귀하의 허락 없이 귀하의 저작물을 사용하고 있다고 생각되는 경우 여기에 설명된 절차를 따르실 수 있습니다 https://ko.player.fm/legal.
Wir sprachen mit Jan-Erik Rediger über Redis, Rust und Open Source Projekte

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)

  continue reading

챕터

1. Jan-Erik Rediger (00:00:00)

2. Redis (00:03:00)

3. Open Source (00:08:00)

4. Rust (00:13:30)

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

6. Rust's Entwicklung (00:23:00)

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

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

9. Testen in Rust (00:44:12)

10. Deployments (00:48:00)

11. Firefox und Rust (00:54:30)

12. Spracheigenschaften von Rust (01:02:30)

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

14. Rust Entwicklung (01:43:15)

15. Redis und Rust Communities (01:52:20)

42 에피소드

Artwork
icon공유
 
Manage episode 309588395 series 3036179
Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen에서 제공하는 콘텐츠입니다. 에피소드, 그래픽, 팟캐스트 설명을 포함한 모든 팟캐스트 콘텐츠는 Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen 또는 해당 팟캐스트 플랫폼 파트너가 직접 업로드하고 제공합니다. 누군가가 귀하의 허락 없이 귀하의 저작물을 사용하고 있다고 생각되는 경우 여기에 설명된 절차를 따르실 수 있습니다 https://ko.player.fm/legal.
Wir sprachen mit Jan-Erik Rediger über Redis, Rust und Open Source Projekte

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)

  continue reading

챕터

1. Jan-Erik Rediger (00:00:00)

2. Redis (00:03:00)

3. Open Source (00:08:00)

4. Rust (00:13:30)

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

6. Rust's Entwicklung (00:23:00)

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

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

9. Testen in Rust (00:44:12)

10. Deployments (00:48:00)

11. Firefox und Rust (00:54:30)

12. Spracheigenschaften von Rust (01:02:30)

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

14. Rust Entwicklung (01:43:15)

15. Redis und Rust Communities (01:52:20)

42 에피소드

모든 에피소드

×
 
Loading …

플레이어 FM에 오신것을 환영합니다!

플레이어 FM은 웹에서 고품질 팟캐스트를 검색하여 지금 바로 즐길 수 있도록 합니다. 최고의 팟캐스트 앱이며 Android, iPhone 및 웹에서도 작동합니다. 장치 간 구독 동기화를 위해 가입하세요.

 

빠른 참조 가이드

탐색하는 동안 이 프로그램을 들어보세요.
재생