The Holy Grail
As of today, I do not think there is a better general purpose language in existence than Python. With few exceptions, it just feels “right”, and without fail writing it makes me happy. Here’s just a couple of my favorite features:
Clean syntax
Python eschews block delimiters in favor of strict indentation rules, which both keeps the code more readable, and forces good formatting. It also requires a minimum of special characters, enhancing readability even further. I work with Perl extensively in my day job, and just look at how much grosser it looks than the equivalent Python:
if ($enemy == 'klingon') { firePhasers(); } else { openHailingFrequencies(); }
if enemy == 'klingon': firePhasers() else: openHailingFrequencies()
Implementational flexibility
I’m not sure that’s actually a word, but what I mean to say is that Python is a solid choice no matter the design approach you want to take. Writing a simple procedural script? Python does that. Taking an object-oriented approach? Python does that too. Want to dabble with a functional style? Oh yeah, Python’s got your back.
While the purists might say Python isn’t the ideal choice for any of those scenarios, I say it’s probably good enough, and in the real world I’d rather be an expert in one language than a novice in three.
Extensive PACKAGE library
I’m continually amazed at how much functionality is included in Python’s standard library. It makes writing code so much quicker. And if a feature isn’t in a default package, there is a massive ecosystem of third party libraries.
In my next couple of posts I’ll share a few of my favorite of these packages.
To Be Fair
Python isn’t perfect, and there are a couple things I don’t care for. For example, take its ternary syntax:
action = 'punch' if captain == 'Kirk' else 'talk'
I’m generally a fan of ternary operators because of their concision (which is a word I just learned), but the ordering of this construction feels awkward. See, I can be unbiased!