programmers 've stressed avoiding unwarranted complexity in this bookbut in practiceboth advanced and new tools tend to encourage their own adoption--often for no better reason than programmer' personal desire to demonstrate prowess the net result is that much python code today is littered with these complex and extraneous tools that isnothing is truly "optionalif nothing is truly optional complexity versus power this is why some python old-timers (myself includedsometimes worry that python seems to have grown larger and more complex over time new features added by veteransconvertsand even amateurs may have raised the intellectual bar for newcomers although python' core ideaslike dynamic typing and built-in typeshave remained essentially the sameits advanced additions can become required reading for any python programmer chose to cover these topics here for this reasondespite their omission in early editions it' not possible to skip the advanced stuff if it' in code you have to understand on the other handas mentioned in to most observers python is still noticeably simpler than most of its contemporariesand perhaps only as complex as its many roles require though it' acquired many of the same tools as javac#and ++they tend to be lighter weight in the context of dynamically typed scripting language for all its growth over the yearspython is still relatively easy to learn and use when compared to the alternativesand new learners can often pick up advanced topics as needed and franklyapplication programmers tend to spend most of their time dealing with libraries and extensionsnot advanced and sometimes-arcane language features for instancethe book programming python-- follow-up to this one--deals mostly with the marriage of python to application libraries for tasks such as guisdatabasesand the webnot with esoteric language tools (though unicode still forces itself onto many stagesand the odd generator expression and yield crop up along the waymoreoverthe flipside of this growth is that python has become more powerful when used welltools like decorators and metaclasses are not only arguably "cool,but allow creative programmers to build more flexible and useful apis for other programmers to use as we've seenthey can also provide good solutions to problems of encapsulation and maintenance simplicity versus elitism whether this justifies the potential expansion of required python knowledge is up to you to decide for better or worsea person' skill level often decides this issue by default--more advanced programmers like more advanced tools and tend to forget all good things