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.