Dynamic Typing

Dynamic Typing is like stuffing all your data into a pile of <String, Object>HashMaps and calling it a day.

It's fucking insane.

  • You lost all compile-time checks.
  • You will have to implement a million unit tests where a type system would have made these guarantees.
  • You literally have to find a way to exercise every single code path in your system in order to avoid the simplest of type mistakes. In this sense, you are forced to write exhaustive tests.
  • It's impossible, just from looking at a function, to know with any certainty what values are provided or generated.
  • Given a variable, it's impossible to know the valid range of values it may contain.