Python is another of those languages that really annoy the academics in the crowd because it made what is in my mind a very reasonable design trade off. Their goal was to make the language as usable and easy to learn for newbies as possible, while still providing a powerful language that would still allow the intermediate to advanced programmer to implement any computation using an elegant and regular syntax.

In particular, Python is a slightly higher level language than its main competitor, Perl, and is completely Object-Oriented rather than the object and scoping infrastructures being added as an afterthought to the original language design.

Perl hackers will rant about how their language's quirkiness and flexibility make it more powerful than Python, but in point of fact while it's true that Python will not let you stuff an elephant into a purse, only the most lofty gurus would want to anyway.

Lately I've been very happy with Ruby - it does all of what Python does and eliminates the mandatory indentation issues. Ruby is a more purely object oriented language than Python as everything is an object, even the primitive types.

That having been said Python still gets a place of honor in my tool belt and that's unlikely to change in the foreseeable future.