







This presentation was recorded at GOTO Copenhagen 2024. #GOTOcon #GOTOcph https://gotocph.com Kris Jenkins - Developer Advocate, Software Developer, Podcast Host, Conference Speaker & Geek @krisajenkins RESOURCES https://bsky.app/profile/krisajenkins.bsky.social https://www.linkedin.com/in/krisjenkins https://twitter.com/krisajenkins https://github.com/krisajenkins http://blog.jenkster.com ABSTRACT Modern type systems have come a long way since C. They’re no longer just about pleasing the compiler. These days they form a sub-language that helps us express ideas about software clearly & succinctly. A true design language. So let’s take a look at how a modern type system supports talking about software. How it highlights problems, clarifies designs, and supports reuse. Most importantly, see how types can help you talk to your colleagues. [...] TIMECODES 00:00 Intro 01:42 Disclaimer 02:05 A story of types 03:59 Describing things 11:22 Describing relationships 15:08 Some examples in Elm 23:49 Describing context 32:46 Where next? 35:44 Outro Download slides and read the full abstract here: https://gotocph.com/2024/sessions/3487 RECOMMENDED BOOKS Sandy Maguire • Thinking with Types • https://leanpub.com/thinking-with-types Edwin Brady • Type-Driven Development with Idris • https://amzn.to/432GZTi Maryann Kisamore • Basics Of Apache Kafka • https://amzn.to/3tkVYFD Mitch Seymour • Mastering Kafka Streams and ksqlDB • https://amzn.to/3HZ18wK Ted Dunning & Ellen Friedman • Streaming Architecture • https://amzn.to/3lhk3Kb Liz Rice • Container Security • https://amzn.to/3oU4iJe Neal Ford • Functional Thinking • https://amzn.to/3DdP35B Petricek & Skeet • Real-World Functional Programming • https://amzn.to/38diF4M Venkat Subramaniam • Functional Programming in Java • https://amzn.to/2WlOXIt https://bsky.app/profile/gotocon.com https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #Types #TypeSystem #ModerTypeSystem #SoftwareDesign #Elmlang #Unison #Unisonlang #Rustlang #Gleam #Swift #TypeScript #Programming #SoftwareEngineering #TodayInTech #KrisJenkins CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Prism: An Impure Functional Language With Typed Effects - Stephen Diehl
Personal blog of Stephen Diehl - Software engineer writing about technology, programming, and the future

Paul Chiusano: The future of software, the end of apps, and why UX designers should care about type theory
[ econ fp tech unison ux ]
Beyond Chat: Bringing Models to the Canvas • Lu Wilson • GOTO 2025
Types and Programming Languages
A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems--and of programming languages from a type-theoretic perspective -- -has important applications in software engineering, language design, high-performance compilers, and security. This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material. The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

Andrej Karpathy: Software Is Changing (Again)
The Story of C++: The World's Most Consequential Programming Language | The Official Story
Typechecker Zoo - Stephen Diehl
Personal blog of Stephen Diehl - Software engineer writing about technology, programming, and the future

Convivial design heuristics for software systems
The theme of this workshop is the proliferation of ideas about calling into question the cultural roots of our current programming languages, and the search for alternative paradigms with other cultural bases.
typelex – An experimental TypeSpec syntax for Lexicon
An experimental TypeSpec syntax for AT Protocol Lexicons. Write Lexicons in a more readable syntax using TypeSpec.

SOLID: The Software Design, Architecture & Testing Wiki
Learn to write testable, flexible, maintainable code with TypeScript.

Malleable Software in the Age of AI - Geoffrey Litt
"Design, Composition, and Performance" by Rich Hickey (2013)
"Design, Composition, and Performance" by Rich Hickey (2013)
Slim Lim: "Concrete syntax matters, actually"
Category Theory for Programmers: The Preface
Table of Contents Part One Category: The Essence of Composition Types and Functions Categories Great and Small Kleisli Categories Products and Coproducts Simple Algebraic Data Types Functors Functo…

Hello Systems by Loris Cro