OO is a nuisance. If C just added direct access to the return value space instead pushing the whole return value on stack, OO would have been an esoteric footnote in some theoretical comp sci book. Instead, you get a paradigm which mixes data and code in one name space and completely takes attention away from the duality between data and functions. Oh, and without yield, no one would have heard of Python. You'd just here the gripes about whitespace being overly restrictive from everyone who wants braces. yield is what makes Python elegant. Metaclasses (ie, post-creation templates) and descriptors (ie, pre-creation templates) are actually somewhat cludgy. You understand that you can do everything in Python without ever having to worry about creating a single queue simply because of yield, do you not? Do you really not see how that simplifies code?Breadth-first tree traversal via simple recursion? Show me what other language will let you do that.