Angry Jesus writes:
We all know that python is slower than compiled languages like C. But what can you do about it? Jake VanderPlas, director of research in the physical sciences for the university of Washington's eScience institute, digs into python's internals to explain how it works and what program design choices you can make to use python efficiently.
I don't get why they characterize "forgiving" as a virtue of dynamic typing. I don't want my language to be forgiving. I prefer to be told quite from the start that I'm trying to do nonsense, not some time later when my code fails at run time.
Dynamic typing has advantages, but "forgiving" is not one of them. Forgivingness is a disadvantage. It's a price you pay for the flexibility dynamic typing gives you. It's often a price worth to pay, but it's still a cost, not a benefit.
Exactly. Add on to that the fact if you write 'forgiving' code, you might get to meet your unforgiving boss or his boss!
But ... I'm so proud of my forgiving password check. It not only tolerates typos, it even tells you how to correct them! ;-)
I don't get why they characterize "forgiving" as a virtue of dynamic typing.
On that specific point, they don't. The comment about "forgiving" is a separate sentence to that regarding dynamic typing. They are saying that Python in general is "forgiving".
Whether "forgiving" is a good thing or not I couldn't really say in this case, since I'm not sure in what ways the author means that Python is forgiving (and can't really think of any myself).
Well, it certainly isn't forgiving about changes of indentation. ;-)