Developers are liars
Developers are liars.
We say “this can be null” when it’s actually required.
We say “this property is optional” when it’s actually required.
We say “this can’t happen”, when it actually can happen.
Types are fantastic because they expose these lies. Types shine a spotlight on sloppy thinking.
Here’s how: Loose types imply sloppy thinking.
Types encourage me to be *specific* and honest about my expectations.
The result:
Fewer lies.
Fewer bugs.
Clearer thinking.