A couple days ago (on Friday), I gave a talk at work for Dev Forum on (data) types. You can find the Keynote slides here (with presenter notes), and the PDF here (again, with presenter notes).
It's been a while since my last Dev Forum talk, and I've kept meaning to do another one, so although this isn't the best talk on types (it's essentially a long introduction to types/a whirlwind tour of different typing systems, as opposed to why types are desirable, their benefits and tradeoffs, etc.), I'm really glad I gave it. I think I had a strong start, too, and I have learnt what to do and what to avoid for next time.
Truth be told, most of the work of actually putting the whole thing together was done on the last day, though the talk had been ruminating for a while now. It's a recurring theme now, I intend to put my talk together on the second week (Dev Forum is every fortnight), things inevitably end up being really busy, and I skip another week. I had promised to give this talk this week, though, so I couldn't break that. When I looked back on it later, I even realised I'd completely forgotten a slide on type inference (maybe next time, as I intend to flesh out this topic; it probably fits better in the second presentation, anyway).
Interestingly, I did not feel nervous about the talk until I was actually up on stage (well, metaphorical stage), but I think I managed to hide it pretty well.
After fleshing out this topic, I think I'll do a talk on fast and efficient typing (well, text editing) ;).
All the links provided in the slides or presenter notes can be found in the list below:
- Free On-Line Dictionary Of Computing, “type”
- Wikipedia article on “Type system”, section on “Fundamentals”
- Free On-Line Dictionary Of Computing, “static typing”
- Free On-Line Dictionary Of Computing, “dynamic typing”
- Wikipedia article on “Latent typing”
- C2 Wiki page on “Strongly Typed”
- Free On-Line Dictionary Of Computing, “strong typing”
- Wikipedia article on “Type system”, section on “Variable levels of type checking”
- Wikipedia article on “Type system”, section on “Optional type systems”
- C2 Wiki page on “Weak And Strong Typing”
- C2 Wiki page on “Strongly Typed Collection”
- C2 Wiki page on “Strongly Typed Without Loopholes”
- C2 Wiki page on “Weakly Typed”
- C2 Wiki page on “Typing Quadrant”
- What to know before debating type systems
- C2 Wiki page on “Soft Typing”
- Wikipedia article on “Type system”, section on “Combining static and dynamic type checking”
- Wikipedia article on “Dependent type”
- The Algebra of Algebraic Data Types, Part 1
- What the Heck are Algebraic Data Types? ( for Programmers )
- Haskell wiki's “Algebraic data type”
- The algebra (and calculus!) of algebraic data types
- Selected answer to the Programmers SE question, “What Are The Uses of Algebraic Data Types?”
- Wikipedia article on Type system, section on “Static and dynamic type checking in practice”
- Classifying Programming Languages
- An Introduction To Programming Type Systems
- Wikipedia articles on type system and type safety
- Null References: The Billion Dollar Mistake