4 ms·
I think there's a couple of steps here that make it not a cycle: - Lots of languages used static typing for implementation ease/ no need for VM (probably not a
by rtpg 10y ago
I think there's a couple of steps here that make it not a cycle:
- Lots of languages used static typing for implementation ease/ no need for VM (probably not as much for safety issues, given the many failures of C's type system). Also, lack of GC meant that memory management is a big deal, and types and memory management are pretty linked.
- It's verbose though, and you can still easily make mistakes, so dynamic languages offer both cleaner code and the safety checks weren't that useful anyways (again, this is from C/Java land. Null pointer exceptions!).
- Newer static languages offer even better type systems that catch an order of magnitude more bugs. And type inference means that it doesn't affect legibility nearly as much.
So we're basically progressing on all axes at once. Language design isn't zero-sum, luckily.