Python

Bad news about python 1

Bad news about python 2

Quote: "A Python script isn’t compiled first and then executed. Instead, it compiles every time you execute it, so any coding error manifests itself at runtime. This leads to poor performance, time consumption, and the need for a lot of tests. Like, a lot of tests."

Python shifts the attention to learn a small set of instructions in C to a much larger set of concepts and ideas such as immutability. Auto-conversion of types (e.g., to print an integer, we can use %s, %d, or %i.), etc is confusing at times. The index starts from 0 is almost always annoying when we are dealing with matrices and doing unnecessary counting. Mark Lutz's fantastic book "Learning Python" is some 700+pages before we can master this beast. The attention is shifted to learning packages such numpy,scipy,pandas, and json format. Each comes with its own set of rules and regulations. Python is quite loose, if x=(1,2), then we may use "a,b=x" to assign a and b, but it seems it is more logical to use "(a,b) = x". There are subtleties like "L1=[1,2,3]; L2=L1;L1[0]=4;print(L2)", then it is rather shocking to see [4,2,3] for the first time. Now when I write a statement "a=1;b=a;a=2;print(b)", and now we have to spend a bit of time to convince myself that b is still 1. Python tends to oversimplify simple syntax making it difficult to handle general cases: We have to remember two sets of rules.