On Thursday, April 26, 2018, Eric Snow <ericsnowcurren...@gmail.com> wrote:
> In pondering our approach to future Python major releases, I found > myself considering the experience we've had with Python 3. The whole > Py3k effort predates my involvement in the community so I missed a > bunch of context about the motivations, decisions, and challenges. > While I've pieced some of that together over the years now since I've > been around, I've certainly seen much of the aftermath. For me, at > least, it would be helpful to have a bit more insight into the > history. :) > > With that in mind, it would be worth having an informational PEP with > an authoritative retrospective on the lessons learned from the Python > 3 effort (and transition). Consider it a sort of autobiography, > "memoirs on the python-dev change to Python 3". :) At this point the > transition has settled in enough that we should be able to present a > relatively objective (and consistent) view, while we're not so far > removed that we've forgotten anything important. :) If such a > document already exists then I'd love a pointer to it. > > The document would benefit (among others): > > * python-dev (by giving us a clear viewpoint to inform decisions about > future releases) > * new-comers to Python that want more insight into the language > * folks transitioning from 2 to 3 > * communities that have (or think they have) problems similar to those > we faced in Python 2 > > The PEP doesn't even have to be done all at once, nor by one person. > In fact, there are many viewpoints that would add value to the > document. Hence it would probably make sense to encourage broad > participation and then have a single editor to effect a single voice > in the document. > > The contents of the retrospective document should probably cover a > broad range of topics, since there's so much to learn from the move to > Python 3. To give an indication of what I mean, I've included a rough > outline at the bottom of this message. > > So...I typically strongly avoid making proposals that I'm not willing > to execute. However, in this case I simply do not have enough > experience in the history to feel comfortable doing a good job of it > in a reasonable amount of time (which matters due to the tendency of > valuable info to fade away). :/ I have no expectation that someone > will pick this up, though I do hope since the benefit would be > significant. My apologies in advance if this wasted anyone's time. > > -eric > > > ++++++++++++++++++++++++++++++++ > > I'd hope to see something along the lines of (at least) the following, > in rough order: > > * a concise summary of the document at the top (very meta, I know :) ) > + what were we solving? > + what was the solution? > + why do it that way? > + what went right? > + what went wrong? > + impact on the community > + impact on core dev contribution > * timeline > * key players (and level of involvement) > + old guard core devs > + new guard > + folks brought on for Py3k (e.g. IIRC a swarm of Googlers dove in) > + non-core-devs > * motivations > * expectations (e.g. time frames, community reaction) > * corresponding results > * a summary of what we did nine has a very concise, if incomplete in comparison to six and 2to3, code/namespace/functional summary: https://github.com/nandoflorestan/nine/blob/master/nine/__init__.py https://github.com/benjaminp/six/blob/master/six.py http://python-future.org/overview.html#automatic-conversion-to-py2-3-compatible-code > python-future comes with two scripts called futurize and pasteurize to aid in making Python 2 code or Python 3 code compatible with both platforms (Py2/3). It is based on 2to3 and uses fixers from lib2to3, lib3to2, and python-modernize, as well as custom fixers "Cheat Sheet: Writing Python 2-3 compatible code" http://python-future.org/compatible_idioms.html https://github.com/PythonCharmers/python-future > It provides future and past packages with backports and forward ports of features from Python 3 and 2. > * alternative approaches #!/usr/bin/env python # ~~✓pythonver: > 3.3✓~~ > * what went right (and was it on purpose :) ) > * what went wrong (e.g. io) and why > * how the Py3k project differed from normal python-dev workflow (e.g. > pace, decision-making, communications) > * lasting impact of python-dev > * key things that would have been better if done differently > * key decisions/planning (mostly a priori to the release work) > + scope of backward compatibility > + process (using PEPs with PEPs 30xx guiding) > + schedule > + specific changes (i.e. PEPs 31xx) > + what was left out (and why) > + plans to help library and app authors transition (e.g. 2to3) > + feature/schedule overlap with Python 2 (i.e. 2.6 and 2.7) > + the language moratorium > * things that got missed and why > + unicode/bytes in some stdlib modules (and builtins?) > * things that were overdone (and how that got missed) > + unicode/bytes in some stdlib modules (and builtins?) > * (last but not least) challenges faced by folks working to transition > their exiting code to Python 3 > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/ > wes.turner%40gmail.com >
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com