A lot of people talk about the greatness of Python as a programming language. They are right! But what is Python, and why is it so awesome? Python is a general-purpose, dynamic, high-level language that is easy to learn. Python is also known as a glue language because it plays nicely with other languages, including C, C++, and Fortran. For these reasons it has established a strong foothold as a data analysis language. This makes it popular in science and engineering, and in physics-related fields in particular.
The main criticism of Python is its speed. Python is an interpreted language, which makes it more similar to R, Ruby, and MATLAB than it is to compiled languages like C, C++, or Fortran. Pythonistas everywhere live by the mantra that “premature optimization is bad.” Concerns that it is too slow are often refuted with these arguments:
Developer time—the time the programmer spends programming—is more valuable than execution time.1
Most speed issues can be overcome by using the appropriate data structures and algorithms.
If you really have a need for speed you can always write the performance-critical parts in a compiled language and then expose the functionality to Python.
The most important aspect of Python is it is fun to use! The more you learn, the more you want to learn, and the more you find there is to learn. The Python ecosystem is extraordinarily rich and the community members are, by and large, friendly. Unfortunately, ...