Module show_notes::e011

source ·
Expand description

Once upon a type

  • Date: March 6, 2016
  • Subject: Type systems: strong vs. weak, dynamic vs. static, and degrees of expressivity.
  • Audio

Notes

Talking about type systems! A broad and wide-ranging discussion about type systems in general, with specific examples from languages like PHP, JavaScript, Python, C, C++, Java, C♯, Haskell, and Rust!

  • 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!

Sponsors

  • Aleksey Pirogov
  • Chris Palmer
  • Derek Morr
  • Hamza Sheikh
  • Lachlan Collins
  • Leif Arne Storset
  • Luca Schmid
  • Micael Bergeron
  • Pascal
  • Ralph Giles (“rillian”)
  • Ralph “FriarTech” Loizzo
  • reddraggone9
  • Ryan Ollos
  • William Roe

Become a sponsor

Contact

Structs

  • Look, we composed those enums into another type. How… droll.

Enums

Functions