Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #87540

Re: Python 2 to 3 conversion - embrace the pain

References (2 earlier) <mailman.409.1426476166.21433.python-list@python.org> <873855tts4.fsf@jester.gateway.sonic.net> <mailman.411.1426484388.21433.python-list@python.org> <55068cb0$0$12923$c3e8da3$5496439d@news.astraweb.com> <8761a1gxhq.fsf@jester.gateway.sonic.net>
From INADA Naoki <songofacandy@gmail.com>
Date 2015-03-16 18:13 +0900
Subject Re: Python 2 to 3 conversion - embrace the pain
Newsgroups comp.lang.python
Message-ID <mailman.433.1426497226.21433.python-list@python.org> (permalink)

Show all headers | View raw


google-api-client has ported from PY2 to PY2/3 recently.
https://github.com/google/google-api-python-client

It has 4000 lines of code and 3200 lines of tests.  It is legacy
library. It is indented by 2 spaces
since it was created before Google changes their coding style.

There are two major pull request: automatic change by modernize and
heuristic changes.
https://github.com/google/google-api-python-client/pull/62
https://github.com/google/google-api-python-client/pull/64

I feel this is reasonable effort, not bad.


Another experience is porting Flask application in my company from
Python 2 to Python 3.
It has 26k lines of code and 7.6k lines of tests.

Since we don't need to support both of PY2 and PY3, we used 2to3.
2to3 changes 740 lines. I had to replace google-api-client with
requests+oauthlib since
it had not supported PY3 yet.

After that, we encountered few trouble with untested code. But Porting
effort is surprisingly small.
We're happy now with Python 3.  We can write non-ascii string to log
without fear of UnicodeError.
We can use csv with unicode without hack.


Porting *modern* *application* code to *PY3 only* is easy, while
porting libraries on the edge of
bytes/unicode like google-api-client to PY2/3 is not easy.

I think application developers should use *only* Python 3 from this year.
If we start moving, more library developers will be able to start
writing Python 3 only code from next year.

On Mon, Mar 16, 2015 at 5:25 PM, Paul Rubin <no.email@nospam.invalid> wrote:
> Steven D'Aprano <steve+comp.lang.python@pearwood.info> writes:
>> It may, or may not, turn out that in hindsight there might have been better
>> ways to manage the Python2-3 transaction. Let's be honest, a lot of the
>> changes could have been introduced incrementally...
>
> Why did the changes have to be introduced at all?
>
>> I suspect that without the discipline and bloody-mindedness to just say NO
>> to requests to delay removal, Python would follow all those other languages
>> that have an ever-increasing pile of cruft that can never be removed because
>> it will break somebody's code. Design mistakes, obsolete features,
>> misspellings, "it's like that for historical reasons", and other nasties.
>
> The idea of "maturity" (an advertised feature of Python 2 back in the
> day) is that the pile of features is no longer growing so fast.  Right
> now I'm messing with some C code written in the 1980s and it still works
> fine.  I have a hard time imagining using Python 3 for anything.  Python
> 2 has its cruft but it's familiar and comfortable, and Python 3 gets
> minimal benefit for most of the breakage that it did (possible exception
> of the Unicode changes).  It still has most of the same mistakes and
> warts.  If I wanted to get away from those, I'd use Go or Ocaml or
> Erlang or Haskell or Javascript (possibly through a compiler like
> Purescript) or whatever.
>
> I'll see if I can remember what it was but I found some annoying
> incompatibility just a week or so ago that I don't think 2to3 would have
> caught, making me scared of Python 3 all over again.  I still think
> CPython should have stayed with Python 2 forever, and Python 3 should
> have been PyPy-based, letting PyPy drive its design, so that it could
> have introduced bigger changes with bigger benefits.  As we're seeing,
> even small incompatibilities and breakage cause big resistance, so if
> you're going to break stuff at all, you might as well go big.  Most old
> programs will never be ported either way.
> --
> https://mail.python.org/mailman/listinfo/python-list



-- 
INADA Naoki  <songofacandy@gmail.com>

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-16 14:22 +1100
  Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-15 22:07 -0700
    Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-16 16:39 +1100
      Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-15 23:17 -0700
        Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-16 19:00 +1100
          Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-16 01:31 -0700
            Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-17 00:05 +1100
              Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-17 00:29 +1100
            Re: Python 2 to 3 conversion - embrace the pain Terry Reedy <tjreedy@udel.edu> - 2015-03-16 13:59 -0400
      Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-16 18:56 +1100
        Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-16 01:25 -0700
          Re: Python 2 to 3 conversion - embrace the pain INADA Naoki <songofacandy@gmail.com> - 2015-03-16 18:13 +0900
            Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-16 22:55 +1100
          Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-17 01:25 +1100
            Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-16 15:36 -0700
              Re: Python 2 to 3 conversion - embrace the pain Terry Reedy <tjreedy@udel.edu> - 2015-03-16 22:28 -0400
                Re: Python 2 to 3 conversion - embrace the pain wxjmfauth@gmail.com - 2015-03-17 01:31 -0700
              Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-17 22:26 +1100
                Re: Python 2 to 3 conversion - embrace the pain wxjmfauth@gmail.com - 2015-03-17 07:03 -0700
                Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-17 15:35 +0100
                Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-19 16:23 -0700
                Re: Python 2 to 3 conversion - embrace the pain Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-03-19 22:03 -0400
                Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-20 03:54 +0100
          Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 11:20 -0600
            Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-17 07:36 +1100
              Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 20:14 -0600
              Re: Python 2 to 3 conversion - embrace the pain Cameron Simpson <cs@zip.com.au> - 2015-03-17 17:47 +1100
          Re: Python 2 to 3 conversion - embrace the pain Terry Reedy <tjreedy@udel.edu> - 2015-03-16 13:47 -0400
          Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-16 18:14 +0000
          Re: Python 2 to 3 conversion - embrace the pain INADA Naoki <songofacandy@gmail.com> - 2015-03-17 04:41 +0900
          Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-17 09:02 +1100
            Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-17 04:04 +0100
              Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 21:33 -0600
                Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-17 19:36 +1100
              Re: Python 2 to 3 conversion - embrace the pain Ben Finney <ben+python@benfinney.id.au> - 2015-03-17 14:42 +1100
                Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-17 05:30 +0100
                Re: Python 2 to 3 conversion - embrace the pain Cameron Simpson <cs@zip.com.au> - 2015-03-18 08:53 +1100
              Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-17 14:49 +1100
                Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-17 05:26 +0100
                Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-17 04:36 +0000
                Re: Python 2 to 3 conversion - embrace the pain Grant Edwards <invalid@invalid.invalid> - 2015-03-17 14:50 +0000
                Re: Python 2 to 3 conversion - embrace the pain wxjmfauth@gmail.com - 2015-03-17 08:15 -0700
                Re: Python 2 to 3 conversion - embrace the pain Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-03-17 18:36 -0400
                Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-17 22:41 +0000
                Re: Python 2 to 3 conversion - embrace the pain Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-03-18 08:04 -0400
                Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-18 02:02 +0100
          [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 19:46 -0600
            Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-03-17 19:39 +1100
              Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-17 09:02 -0600
            Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-19 16:37 -0600
              Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain wxjmfauth@gmail.com - 2015-03-20 02:40 -0700
                Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-20 15:59 +0100
                Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-20 16:03 +0100
                Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-20 15:42 +0000
                Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-21 04:13 +1100
                Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain wxjmfauth@gmail.com - 2015-03-20 12:21 -0700
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-17 12:57 +1100
            Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-16 19:45 -0700
              Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 21:05 -0600
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 20:07 -0600
          Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-17 02:21 +0000
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Ben Finney <ben+python@benfinney.id.au> - 2015-03-17 13:40 +1100
            Package manager cooperation? (was Weaknesses of distro package managers) Rustom Mody <rustompmody@gmail.com> - 2015-03-16 20:09 -0700
              Re: Package manager cooperation? (was Weaknesses of distro package managers) Michael Torrie <torriem@gmail.com> - 2015-03-16 21:32 -0600
              Re: Package manager cooperation? (was Weaknesses of distro package managers) Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-17 04:03 +0000
              Re: Package manager cooperation? (was Weaknesses of distro package managers) Chris Angelico <rosuav@gmail.com> - 2015-03-17 15:18 +1100
                Re: Package manager cooperation? (was Weaknesses of distro package managers) wxjmfauth@gmail.com - 2015-03-17 01:44 -0700
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 20:51 -0600
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-17 03:01 +0000
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Michael Torrie <torriem@gmail.com> - 2015-03-16 21:05 -0600
            Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Mario Figueiredo <marfig@gmail.com> - 2015-03-17 04:07 +0100
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-03-17 03:17 +0000
          Re: [OT] Weaknesses of distro package managers - was Re: Python 2 to 3 conversion - embrace the pain Alexander <xr.lists@gmail.com> - 2015-03-17 16:44 +1300
        Re: Python 2 to 3 conversion - embrace the pain Chris Angelico <rosuav@gmail.com> - 2015-03-16 19:51 +1100
    Re: Python 2 to 3 conversion - embrace the pain Terry Reedy <tjreedy@udel.edu> - 2015-03-16 04:53 -0400
      Re: Python 2 to 3 conversion - embrace the pain Paul Rubin <no.email@nospam.invalid> - 2015-03-16 02:27 -0700

csiph-web