Also being able to prove the relationship between different parts of the code enables a lot of productivity tooling like IDEs. Simple things like renaming a class or a struct become chores at best in a statically typed language, whereas in dynamic languages there is an element of risk in refactorings like that.
Comment on Unit testing isn't enough. You need static typing too.
beefsack@lemmy.world 1 year ago
I remember my time doing Ruby.
The Ruby community was really great at doing automated testing and it’s actually where I really cut my teeth on testing, but if you go back and look at the tests you’ll find heaps of them are testing and checking types for functions. It almost felt like people were building static typing using automated tests.
Some people bang on about static typing getting in the way of agility, but the reality is that you either end up spending the time creating extra tests, or you end up cutting corners and creating unreliable software which you’ll spend a lot of time troubleshooting down the road.
gnus_migrate@programming.dev 1 year ago
henfredemars@infosec.pub 1 year ago
I really like the mix we have at work with Python. We type all methods, but no typing in the body unless the code is unclear. We treat it more like if it were a statically typed language with type inference. This gives the IDE loads of info to work with for refactoring and warnings. The reality of dynamic typing is more like an implementation detail.
kool_newt@lemm.ee 1 year ago
Check out Crystal, it’s like static typed Ruby.
attn_dfct_dev@programming.dev 1 year ago
Is there a static typed equivalent of Python? Not MyPy, but a static Pythonic language.
fubo@lemmy.world 1 year ago
Some inexperienced programmers hear “static typing” and think “Java”.