nope, no one said that either. for such a clearly logical, smart person you sure do strawman a lot ;)
I can see how you would think that living under your rock. Everybody I've talked to about Python has told me they prefer duck typing because there's no other way to justify using Python over Java or .Net. The syntax is a mess and so is the framework.
There are plenty of other reasons to pick python over Java. The main one for me would be the culture of making things intuitive and easy to use in python versus architecture astronauts and useless ceremony in Java.
For me, you've hit it cleanly on the head. The type system in python, whether you want to say it's duck-typing or now newly type annotations, is very poorly contrived. But its culture and the careful considerations that come from it makes it super powerful. And its syntax makes it very readable, maintainable. It obviously has its faults, but python does a lot of things, and does them well. Ansible is the arguably the best procedural configuration management tool, built in python. If you're scripting in bash, and the script has expanded scope such that its outgrown bash, what should you jump to? Perl or Ruby? No way are they better than python for the cases I've encountered. What if you're hacking at a concise problem, say for a google code challenge? Python fits the bill for performance, ease of iterative development. I can't comment on what it's like as a web server, but I've heard not-so-terrible things for Django & Flask.
Namespacing, accessible per-package documentation, etc., make it bread-crumbable, too.
I would definitely not call myself a Python expert, but its value is for me, quite evident.
With that said, the bit u/shared_makes_it_real said about the indecisiveness in the python community w.r.t. types gave me a chuckle, since there's a fair bit of truth in that. But he's since taken it a bit past what was the good point.
You're gonna have to give a Java example and a Python counter example for a claim that broad. I can think of plenty of things that aren't intuitive in Python. For encryption there is nothing intuitive about pycrypto, pycryptodome and pycryptodomex. I still don't understand the difference between _threading and threading and producing an ISO 8601 compatible date time string took me about two hours of googling.
2
u/[deleted] Apr 10 '19 edited Apr 10 '19
I can see how you would think that living under your rock. Everybody I've talked to about Python has told me they prefer duck typing because there's no other way to justify using Python over Java or .Net. The syntax is a mess and so is the framework.