is a type system a hindrance to programming creatively ?
Just thinking out aloud, for the sake of clarity.
Consider music improvisation. Should a musician stop and restart because one tune was a bit off ?
(I am not talking about reproducing mozart here but improvisation i.e, coming up with new tunes, maybe even a mozart remix)
I think not.
Programming languages without type systems don't complain much. This makes it easier to program despite the obvious errors. This makes it easy to _improvise_ algorithms.
Most improvised music can sound pretty _dirty_. This is why, after an improvisation session , what follows is an editing session which adds *structure* and *corrections* to make it sound _clean_
- unit tests --> music idea
- programming without a type system --> improvisation
- functional testing / benchmarks --> editing the music
Interestingly classical music with all of its "harmony" formulae and chord sequences analogically maps to type system and design patterns
So what do you prefer ?
Smooth jazz ?