Nice comparison between adding type annotations in Clojure vs. Racket.
Not for everyone's tastes but I like optional typing in Racket, Clojure, and Python. I prefer bottom-up development heavily using a repl but once I get ideas working, then adding type annotations provides safety, eases future refactoring efforts, and takes little effort.
I also very much like Haskell, but I probably have a weak coding style in Haskell because I also tend to do repl based coding and just think of getting things working, then in the repl use ":type" to get a new functions type signature and past that into an edit buffer along with the corresponding function. I think that Haskell experts think more of types up-front.
Not for everyone's tastes but I like optional typing in Racket, Clojure, and Python. I prefer bottom-up development heavily using a repl but once I get ideas working, then adding type annotations provides safety, eases future refactoring efforts, and takes little effort.
I also very much like Haskell, but I probably have a weak coding style in Haskell because I also tend to do repl based coding and just think of getting things working, then in the repl use ":type" to get a new functions type signature and past that into an edit buffer along with the corresponding function. I think that Haskell experts think more of types up-front.