Falling in love again...


It's been only a couple of days since I stopped working full time. Being on break means I get to explore a whole lot of technologies that I've wanted to but haven't been able to find time for. Python is one of those.

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. boost.org 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.