Lazy to install all of this stuff? Just download WinPython or Anaconda – these are all-in-one installers designed to work out of the box for your scientific needs. To me, Python represents the glue between the academic and the developer world. Python is likely to chip away at Matlab slowly but surely for one reason – newly graduated computer science students are more likely to already know Python. It is one of the favourite languages used to teach.
It’s a Scripting Language!
In the course of my work, I frequently have to quickly script up simulators or quick interface testers to test production code. This is where Python comes into play. The sheer convenience of having everything and anything you could ever possibly need for a tester makes Python an easy choice. You can collect the data via the tester and quickly display a graph of the data via matplotlib. If the work is I/O bound rather than compute bound, Python does the job well. This is a pretty good article on what I think is going on.
However, if it is compute bound and you really need the speediest, look to C/C++. Or you may try one of the alternative Python interpreters, Pypy. The main aim of Pypy is to improve upon the default Python interpreter, CPython.
It’s a Application Programming Language!
You can make games with PyGame. With PyQt, you can basically write a cross-platform GUI application. Another GUI app development framework which gets a lot of love is wxPython. BitTorrent was developed using wxPython. TkInter is another windowing framework. Another app that was created using Python is Calibre, a capable e-book reader.
It’s a Web Development Language!
Dropbox, YouTube, Google, Quora, Reddit, Pinterest, Spotify – they all use Python. Need I say more?
It’s a Calculator!
Python has basically replaced the calculator on my desktop for any advanced calculations. All I need to do is to start the terminal and :
>python >>> import numpy as np >>> np.sqrt(6) 2.4494897427831779
Ok, not so advanced, but you get the idea. Cosine, sine, arctangent, matrices, they’re all there. And it’s right there in the terminal.
For ZeroMQ messaging protocol – You have PyZMQ.
For GPU programming (CUDA-based), you have Continuum Analytics’s Accelerate GPU solution and PyCUDA here.
For QT-based GUIs, you can use PyQT and generate GUIs with a few dozen lines of code.
Anything you can imagine, it probably has a python binding at the very least. Google’s newly-open-sourced TensorFlow for machine learning has Python front and center. There’s a python framework for pretty much anything.
For programmers, the most important thing is to get shit done, so anytime you can leverage on 3rd party libraries, you’re probably going to want to do it.
Oh, and it comes with any respectable desktop linux distribution, so you get it out-of-the-box.
Syntactic Sugar !
Indentation in Python essentially is the curly bracket equivalent in C/C++. This results in code that is generally easier to read and free of the individual programmer’s syntactic quirks. This also results in generally neater code. Other language features like dynamic typing helps a lot in reducing unnecessary syntax. The less code you write, the less probability of error. In fact, Python reminds me of my own pseudo code.
Being easier to learn, Python reduces the time to market.
>>> import this
for the Zen of Python – it kind of illustrates what Python is all about.
Python is free, and many of its IDEs are free!
PyCharm Community is free. This is from one of my favourite IDE developers, JetBrains. Another one is Spyder, which tries to mimic the Matlab programming environment. Spyder comes installed with the WinPython and Anaconda packages. Many of these are cross-platform, and come with modern useful code-completion features.
Python is kept alive by the following companies. The Python source code is all open-source. So it probably isn’t going away anytime soon. Python actually is around 26 years old, so yeah, that’s an eternity in computer software.
Show me the money!
Based on Quartz, here are programming languages listed next to their average annual salary from lowest to highest. Number 3 ain’t bad, considering Objective C is proprietary to Apple. Anyway a lot of Swift seems to be inspired by Python.
It truly is, and it will get even more pervasive as more students graduate with Python in their pocket.