3 ms·
This, so much this. I hear Java devs argue in favor of using static types because the type checking and IDE autocomplete lets them write code faster. Dynamica
by EvanPlaice 11y ago
This, so much this.
I hear Java devs argue in favor of using static types because the type checking and IDE autocomplete lets them write code faster.
Dynamically typed languages are great because you don't have to write as much code to provide comparable functionality. The best quality code that's also the easiest to maintain is the code you don't have to write to begin with.
I used to contribute to an OSS library for parsing raw network frames into structured protocol data. 50%-60% of the code was type coercion and design pattern boilerplate to work around the type system.
I saw similar networking code written in JS and was in awe at how little code it took to accomplish the same. It was easily an order of magnitude less code.
Types are good for handling some edge cases. When types are required by default, it just adds a ton of unnecessary noise.
- moonchrome 11y agoI don't agree with that either. I have written a decent chunk of production python code last year (eg. just one module has over >10k lines) because the tools required it and I can't say I'm too pleased with how it scales to complex APIs (eg. manipulating blender scene graph). Java would undoubtedly be much worse but Java is not the only statically typed language, or should we discard all dynamically typed languages because of PHP and Perl. If it's not a script task or glue code I prefer static typing. Java is just a very bad implementation of static typing, it's intentionally dumbed down and limited so that you don't need to learn a lot to understand code - and this results in weak type guarantees, bloated and tedious code base and silly patterns to work arround language limitations. C# is a much better example of a productive statically typed language in the same family, F# is even better - those are just the ones I have experience with. I would have much rather done that blender project in F# over Python if I could (sadly only python API available) Besides even dynamic language authors are seeing value in providing static typing with the recent trend of optional/gradual typing for most dynamic languages.