Python! Oh Python!

May 05 2009

Over the last few weeks, I've renewed my acquaintance with Python. There are so many epithets one can apply to it, but elegance is what comes to mind - the fundamental design philosophy emphasizing code readability is the primary contributor to this and its creator Guido van Rossum must be credited with being a real thought leader in this regard. To emphasize readability over other attributes of a programming language may not have seemed like the best idea at the time when Python came into being, but with 20/20 hindsight it was the right choice - the other aspects of a language and its implementation tend to sort themselves out. A similar analogy can be found in the narrations of Michael Abrash about his time working with John Carmack. Carmack would iteratively make improvements to his game engine with a singular focus on creating better algorithms rather than code optimization - again not an easy choice to make, especially when you have the likes of Michael Abrash, king of code optimization at hand, but definitely the correct long term one. This is evidenced by the success of id Tech engines over the last couple of decades.

Python is seeing a resurgence once again - this time around, slowly but steadily many projects are moving to Python (e.g. build system) and many Python projects (e.g. Mercurial, Trac) are being picked up by heavy hitters like Google. The language improvements have been coming at a steady pace. Unlike a lot of languages that either stagnate or get bloated over time, Python has done neither. The core development team has made very good choices in making non-backwards compatible changes in small chunks. Each time they introduce a breaking change, they make it a point to explain in great detail as to the reasons behind the change. One may or may not agree, but it's clear that there is much effort and thought behind each of those changes.

No language is perfect, but Python is hell of a lot closer than most other mainstream scripting / programming languages.

Last modified 3 years ago Last modified on Feb 18, 2016, 4:59:22 PM