This feels like a straw man argument against static typing. No statically typed language I use suffers from this because they have great data structures and generics.
Languages such as Rust that lean on inference are an absolute joy to program in.
Languages such as Rust that lean on inference are an absolute joy to program in.
That said, there's the solution: type level integers.
(That also said, Rust's String type isn't an array, because it's mutable, so the size can't be a part of the type)