<story><title>Why Python is Slow: Looking Under the Hood</title><url>http://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/</url></story><parent_chain><item><author>gregwebs</author><text>&lt;p&gt;&lt;pre&gt;&lt;code&gt;    Dynamic typing makes Python easier to use than C
&lt;/code&gt;&lt;/pre&gt;
I disagree with the implications. The main reasons Python is easier to use is independent of type system. Not having to manually manage memory, for example! Overall it is a higher-level language, whereas C is designed for maximum performance.&lt;p&gt;Dynamic typing is probably preferable to a 40 year old type system. But Python could be easier to use (catch bugs ahead of time!) and execute faster by adding a modern type system. Optional typing (like TypeScript or Facebook&amp;#x27;s new PHP implemntation) would probably be appropriate.</text></item></parent_chain><comment><author>Perseids</author><text>&amp;gt;&amp;gt; Dynamic typing makes Python easier to use than C&lt;p&gt;&amp;gt; Overall it is a higher-level language, whereas C is designed for maximum performance.&lt;p&gt;I agree with most of your points, but on this I think you are comparing apples to oranges. C is not designed for maximum performance, but as a system language and as such only as slim abstraction over assembler. As a &lt;i&gt;side effect&lt;/i&gt; it allows for maximum performance. A more fair comparison (pretty much every widely used language is easier to use than C) would be C++ vs. Python, where in C++ most - if not all - of the higher level abstractions were explicitly designed not to worsen performance compared to low level code. And in my opinion Python is so much easier to use than C++ because it values simplicity and consistency more than efficiency.&lt;p&gt;For example the general loop constructions in Python which are possible because of nice generators and the wonderfully straightforward `yield` construction are unacceptable in C++ as they lack the flexibility to be as efficient as possible in every case.&lt;p&gt;The advantage of dynamic typing only becomes apparent in a third argumentative step; when you try build a language with consistent and efficient abstraction and you end up with something like Haskell whose type system complexity is huge entry barrier. That&amp;#x27;s why &lt;i&gt;I&lt;/i&gt; think dynamic typing is good for Python.</text></comment>
<story><title>Why Python is Slow: Looking Under the Hood</title><url>http://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/</url></story><parent_chain><item><author>gregwebs</author><text>&lt;p&gt;&lt;pre&gt;&lt;code&gt;    Dynamic typing makes Python easier to use than C
&lt;/code&gt;&lt;/pre&gt;
I disagree with the implications. The main reasons Python is easier to use is independent of type system. Not having to manually manage memory, for example! Overall it is a higher-level language, whereas C is designed for maximum performance.&lt;p&gt;Dynamic typing is probably preferable to a 40 year old type system. But Python could be easier to use (catch bugs ahead of time!) and execute faster by adding a modern type system. Optional typing (like TypeScript or Facebook&amp;#x27;s new PHP implemntation) would probably be appropriate.</text></item></parent_chain><comment><author>Spittie</author><text>I&amp;#x27;d love to see optional typing in Python, I wonder if there is any official reasons about why it never got introduced.&lt;p&gt;I very rarely change the type of a variable, so it would be essentially free speed and free speeds for me.&lt;p&gt;I actually wonder, do people use dynamic typing so often? I mean, it&amp;#x27;s nice to do &amp;quot;variable = int(variable)&amp;quot; when I know that I&amp;#x27;m getting an integer in a string, but that&amp;#x27;s probably the only use case can I can think off that doesn&amp;#x27;t just reuse variables for something else.</text></comment>