3 ms·
> Having to start with static types subtly anchors you to your first idea. And the first is typically the worst. Not just that, but dynamic typing conveniently
by kqr 3y ago
> Having to start with static types subtly anchors you to your first idea. And the first is typically the worst.
Not just that, but dynamic typing conveniently allows you to try multiple ideas in parallel. In static languages, you tend to refactor The One Representation for a thing and try multiple ideas sequentially, which may or may not be better.
Of course, none of this is really inherent to the type system -- plenty of Python folks try various shapes for their data sequentially, and you can have multiple representations of the same data in a static language too. But I feel like the languages encourage a particular kind of experimentation, and sometimes either is more helpful than the other.
- Yoric 3y agoThat is a very good point. However, the other side of the coin is that in many Python codebases I've seen, people keep using multiple antagonistic ideas/paradigms in the same code, way past the point where it should have become clear that these ideas are actually incompatible and no amount of heroic hackery will solve the issues.
- mumblemumble 3y agoOne of the core values in the Python community is, "we're all adults here." I think, though, that a lot of Python programmers - particularly less-experienced ones - fail to realize that that typically functions as more of an expectation, perhaps even an obligation, than a liberty.
- capitainenemo 3y agoAll this discussion is kind of interesting to me since in the beginning Python seemed to be focused on being the anti-Perl. Rejecting "There's More Than One Way To Do It" in favour of "There should be one - and preferably only one - obvious way to do it" (IMO they did not find the right balance there in terms of python3 strings) Ultra minimalism on syntax to the point of introducing invisible errors... I suppose this greater leniency on approaches now is simply due to broad adoption.