Development PracticesType Clash: When Structural and Nominal Systems Collide
Type systems define how we reason about code, enforce safety, and manage complexity — but not all type systems approach these goals the same way. In this talk, I pit structural typing, as in TypeScript, against nominal typing, as in Kotlin, in a practical exploration of real-world scenarios. You’ll see side-by-side examples of how each system handles interoperability, composition, and code evolution, revealing where explicit identities enforce discipline and where shape-based typing unlocks flexibility and expressiveness. By the end, you’ll understand the strengths and trade-offs of each approach — and why, in many situations, structural typing gives you a surprising advantage.
talkDetail.whenAndWhere
Matteo Orlandi
Luca Caputo
When I’m not building polished, production-ready apps, you’ll find me experimenting with new animation techniques, refining codebases to pixel-perfect standards, and sharing what I learn with the developer community. For me, great software isn’t just functional — it’s delightful.
talkDetail.shareFeedback
talkDetail.signInRequired
talkDetail.signInToFeedbackDescription
comments.speakerNotEnabledComments