Re:Clojure at Netflix (2013) [slides]
by yogthos on Wednesday October 31, 2018 @08:11PM
(#18350368)
My experience is that static typing tends to lead to higher coupling and monolithic design, while you tend to break things up more aggressively in a dynamic language like Clojure.
[ Parent
| on HN ]
I understand what you mean, and it's definitely a trade off.
Static typing requires all types to make sense together no matter how small the addition is.
In dynamic typing, we can just add a class/object/field here and there because it'll only be used narrowly anyway. So, it's often fine.
This would be great if we can think of a small example to illustrate this trade off.
One example I can think of is how Ring middleware works. The request map is passed through a series of functions, and each one can modify it in its own way. For example, you could have an authentication library that adds an :identity key, and another that adds a :session key. These libraries can work together without having to know anything about each other.