<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Dec 9, 2011, at 12:43 AM, Guido van Rossum wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Menlo; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">Even if it weren't slow, I still wouldn't use it to automatically<br>convert code at install time; a single codebase is easier to reason<br>about, and easier to support. &nbsp;Users send me tracebacks all the time;<br>having them match the source is a wonderful thing.</blockquote><div><br>Even though 2to3 was my idea, I am gradually beginning to appreciate this approach. I skimmed the docs for "six" and liked it.<br></div></span></blockquote></div><br><div>Actually, maybe I like it a bit better than I thought.</div><div><br></div><div>The biggest issue for the single-codebase approach is 'except ... as ...'. &nbsp;Peppering one's codebase with calls to sys.exc_info() can be a real performance problem, especially on PyPy. &nbsp;Not to mention how ugly it is. &nbsp;For some reason I thought that this syntax was only supported by 2.7 and up; I see now that it's 2.6 and up.</div><div><br></div><div>This is still a problem for 2.5 support, of course, but 2.6-only may not be too far away for many projects; Twisted's support schedule for Python versions typically follows Ubuntu's, which means that we might be able to drop 2.5 as early as 2013! :). &nbsp;Even in the plans that involve 2to3 though, "drop everything prior to 2.6" was always supposed to be step 0, so "single codebase" adds much less of a burden than I thought.</div><div><br></div><div>-glyph</div><div><br></div></body></html>