Static Typing

  • Types are checked at compile time
  • Requires explicit or inferred type declarations
  • ✅ Catch errors early, better tooling
  • 🧱 Examples: Java, Go, Rust, TypeScript

Dynamic Typing

  • Types are checked at runtime
  • No need to declare types explicitly
  • ✅ Flexible, fast prototyping
  • ⚠️ Errors only show at runtime
  • 🧪 Examples: JavaScript, Python, Ruby, PHP

This is one dimension of a language’s Typing System Overview.