The language syntax is simple and easy to learn. The simple syntax encourages best programming practices. Variables are defined when they are used and the data types are easy to understand. As a result Python is being taught as a first computer language in middle schools through colleges.
Python is mainly an imperative programming language supporting both functional programming like C, and object oriented capabilities like C++/Java (python classes). However, Python has some features that allow it to be used as a declarative programming/functional programming language such as its lambda function.
The language has many features that make it ideal for solving fairly complex problems:
- forced structure with indents, optional “;”, and no “{}” for loops/procedures
- quick startup and runs fast (slower than compiled languages, however)
- interpreted, but modules are byte-compiled, which improves speed
- widely used in open source projects
- supports multiple graphical extensions such as GTK for development of GUIs
- included in most Linux distributions
- very extensive set of standard modules
- many add-on modules from many sources
- numeric python and scipy are great for scientific and engineering tasks/data analysis
Most Python code is interpreted and runs in the C-based Python interpreter (cPython). However, there jPython allows Python to run in the Java virtual machine and there is even a micropython that allows a subset of Python to run on bare metal in a microcontroller: https://micropython.org/
Perl is great for small, quick scripts, but Python is better for larger, complex scripts, and for jobs that would have been implemented in C/C++/Java a few years ago, such as signal processing or analysis of large data sets. Some functionality such as regular expressions and system calls are easier in Perl. However, Python is much cleaner, resulting in code that is easier to understand, share, and reuse. If you share it or must maintain it, Python is the preferred language.
Python is also challenging Matlab/Octave for engineering tasks and signal processing. Numeric Python (Nympy), Scientific Python, Astro Python, and Matplotlib (http://scipy.org/) are several of the projects extending Python for scientific processing. Many of the features that can be done in Matlab/Octave can now be done easier in Python, and since Python is a more mainstream language, they can be understood by a wider audience.
Some useful links:
No comments:
Post a Comment