as book focused on applications instead of core language fundamentalslanguage changes are not always obtrusive here indeedin retrospect the book learning python may have been affected by core language changes more than this book in most cases heremore example changes were probably made in the name of clarity or functionality than in support of itself on the other handpython does impact much codeand the impacts can be subtle at times readers with python backgrounds will find that while core language changes are often simple to applyupdates required for changes in the standard library are sometimes more far reaching chief among thesepython ' unicode strings have had broad ramifications let' be honestto people who have spent their lives in an ascii worldthe impacts of the unicode model can be downright aggravating at timesas we'll see in this bookit affects file contentfile namespipe descriptorssocketstext in guisinternet protocols such as ftp and emailcgi scriptsand even some persistence tools for better or worseonce we reach the world of applications programming as covered in this bookunicode is no longer an optional topic for many or most python programmers of courseunicode arguably never should have been entirely optional for many programmers in the first place indeedwe'll find that things that may have appeared to work in never really did--treating text as raw byte strings can mask issues such as comparison results across encodings (see the grep utility of ' pyedit for prime example of code that should fail in the face of unicode mismatchespython elevates such issues to potentially every programmer' panorama stillporting nontrivial code to is not at all an insurmountable task moreovermany readers of this edition have the luxury of approaching python as their first python and need not deal with existing code if this is your caseyou'll find python to be robust and widely applicable scripting and programming languagewhich addresses head-on many issues that once lurked in the shadows in python limitationsemailcgi there' one exception that should call out here because of its impact on major book examples in order to make its code relevant to the widest possible audiencethis book' major examples are related to internet email and have much new support in this edition for internationalization and unicode in this domain ' pymailgui and ' pymailcgiand all the prior examples they reusefall into this category this includes the pyedit text editor--now unicode-aware for filesdisplayand greps on this frontthere is both proverbial good news and bad the good news is that in the endwe will be able to develop the feature-rich and fully internationalized pymailgui email client in this bookusing the email package as it currently exists this will include support for arbitrary encodings in both text content and message headersfor preface xxxiii