Am I the only one who feels like dynamically typed #programming languages are becoming obsolete? Type systems are more expressive and type inference is more ergonomic, so there seems to be few arguments in favor of weaker typing.
@icefox Common Lisp user here.
There's been a lot of improvement in the Common Lisp world regarding typing, especially regarding compile-time type inference. You can write bits of Lisp code with all types declared up front, and therefore get statically typed code that 1) performs better because of fewer runtime type checks, 2) is safer because type mismatches are signaled at compile time.
This solution doesn't prevent you from dynatyping whenever you need it to or enjoying other Lisp boons.
More expressive than earlier static type systems. Consider C or Pascal's type system, then consider C#/Java, then consider Rust's, then consider Haskell's. The amount of metaprogramming and reasoning about types and their properties gets increasingly more sophisticated, so the guarantees you can make also gets more and more comprehensive. Now you have sum types, product types, dynamic dispatch, generics, higher-kinded data types, and so on. C has `void *` and that's all you get.