[−][src]Module show_notes::e011
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!
Links
- Rust 1.7 released
- Introduction to Type Theory
- Visualizing Rust's type-system
- The Many Kinds of Code Reuse in Rust
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
- New Rustacean:
- Twitter: @newrustacean
- Email: [email protected]
- Chris Krycho
- GitHub: chriskrycho
- Twitter: @chriskrycho
Structs
TypeSystem | Look, we composed those enums into another type. How... droll. |
Enums
Expressive | Is the thing "expressive", whatever that means? |
StaticallyKnown | Is the thing statically known? |
Strong | Is the thing strong? |
Functions
describe_type_systems | An incredibly contrived function which just shows enums at work. |