When we look at the famous project management triangle, we can notice that well-established enterprises often forgo speed over quality and cost because ceteris paribus higher speed is associated with increased risk. With Python, this is no longer the case. One of the key advantages of Python is the speed of prototyping and development, without the sacrifice in quality or additional costs.
Why is it so?
Python offers a rich and excellently documented standard library, which means developers would spend less time searching and familiarizing themselves with third-party libraries. But when the standard library is not enough, the Python package repository is the place to look for all sorts of libraries provided by the community, where one can choose from thousands of packages for a broad range of applications. One thing that distinguishes Python from other languages, is the unique philosophy behind the Python language, called the Zen of Python. Its main endeavor is to favor simple over complex, thus making coding with Python a lot easier. The Python philosophy is the cornerstone of the whole Python ecosystem, from the language syntax to the toolset to documentation, hence developing with Python is much simpler, and this makes it quick, cost efficient and reliable. To top it all off, Python is known to be well supported by a wide variety of editor and development environment software. From syntax highlighting, to various hints, to code formatting, to intelligent code analysis - there is everything you need to be sure that your Python code is efficient and bug-free.
Another great thing about Python is its independence. It means that Python runs on the vast majority of platforms, from X86 to ARM to microcontrollers, from Windows to Android to pretty much every platform that has a C compiler. Even more importantly, Python does not rely and depend on a single corporation’s business goals or marketing strategies, meaning lower risk of an installation suddenly becoming unsupported, outdated or even patent encumbered. Python is developed under the supervision of a non-commercial foundation that honors the voice of its users with an exposed and clear decision making process.
But what about performance?
According to a widespread myth, Python is slow or even resource-hungry. And for a large enterprise this can often be a decisive factor. There is definitely some grounds to this claim: as an interpreted language, Python does incur some overhead compared to native code, but the same holds for other languages that are not native to the platform they run on. Nevertheless, optimized Python code may often run at the speed of native code. Recent measurements show that in some workloads Python can outperform Java and even Go, while maintaining a smaller memory footprint. It is possible because a significant part of the standard library is implemented in C, and when performance is at stake it’s possible either to write modules in C and call them from Python, or compile Python modules into native code without even rewriting, by means of a tool called Cython. Not to mention that code written in Python, thanks to its simplicity and clarity, is very easy to port to other languages even by non-Python developers.
One more thing that may not be obvious at first (a pun on a quote from the Zen of Python) is that Python is a pleasure to work with. The recent trend among businesses is to provide their employees with a job that brings joy. And Python fulfills this idea perfectly. Python encourages developers to write code in an almost natural English language with little unnecessary entities. Sometimes, for prototyping algorithms and program structure, developers use pseudo code. With Python, it is not even a thing because you can write “pseudo code” in Python and it will be a valid Python program!
Python allows organizing code into modules in a way that makes even a million-lines-of-code project look like a charm, and imposes few restrictions but provides a lot of advice. In summary, less bulls**t, more fun.
That’s why Python not only helps solve the project management trilemma but also provides your developers with joy … for free.
Feel free to write to me at firstname.lastname@example.org if you would like to discuss this topic more!