← Graph

Runtime Types vs Static Types

concept 1 connections

Debate framed in Joel Drapper's talk: static type checking (Sorbet, RBS+Steep) requires complete annotation or inference over the whole system, is hard to combine with metaprogramming, and roughly doubles the code written — bugs scale with lines of code, so more annotations means more surface area. Runtime types (e.g. via Literal) enforce at object boundaries, are always compatible with existing code, require no migration, work with metaprogramming, fail fast with great error messages, and give ~80% of the safety for a fraction of the effort — the 'Goldilocks' middle ground.

category
practice
about
Runtime Types vs Static Types concept
Central argument of the talk.

Provenance

Read by
3 extractions