It takes a while for something to settle down enough to say this version is going to be the code for the long run.
At that point, solidity in testing and gradual typing can be added, usually starting with the public interface.
Languages where I’ve had to satisfy all type errors in the various fragments of half brained code I’ve written for version 0.0.85 have always felt a little cumbersome. The compiler’s type checker is a perfectionist looking over my shoulder.
(Go is one of those languages. Ruby is not.)