3 ms·
This is true for any language, strongly typed or otherwise, with or without memory management. The evidence gathered in the last decades is pretty clear: there
by chpmrc 6y ago
This is true for any language, strongly typed or otherwise, with or without memory management. The evidence gathered in the last decades is pretty clear: there is little to no advantage using a strongly typed language over something like Python or Ruby (on mobile so can't look up references but there's really plenty). And that's just looking at bug density, without even considering how quickly you can build something (often thanks to the great ecosystem of packages) or how easier it is to hire decent Python/Ruby/JS devs over, say, C++, Java or Rust.
That said: I wish you the best of luck!
- flavor8 6y ago> The evidence gathered in the last decades Source?
- chpmrc 6y agoI posted a (non exhaustive) list here: https://news.ycombinator.com/item?id=25001953 https://news.ycombinator.com/item?id=25001953
- iainctduncan 6y agoThe smoking gun wasn't really the types to be honest. It was the way you can monkey patch and have massive daisy chains of effects from a simple import statement. Import in Python can pretty much be made to do anything you want...
- buddhiajuke 6y agoBut Python is strongly typed. If you say x=2, type(x) will say “int”. It does suffer from an excessive overloading of operators (“a” times 6 shouldn’t work). But that’s neither here nor there. If Python wasn’t strongly typed, it wouldn’t be conceptually possible to move it towards explicit typing as the current push is. Now, it’s not statically typed. You don’t get to assign values and interpretations to memory addresses. This is what “performant” people usually defend. But _that_ has nothing to do with typing assuming semantic roles in codebases.
- chpmrc 6y agoApologies for the "flexible" usage of the words "strongly typed". Arguably (as someone already pointed out) Python can be considered strongly typed (i.e. doing 1 + "1" won't cast the first operand to string, unlike e.g. JS) although there doesn't seem to be a clear definition of what strongly and weakly typed means (https://en.wikipedia.org/wiki/Strong_and_weak_typing https://en.wikipedia.org/wiki/Strong_and_weak_typing). So let's stick with "statically" typed, which in the case of Python would mean using something like mypy. Here are some references (there might be some overlap): - https://labs.ig.com/static-typing-promise https://labs.ig.com/static-typing-promise - https://danluu.com/empirical-pl/ https://danluu.com/empirical-pl/ - https://vimeo.com/9270320 https://vimeo.com/9270320 - https://medium.com/javascript-scene/the-shocking-secret-about-static-types-514d39bf30a3 https://medium.com/javascript-scene/the-shocking-secret-abou... - https://www.researchgate.net/publication/259634489_An_empirical_study_on_the_impact_of_static_typing_on_software_maintainability https://www.researchgate.net/publication/259634489_An_empiri... (one of the original studies) I hope it's clear I'm not implying that there are no advantages in using a statically typed language, only that it's often seen as a solution to a problem that doesn't originate there. PS: what is up with the downvotes? What is this, Reddit?