Once upon a type
- Date: March 6, 2016
- Subject: Type systems: strong vs. weak, dynamic vs. static, and degrees of expressivity.
- What is a type system?
- What are the kinds of things we get out of type systems?
- What are the tradeoffs with different type systems?
- What is Rust's type system like?
- What is especially attractive about Rust's type system?
A comment on the C integer/character string addition example: what's actually happening there is that the character string is an array "under the covers," and as such has an address. C silently switches to using the memory address, which is of course just an integer, when you try to add the two together. As I said on the show: the result is nonsense (unless you're using this as a way of operating on memory addresses), but it's compileable nonsense. In a stricter and stronger type system, memory addresses and normal numbers shouldn't be addable!
- Rust 1.7 released
- Introduction to Type Theory
- Visualizing Rust's type-system
- The Many Kinds of Code Reuse in Rust
- Aleksey Pirogov
- Chris Palmer
- Derek Morr
- Hamza Sheikh
- Lachlan Collins
- Leif Arne Storset
- Luca Schmid
- Micael Bergeron
- Ralph Giles ("rillian")
- Ralph "FriarTech" Loizzo
- Ryan Ollos
- William Roe
Look, we composed those enums into another type. How... droll.
Is the thing "expressive", whatever that means?
Is the thing statically known?
Is the thing strong?
An incredibly contrived function which just shows enums at work.