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


Groups > comp.lang.python > #84181 > unrolled thread

Python is DOOMED! Again!

Started bySteven D'Aprano <steve+comp.lang.python@pearwood.info>
First post2015-01-22 15:30 +1100
Last post2015-01-30 02:11 +0000
Articles 20 on this page of 277 — 34 participants

Back to article view | Back to comp.lang.python


Contents

  Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-22 15:30 +1100
    Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 15:43 +1100
    Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-21 21:35 -0800
      Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-21 21:56 -0800
      Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 06:12 +0000
    Re: Python is DOOMED! Again! Nicholas Cole <nicholas.cole@gmail.com> - 2015-01-22 05:50 +0000
    Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 16:56 +1100
    Re: Python is DOOMED! Again! Ethan Furman <ethan@stoneleaf.us> - 2015-01-21 22:02 -0800
      Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-22 18:23 +1100
        Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 09:10 +0100
          Re: Python is DOOMED! Again! Nicholas Cole <nicholas.cole@gmail.com> - 2015-01-22 09:37 +0000
            Re: Python is DOOMED! Again! alex23 <wuwei23@gmail.com> - 2015-01-23 20:10 +1000
          Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 21:09 +1100
            Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 10:37 +0000
              Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 21:44 +1100
                Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 11:06 +0000
              Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 12:24 -0800
            Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 01:57 +1100
              Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 02:13 +1100
          Python is DOOMED! Again! Nicholas Cole <nicholas.cole@gmail.com> - 2015-01-22 10:46 +0000
          Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 21:50 +1100
            Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 11:12 +0000
              Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 23:14 +1100
          Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 01:16 +1100
            Re: Python is DOOMED! Again! Jon Ribbens <jon+usenet@unequivocal.co.uk> - 2015-01-22 14:33 +0000
            Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 02:11 +1100
              Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 21:59 +1100
                Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 22:38 +1100
                  Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-24 17:35 +1100
                    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-24 14:42 +0000
                      Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-25 03:00 +1100
                        Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-25 03:27 +1100
                          Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-25 04:31 +1100
                            Re: Python is DOOMED! Again! Tim Chase <python.list@tim.thechases.com> - 2015-01-24 12:46 -0600
                              Re: Python is DOOMED! Again! Rustom Mody <rustompmody@gmail.com> - 2015-01-24 10:59 -0800
                              Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-25 13:22 +1100
                            Re: Python is DOOMED! Again! alister <alister.nospam.ware@ntlworld.com> - 2015-01-24 21:14 +0000
                              Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-24 14:51 -0700
                Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-24 23:30 +0100
                Re: Python is DOOMED! Again! BartC <bc@freeuk.com> - 2015-01-26 17:00 +0000
                  Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-27 11:22 +1100
            Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-22 11:25 -0800
              Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 19:56 +0000
              Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 12:41 +1100
            Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-22 14:24 -0700
              Re: Python is DOOMED! Again! Rustom Mody <rustompmody@gmail.com> - 2015-01-22 18:59 -0800
                Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-23 00:11 -0800
                Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-23 09:28 -0700
              Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 16:37 +1100
          Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-22 11:23 -0800
        Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 00:42 -0800
          Re: Python is DOOMED! Again! Marko Rauhamaa <marko@pacujo.net> - 2015-01-22 12:05 +0200
            Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-22 21:13 +1100
            Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 18:11 +0000
          Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 10:31 +0000
            Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 12:23 -0800
              Re: Python is DOOMED! Again! MRAB <python@mrabarnett.plus.com> - 2015-01-22 20:46 +0000
              Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 22:06 +0100
      Re: Python is DOOMED! Again! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-02-08 00:45 +0000
        Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-02-08 12:01 +1100
          Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-08 18:55 +1100
            Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-02-08 19:21 +1100
        Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-02-08 01:31 -0700
          Re: Python is DOOMED! Again! Marko Rauhamaa <marko@pacujo.net> - 2015-02-08 12:17 +0200
    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 06:22 +0000
    Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-21 22:25 -0800
      Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-21 22:48 -0800
        Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 00:24 -0800
          Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 08:40 +0000
            Re: Python is DOOMED! Again! Grant Edwards <invalid@invalid.invalid> - 2015-01-23 03:40 +0000
          Re: Python is DOOMED! Again! Terry Reedy <tjreedy@udel.edu> - 2015-01-22 14:20 -0500
    Re: Python is DOOMED! Again! Nicholas Cole <nicholas.cole@gmail.com> - 2015-01-22 07:40 +0000
    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 09:10 +0000
    Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 18:03 +0000
      Re: Python is DOOMED! Again! Marko Rauhamaa <marko@pacujo.net> - 2015-01-22 21:08 +0200
        Re: Python is DOOMED! Again! wxjmfauth@gmail.com - 2015-01-23 01:19 -0800
      Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 16:34 +1100
    Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-22 12:14 -0600
      Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 12:38 -0800
    Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 18:23 +0000
    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 18:28 +0000
      Re: Python is DOOMED! Again! Marko Rauhamaa <marko@pacujo.net> - 2015-01-22 21:16 +0200
        Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-22 11:36 -0800
        Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 11:16 +1100
          Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-23 06:29 +0000
      Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 12:44 -0800
        Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 20:50 +0000
        Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 23:25 +0100
          Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 17:06 -0800
            Re: Python is DOOMED! Again! Terry Reedy <tjreedy@udel.edu> - 2015-01-22 22:59 -0500
            Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 15:23 +1100
              Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-23 19:00 -0800
                Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-24 18:48 +1100
                  Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-24 09:30 +0000
                  Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-24 15:20 -0800
                    Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-25 10:30 +1100
                      Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-25 00:39 +0100
                        Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-25 10:44 +1100
                    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-24 23:55 +0000
                      Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-24 17:00 -0800
                        Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-25 02:28 +0000
                    Re: Python is DOOMED! Again! wxjmfauth@gmail.com - 2015-01-25 10:57 -0800
              Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-26 10:01 -0500
                Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-27 11:11 +1100
                  Re: Python is DOOMED! Again! Dan Sommers <dan@tombstonezero.net> - 2015-01-27 01:09 +0000
                    Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-27 17:36 +1100
                      Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-27 18:59 +1100
                        Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-27 19:03 +1100
                      Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-27 12:26 -0500
                      Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-27 17:40 +0000
                  Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-26 17:10 -0800
                    Re: Python is DOOMED! Again! Steven D'Aprano <steve@pearwood.info> - 2015-01-27 06:32 +0000
                  Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-27 12:35 -0500
                  Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-27 12:37 -0500
                    Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-27 18:59 +0100
                      Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-28 07:40 +1100
                        Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-27 21:58 +0100
                          Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-28 08:08 +1100
                            Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-27 22:19 +0100
                              Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-28 08:24 +1100
                                Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-27 22:35 +0100
                                  Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-27 22:39 +0100
                                  Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-28 08:53 +1100
                          Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-28 13:05 +1100
                      Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-28 12:26 +1100
                        Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-28 08:10 -0600
                        Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-28 16:04 +0100
                          Re: Python is DOOMED! Again! wxjmfauth@gmail.com - 2015-01-28 07:40 -0800
                          Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-28 10:33 -0700
                            Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-29 11:37 +1100
                              Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-29 11:43 +1100
                              Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-29 09:34 +0100
                                Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-29 09:30 -0700
                                Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-30 03:41 +1100
                          Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-28 18:16 +0000
                            Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-29 09:23 +0100
                              Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-29 08:49 +0000
                              Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-30 03:11 +1100
                                Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-29 13:12 -0800
                                Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-30 19:36 +0100
                                  Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-01 14:06 +1100
                                Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-30 19:42 +0100
                                  Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-30 14:50 -0700
                          Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-28 12:34 -0600
                          Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-28 12:36 -0600
                          Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-29 09:08 -0500
                            Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-30 02:56 +1100
                              Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-29 13:23 -0500
                                Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-31 22:56 +1100
                                  Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-02-01 01:53 +1100
                                    Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-01 14:16 +1100
                                      Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-02-01 14:46 +1100
                                      Re: Python is DOOMED! Again! Ethan Furman <ethan@stoneleaf.us> - 2015-01-31 20:31 -0800
                                        dunder-docs (was Python is DOOMED! Again!) Rustom Mody <rustompmody@gmail.com> - 2015-01-31 21:36 -0800
                                          Re: dunder-docs (was Python is DOOMED! Again!) Ethan Furman <ethan@stoneleaf.us> - 2015-02-01 00:12 -0800
                                          Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 03:20 +1100
                                            Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 03:55 +1100
                                              Re: dunder-docs (was Python is DOOMED! Again!) Ian Kelly <ian.g.kelly@gmail.com> - 2015-02-01 10:31 -0700
                                            Re: dunder-docs (was Python is DOOMED! Again!) Rustom Mody <rustompmody@gmail.com> - 2015-02-01 19:52 -0800
                                              Re: dunder-docs (was Python is DOOMED! Again!) Rustom Mody <rustompmody@gmail.com> - 2015-02-01 20:04 -0800
                                                Re: dunder-docs (was Python is DOOMED! Again!) Rustom Mody <rustompmody@gmail.com> - 2015-02-01 20:22 -0800
                                            Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-02 17:55 +1300
                                              Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 18:15 +1100
                                                Re: dunder-docs (was Python is DOOMED! Again!) Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-01 23:41 -0800
                                                  Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 23:06 +1100
                                                    Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 23:09 +1100
                                                      Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 00:58 +1300
                                                    Re: dunder-docs (was Python is DOOMED! Again!) Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-02 05:00 -0800
                                                      Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-03 01:07 +1100
                                                        Re: dunder-docs (was Python is DOOMED! Again!) Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-03 01:24 -0800
                                                          Re: dunder-docs (was Python is DOOMED! Again!) Marko Rauhamaa <marko@pacujo.net> - 2015-02-03 12:38 +0200
                                                            Re: dunder-docs (was Python is DOOMED! Again!) Chris Angelico <rosuav@gmail.com> - 2015-02-03 21:49 +1100
                                                              Re: dunder-docs (was Python is DOOMED! Again!) Marko Rauhamaa <marko@pacujo.net> - 2015-02-03 13:27 +0200
                                                                Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 10:12 +1300
                                                                  Re: dunder-docs (was Python is DOOMED! Again!) Marko Rauhamaa <marko@pacujo.net> - 2015-02-03 23:28 +0200
                                                                    Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 11:43 +1300
                                                                      Re: dunder-docs (was Python is DOOMED! Again!) Marko Rauhamaa <marko@pacujo.net> - 2015-02-04 01:32 +0200
                                                                        Re: dunder-docs (was Python is DOOMED! Again!) Chris Angelico <rosuav@gmail.com> - 2015-02-04 10:39 +1100
                                                                        Re: dunder-docs (was Python is DOOMED! Again!) Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-02-03 23:41 +0000
                                                                        Re: dunder-docs (was Python is DOOMED! Again!) Ethan Furman <ethan@stoneleaf.us> - 2015-02-03 15:55 -0800
                                                                      Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-04 13:30 +1100
                                                                  Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-04 12:57 +1100
                                                                    Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 19:04 +1300
                                                          Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-04 04:40 +1100
                                                            Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 10:39 +1300
                                                            Re: dunder-docs (was Python is DOOMED! Again!) Ian Kelly <ian.g.kelly@gmail.com> - 2015-02-03 15:04 -0700
                                                              Re: dunder-docs (was Python is DOOMED! Again!) Rick Johnson <rantingrickjohnson@gmail.com> - 2015-02-03 18:31 -0800
                                                            Re: dunder-docs (was Python is DOOMED! Again!) Chris Angelico <rosuav@gmail.com> - 2015-02-04 09:19 +1100
                                                              Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-04 13:30 +1100
                                                                Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-04 15:58 +1100
                                                                  Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 19:22 +1300
                                                                Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 19:22 +1300
                                                    Re: dunder-docs (was Python is DOOMED! Again!) Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-02 05:02 -0800
                                                      Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-03 01:20 +1100
                                                        Re: dunder-docs (was Python is DOOMED! Again!) Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-03 01:25 -0800
                                                    Re: dunder-docs (was Python is DOOMED! Again!) Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-04 00:32 +1300
                                            Re: dunder-docs (was Python is DOOMED! Again!) Vito De Tullio <vito.detullio@gmail.com> - 2015-02-02 06:26 +0100
                                              Re: dunder-docs (was Python is DOOMED! Again!) Rustom Mody <rustompmody@gmail.com> - 2015-02-02 04:27 -0800
                                                Re: dunder-docs (was Python is DOOMED! Again!) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 23:43 +1100
                                          Re: dunder-docs (was Python is DOOMED! Again!) Chris Angelico <rosuav@gmail.com> - 2015-02-02 07:45 +1100
                                          Re: dunder-docs (was Python is DOOMED! Again!) Emile van Sebille <emile@fenx.com> - 2015-02-01 12:51 -0800
                                      Re: Python is DOOMED! Again! Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-02-01 11:35 -0500
                                  Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-31 22:12 -0800
                                    Re: Python is DOOMED! Again! Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-01-31 22:54 -0800
                                      Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 03:34 +1100
                                        Re: Python is DOOMED! Again! Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-01 08:54 -0800
                                        Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 04:09 +1100
                                        Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-02-01 14:02 -0800
                                      Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-02-01 14:27 -0800
                                        Re: Python is DOOMED! Again! Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-01 14:52 -0800
                                          Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 13:03 +1100
                                          Re: Python is DOOMED! Again! Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-02 18:46 +1300
                                    Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 03:31 +1100
                                      Re: Python is DOOMED! Again! Devin Jeanpierre <jeanpierreda@gmail.com> - 2015-02-01 09:45 -0800
                                      Re: Python is DOOMED! Again! Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2015-02-02 18:19 +1300
                                        Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-02-02 16:38 +1100
                                          Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-02-01 22:07 -0800
                                            Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-02-02 17:16 +1100
                                              Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-02-01 22:25 -0800
                                            Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-02-02 18:18 +1100
                                              Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-02-01 23:43 -0800
                                                Re: Python is DOOMED! Again! Rustom Mody <rustompmody@gmail.com> - 2015-02-02 04:12 -0800
                                      Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-02-01 22:12 -0800
                              Re: Python is DOOMED! Again! wxjmfauth@gmail.com - 2015-01-29 10:53 -0800
                              Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-29 18:54 +0000
                                Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-30 19:50 +0100
                                  Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-30 13:00 -0600
                    Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-28 12:09 +1100
        Re: Python is DOOMED! Again! Terry Reedy <tjreedy@udel.edu> - 2015-01-22 22:57 -0500
    Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 05:33 +1100
      Re: Python is DOOMED! Again! Marko Rauhamaa <marko@pacujo.net> - 2015-01-22 21:22 +0200
        Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-22 13:43 -0600
        Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 20:56 +0100
        Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-22 14:31 -0600
        Re: Python is DOOMED! Again! Skip Montanaro <skip.montanaro@gmail.com> - 2015-01-22 14:32 -0600
        Re: Python is DOOMED! Again! Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-22 13:08 -0800
          Re: Python is DOOMED! Again! Marko Rauhamaa <marko@pacujo.net> - 2015-01-22 23:25 +0200
    Re: Python is DOOMED! Again! random832@fastmail.us - 2015-01-22 13:41 -0500
      Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 20:10 +0100
        Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 20:53 +0100
          Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 21:03 +0100
            Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-23 01:40 +0100
              Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-22 17:31 -0800
              Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 14:53 +1100
                Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-23 06:38 +0000
                Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-24 02:00 +0100
                  Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-24 16:51 +1100
                    Re: Python is DOOMED! Again! Nicholas Cole <nicholas.cole@gmail.com> - 2015-01-24 09:04 +0000
                Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-24 12:15 +1100
                Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-24 14:40 +0000
            Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 12:00 +1100
            Re: Python is DOOMED! Again! Emile van Sebille <emile@fenx.com> - 2015-01-22 17:14 -0800
            Re: Python is DOOMED! Again! Terry Reedy <tjreedy@udel.edu> - 2015-01-22 22:34 -0500
    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-22 19:05 +0000
    Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 19:07 +0000
      Re: Python is DOOMED! Again! Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-23 15:51 +1100
    Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-22 19:09 +0000
    Re: Python is DOOMED! Again! Emile van Sebille <emile@fenx.com> - 2015-01-22 13:56 -0800
    Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-22 15:08 -0700
      Re: Python is DOOMED! Again! Paul Rubin <no.email@nospam.invalid> - 2015-01-22 15:24 -0800
    Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-22 15:12 -0700
      Re: Python is DOOMED! Again! Rustom Mody <rustompmody@gmail.com> - 2015-01-22 19:11 -0800
        Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 14:52 +1100
          Re: Python is DOOMED! Again! Rustom Mody <rustompmody@gmail.com> - 2015-01-22 21:06 -0800
            Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-23 16:33 +1100
    Re: Python is DOOMED! Again! Chris Kaynor <ckaynor@zindagigames.com> - 2015-01-22 14:27 -0800
    Re: Python is DOOMED! Again! Ian Kelly <ian.g.kelly@gmail.com> - 2015-01-22 15:47 -0700
      Re: Python is DOOMED! Again! Mario Figueiredo <marfig@gmail.com> - 2015-01-22 23:54 +0100
    Re: Python is DOOMED! Again! Ben Finney <ben+python@benfinney.id.au> - 2015-01-23 10:22 +1100
    Re: Python is DOOMED! Again! Sturla Molden <sturla.molden@gmail.com> - 2015-01-23 01:44 +0100
    Re: Python is DOOMED! Again! Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-01-23 06:33 +0000
    Re: Python is DOOMED! Again! wxjmfauth@gmail.com - 2015-01-23 01:07 -0800
    Re: Python is DOOMED! Again! Tony the Tiger <tony@tiger.invalid> - 2015-01-23 18:08 +0000
    Re: Python is DOOMED! Again! BartC <bc@freeuk.com> - 2015-01-29 22:57 +0000
      Re: Python is DOOMED! Again! Chris Angelico <rosuav@gmail.com> - 2015-01-30 10:17 +1100
      Re: Python is DOOMED! Again! Chris Kaynor <ckaynor@zindagigames.com> - 2015-01-29 15:25 -0800
      Re: Python is DOOMED! Again! MRAB <python@mrabarnett.plus.com> - 2015-01-30 02:11 +0000

Page 1 of 14  [1] 2 3 … 14  Next page →


#84181 — Python is DOOMED! Again!

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2015-01-22 15:30 +1100
SubjectPython is DOOMED! Again!
Message-ID<54c07d04$0$13012$c3e8da3$5496439d@news.astraweb.com>
Occasionally you find people spreading Fear, Uncertainty, Doubt about 
Python. Python is now over 20 years old and one of the most popular 
languages in the world no matter how you measure popularity:

http://import-that.dreamwidth.org/1388.html

so you don't often get FUD these days. When you do, it's usually about 
whitespace, or "Python is too slow", or occasionally "Python 3 is killing 
Python", but the latest FUD is about PEP 484 and type-hinting:

https://www.python.org/dev/peps/pep-0484/

Here's a typical example:

    Python is already headed towards obscurity. ... it seems that 
    GvR intends to drive the final nail in python's coffin with 
    this "type hinting" crap that will convert Python syntax from 
    a readable pseudo code into a cryptic nightmare.

    Type hinting violates the very ESSENCE of what Python was
    meant to be, that is: a "clean and intuitive syntax". 


(Google for it if you care for the source.)

So what is this unspeakable, nightmarish, cryptic abomination going to look 
like? Here's an example from PEP 484:

def greeting(name: str) -> str:
    return 'Hello ' + name


I don't know about you, but I think anyone who cannot read that and intuit 
that argument `name` is a string and the return result is also a string is 
probably going to have bigger troubles with Python than just type-hinting.

Remember too that type-hinting will *absolutely* remain *completely* 
optional for Python. Developers can choose to use it or not, they can mix 
hinted code with regular unhinted code, they can use type declarations 
purely as documentation or they can run an optional type-checker, as they 
choose.

Here's a potential real-world example, from the statistics module in Python 
3.4, before and after adding annotations:

def median_grouped(data, interval=1): ...

def median_grouped(data:Iterable[Real], interval:Real=1)->Real: ...


I say "potential" because the standard library doesn't use annotations yet, 
but it may in the future. 

So how does Python's proposed type-hints compared to that used by other 
languages?

Java:

  public double median_grouped(List<Double> data, double interval) {}

Pascal:

  function median_grouped(data: IterableOfReal; interval: Real): Real;

C:

  double
  median_grouped (IterableOfReal data, double interval)

Haskell:

  median_grouped               :: [Double] Double -> Double
  median_grouped data interval =  ...


(I may have taken some very slight liberties with the syntax, corrections or 
more idiomatic forms are very welcome.)


I think it is clear that Python's annotation syntax remains quite close to 
executable pseudo-code. Fears that type-hints will doom Python are not 
credible.


-- 
Steve

[toc] | [next] | [standalone]


#84185

FromChris Angelico <rosuav@gmail.com>
Date2015-01-22 15:43 +1100
Message-ID<mailman.17946.1421901787.18130.python-list@python.org>
In reply to#84181
On Thu, Jan 22, 2015 at 3:30 PM, Steven D'Aprano
<steve+comp.lang.python@pearwood.info> wrote:
> C:
>
>   double
>   median_grouped (IterableOfReal data, double interval)
>
>
> (I may have taken some very slight liberties with the syntax, corrections or
> more idiomatic forms are very welcome.)

C doesn't really have iterables, so this is more likely to be passed
in as an array of doubles and a length:

double median_grouped(double *data, int datasize, double interval)

> I think it is clear that Python's annotation syntax remains quite close to
> executable pseudo-code. Fears that type-hints will doom Python are not
> credible.

Yep. If Py3K didn't kill Python, PEP 393 didn't kill Python, and the
lack of Python 2.8 didn't kill Python, then type hinting doesn't have
much chance.

ChrisA

[toc] | [prev] | [next] | [standalone]


#84190

FromPaul Rubin <no.email@nospam.invalid>
Date2015-01-21 21:35 -0800
Message-ID<87mw5b8jjq.fsf@jester.gateway.sonic.net>
In reply to#84181
Steven D'Aprano <steve+comp.lang.python@pearwood.info> writes:
> def median_grouped(data:Iterable[Real], interval:Real=1)->Real: ...

Wow, that's really nice.  I had heard something about Python type hints
but hadn't seen them before.

> So how does Python's proposed type-hints compared to that used by other 
> languages?

The most closely comparable hinting system I can think of is the Erlang
Dialyzer:

    -spec median_grouped(iterable(real())) -> real().
    median_grouped(Data, Interval) -> ... 

Some more info at: 

http://learnyousomeerlang.com/types-or-lack-thereof#for-type-junkies
http://learnyousomeerlang.com/dialyzer#plt

[toc] | [prev] | [next] | [standalone]


#84193

FromPaul Rubin <no.email@nospam.invalid>
Date2015-01-21 21:56 -0800
Message-ID<877fwf8ikk.fsf@jester.gateway.sonic.net>
In reply to#84190
Paul Rubin <no.email@nospam.invalid> writes:
>     -spec median_grouped(iterable(real())) -> real().

Oops:

     -spec median_grouped(iterable(real()), real()) -> real().

[toc] | [prev] | [next] | [standalone]


#84196

FromMark Lawrence <breamoreboy@yahoo.co.uk>
Date2015-01-22 06:12 +0000
Message-ID<mailman.17952.1421907155.18130.python-list@python.org>
In reply to#84190
On 22/01/2015 05:35, Paul Rubin wrote:
> Steven D'Aprano <steve+comp.lang.python@pearwood.info> writes:
>> def median_grouped(data:Iterable[Real], interval:Real=1)->Real: ...
>
> Wow, that's really nice.  I had heard something about Python type hints
> but hadn't seen them before.
>

Currently flying here http://code.activestate.com/lists/python-ideas/30922/

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

[toc] | [prev] | [next] | [standalone]


#84192

FromNicholas Cole <nicholas.cole@gmail.com>
Date2015-01-22 05:50 +0000
Message-ID<mailman.17949.1421905859.18130.python-list@python.org>
In reply to#84181

[Multipart message — attachments visible in raw view] — view raw

I don't think that Python is doomed. I *do* think that type-hinting is
useful, and Python has borrowed a syntax that is similar to that used in
other languages, so that it is a familiar one to many developers.

It is a stretch to call it intuitive though, either to write or to
read. Personally, I would have favoured a doc string solution. The magic
comments that are part of the current proposal are genuinely intuitive, I
think. The function definition syntax is something to be learned and which
it takes me a little time to process even though I'm getting used to it. I
find that it's still a slight effort to remember which way around the name
of the argument and the type go. I'm sure I've seen one language that does
the oppoosite, and the fraction of a second it takes me to remember is a
tiny friction. There's no doubt, too, that long function definitions
(Python functions tend to have lots of arguments in the real world) are
going to look cluttered, and cluttered by lots of magic punctuation.

So useful, yes. Familiar already to those who use other languages, yes.
Intuitive, no. And there is a linguistic reason for that:

Consider this:

Define function add taking price1, price2, print_error equals true.

Yes, Python wouldn't understand that, but turning it in to a valid
definition requires only a tiny amount of effort.

Type definitions add a whole level of complexity:

Define function add taking the float price1, the float price2, print_error
equals the Boolean true. Make the function return a float.

Converting that into python simply requires more effort: in other words the
gap between what one might say in speech and what the code looks like is
bigger.

The reason for this is that a lot of information is being compressed in to
a small space. In English writing it is usually clearer to avoid long and
complicated sentences with lots of subclauses (even if they make perfect,
logical sense) in favour of shorter ones, and I think there is a parallel
here.

I would have preferred Python to mimic:

Define function add taking price1, the price2, print_error equals true.
Price1 is a float. Price2 is a float. The function returns a float.

But now this is sounding a little like something from Larry Wall, and so I
had better stop!  I wasn't trying to re-litigate the decisions that have
been taken, just to understand the friction.

Just my £0.2

Nicholas.

[toc] | [prev] | [next] | [standalone]


#84194

FromChris Angelico <rosuav@gmail.com>
Date2015-01-22 16:56 +1100
Message-ID<mailman.17950.1421906207.18130.python-list@python.org>
In reply to#84181
On Thu, Jan 22, 2015 at 4:50 PM, Nicholas Cole <nicholas.cole@gmail.com> wrote:
> I would have preferred Python to mimic:
>
> Define function add taking price1, the price2, print_error equals true.
> Price1 is a float. Price2 is a float. The function returns a float.
>
> But now this is sounding a little like something from Larry Wall, and so I
> had better stop!

Actually, it sounds like pre-ANSI C. Something like this:

float add(price1, price2)
float price1;
float price2;
{
    ... body of function ...
}

Compare the more modern C style:

float add(float price1, float price2)
{
    ... body of function ...
}

(I omitted print_error from both as I don't know how pre-ANSI C did
default arguments, if at all. It's possible in the modern version but
I want the comparison to be fair.)

ChrisA

[toc] | [prev] | [next] | [standalone]


#84195

FromEthan Furman <ethan@stoneleaf.us>
Date2015-01-21 22:02 -0800
Message-ID<mailman.17951.1421906568.18130.python-list@python.org>
In reply to#84181

[Multipart message — attachments visible in raw view] — view raw

On 01/21/2015 08:30 PM, Steven D'Aprano wrote:
> 
> So what is this unspeakable, nightmarish, cryptic abomination going to look 
> like? Here's an example from PEP 484:
> 
> def greeting(name: str) -> str:
>     return 'Hello ' + name
> 
> 
> I don't know about you, but I think anyone who cannot read that and intuit 
> that argument `name` is a string and the return result is also a string

There is nothing inherently intuitive about that syntax.  The : makes it look like a dictionary (but it isn't) and the
-> looks like a pointer to something (but it isn't).

> is probably going to have bigger troubles with Python than just type-hinting.

Yup, true -- I do find writing meta-classes takes extra work.  ;)

--
~Ethan~


[toc] | [prev] | [next] | [standalone]


#84204

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2015-01-22 18:23 +1100
Message-ID<54c0a571$0$13002$c3e8da3$5496439d@news.astraweb.com>
In reply to#84195
Ethan Furman wrote:

> On 01/21/2015 08:30 PM, Steven D'Aprano wrote:
>> 
>> So what is this unspeakable, nightmarish, cryptic abomination going to
>> look like? Here's an example from PEP 484:
>> 
>> def greeting(name: str) -> str:
>>     return 'Hello ' + name
>> 
>> 
>> I don't know about you, but I think anyone who cannot read that and
>> intuit that argument `name` is a string and the return result is also a
>> string
> 
> There is nothing inherently intuitive about that syntax.  

Strictly speaking, you are correct: the only truly intuitive interface is 
the nipple. Nevertheless, we often informally describe something as 
"intuitive" when we mean the meaning can be guessed or derived from context.


> The : makes it
> look like a dictionary (but it isn't) and the -> looks like a pointer to
> something (but it isn't).

I think you're over-thinking it from the perspective of a programmer with 
lots of experience. Think of it as pseudo-code seen from the perspective of 
somebody who doesn't know about dicts and pointers.

Arrows are common symbols for directions, flow of time, and results:

    Work hard --> Save $$$ --> Buy a new car!!!

It's not hard to jump to the conclusion that -> introduces the return 
result.

As for colons, don't think of "dict", think of "mapping". Colons in this 
case map argument name to argument type.

The point isn't that there are no other alternative interpretations 
possible, or that annotations are the only syntax imaginable, but that 
they're not hard to guess what they mean, and if you can't guess, they're 
not hard to learn and remember.


-- 
Steve

[toc] | [prev] | [next] | [standalone]


#84207

FromMario Figueiredo <marfig@gmail.com>
Date2015-01-22 09:10 +0100
Message-ID<MPG.2f2aced5243efbfb989684@nntp.aioe.org>
In reply to#84204
In article <54c0a571$0$13002$c3e8da3$5496439d@news.astraweb.com>, 
steve+comp.lang.python@pearwood.info says...
> 
> The point isn't that there are no other alternative interpretations 
> possible, or that annotations are the only syntax imaginable, but that 
> they're not hard to guess what they mean, and if you can't guess, they're 
> not hard to learn and remember.

Possibly one common use case will be Unions. And that factory syntax is 
really awful and long when you look at a function definition with as 
little as 3 arguments. The one below has only 2 arguments.

def handle_employees(emp: Union[Employee, Sequence[Employee]], raise: 
Union[float, Sequence[float]]) -> Union[Employee, Sequence[Employee], 
None]:

That's for a generic list-like container. Have fun with the Mapping 
union.

Meanwhile there's quite a few more generics like the Sequence one above 
you may want to take a look at and try and remember. And that's just one 
factory (the generics support factory). You may also want to take a look 
at TypeVar and Callable for more syntactic hell.
 
Meanwhile, there's the strange decision to implement type hints for 
local variables # comment lines. I have an hard time wrapping my head 
around this one. Really, comments!?

Finally, remember all this is being added to your code just to 
facilitate static analysis. Strangely enough though I was taught from 
the early beginning that once I start to care about types in Python, I 
strayed from the pythonic way. I'm confused now... What is it then?

[toc] | [prev] | [next] | [standalone]


#84215

FromNicholas Cole <nicholas.cole@gmail.com>
Date2015-01-22 09:37 +0000
Message-ID<mailman.17964.1421919464.18130.python-list@python.org>
In reply to#84207
On Thu, Jan 22, 2015 at 8:10 AM, Mario Figueiredo <marfig@gmail.com> wrote:
> In article <54c0a571$0$13002$c3e8da3$5496439d@news.astraweb.com>,
> steve+comp.lang.python@pearwood.info says...
>>
>> The point isn't that there are no other alternative interpretations
>> possible, or that annotations are the only syntax imaginable, but that
>> they're not hard to guess what they mean, and if you can't guess, they're
>> not hard to learn and remember.
>
> Possibly one common use case will be Unions. And that factory syntax is
> really awful and long when you look at a function definition with as
> little as 3 arguments. The one below has only 2 arguments.
>
> def handle_employees(emp: Union[Employee, Sequence[Employee]], raise:
> Union[float, Sequence[float]]) -> Union[Employee, Sequence[Employee],
> None]:
>
> That's for a generic list-like container. Have fun with the Mapping
> union.

To be fair, is it clearer with some kind of formatting?

def handle_employees(
emp: Union[Employee, Sequence[Employee]],
raise: Union[float, Sequence[float]])
-> Union[Employee, Sequence[Employee], None]:

I still find that hard to read, but the line breaks help.  Just for
fun, I'd like to put out that without all of that noise the function
reads:

def handle_employees(employees, raise):
    .....
    return employees

And suddenly it looks like what most people who know anything about
programming recognise as Python again! With some kind of doc-string or
similar syntax it would read something like:

def handle_employees(employees, rasie):
    # employees: Union[Employee, Sequence[Employee]]
    # raise:  Union[float, Sequence[float]]
    # return: Union[Employee, Sequence[Employee], None]
    .....
    return employeees

There's a reasonable case that this is not all that dissimilar from
the function annotation syntax above, but the difference is surely
that in the one case you see immediately that there are two arguments,
and in the other you can't be sure without parsing some very cluttered
punctuation-heavy syntax.

Still, it would have been nicer to be able to write something like
this (where the Unions are implicit):

def handle_employees(employees, rasie):
    # employees: Employee, Sequence[Employee]
    # raise:  float, Sequence[float]
    # return: Employee, Sequence[Employee], None


Yes, I know that function annotations have been defined for a while,
and yes, I know that they are similar to a syntax used in other
languages, and yes, I know that they are optional.  All the same,
either they are going to become the norm or they are not. If they
become the norm (as I think they will because type hinting seems to
solve many problems that the community cares about) then I think we
have to accept that an important part of the language will become much
more cluttered, much less intuitive, and much more off-putting to
many.

I think the fact that the current proposals mix the annotation syntax
with an inline comment syntax is also horrible (though I don't see any
alternatives).  I would much rather have put all of the "magic" in to
comments or none.

N.

[toc] | [prev] | [next] | [standalone]


#84333

Fromalex23 <wuwei23@gmail.com>
Date2015-01-23 20:10 +1000
Message-ID<m9t6l0$gom$1@dont-email.me>
In reply to#84215
On 22/01/2015 7:37 PM, Nicholas Cole wrote:
> Still, it would have been nicer to be able to write something like
> this (where the Unions are implicit):

Coincidentally, you also demonstrate what makes this a lesser idea :)

> def handle_employees(employees, rasie):
                                   ^^^^^
>      # raise:  float, Sequence[float]
          ^^^^^

There is a distinct advantage in not repeating yourself.

[toc] | [prev] | [next] | [standalone]


#84217

FromChris Angelico <rosuav@gmail.com>
Date2015-01-22 21:09 +1100
Message-ID<mailman.17965.1421921362.18130.python-list@python.org>
In reply to#84207
On Thu, Jan 22, 2015 at 7:10 PM, Mario Figueiredo <marfig@gmail.com> wrote:
> Possibly one common use case will be Unions. And that factory syntax is
> really awful and long when you look at a function definition with as
> little as 3 arguments. The one below has only 2 arguments.
>
> def handle_employees(emp: Union[Employee, Sequence[Employee]], raise:
> Union[float, Sequence[float]]) -> Union[Employee, Sequence[Employee],
> None]:

Hold on a moment, how often do you really do this kind of thing with
"might be one of them or a sequence"? Do you really have a function
that could take an Employee and a float, or a sequence of Employees
and a single float, or a single Employee and a sequence of floats, or
a sequence of both? Or do you, much more likely, actually have two
separate functions:

def handle_employee(emp: Employee, raise: float) -> Optional[Employee]:

def handle_employees(emp: Sequence[Employee], raise: Sequence[float])
-> List[Employee]:

The union in the return value seems particularly unlikely... and unhelpful.

ChrisA

[toc] | [prev] | [next] | [standalone]


#84221

FromMario Figueiredo <marfig@gmail.com>
Date2015-01-22 10:37 +0000
Message-ID<1a194e0a09d48d2044efdfe5477@nntp.aioe.org>
In reply to#84217
 Chris,

> Hold on a moment, how often do you really do this kind of thing with
> "might be one of them or a sequence"?

Is it really that important that I give a more real-life example, or can't 
you just get the problem from a ad-hoc example?

I could replace the variable names with spam, ham and eggs, if you wish.

[toc] | [prev] | [next] | [standalone]


#84224

FromChris Angelico <rosuav@gmail.com>
Date2015-01-22 21:44 +1100
Message-ID<mailman.17970.1421923836.18130.python-list@python.org>
In reply to#84221
On Thu, Jan 22, 2015 at 9:37 PM, Mario Figueiredo <marfig@gmail.com> wrote:
> Chris,
>
>> Hold on a moment, how often do you really do this kind of thing with
>> "might be one of them or a sequence"?
>
>
> Is it really that important that I give a more real-life example, or can't
> you just get the problem from a ad-hoc example?
>
> I could replace the variable names with spam, ham and eggs, if you wish.

I'd rather see a real-world example that can't be solved with either
better design or some simple aliases. (And yes, the type hinting does
allow for aliases.)

ChrisA

[toc] | [prev] | [next] | [standalone]


#84225

FromMario Figueiredo <marfig@gmail.com>
Date2015-01-22 11:06 +0000
Message-ID<1a194e0a09d98d20452ffdd8933@nntp.aioe.org>
In reply to#84224
 Chris,

> I'd rather see a real-world example that can't be solved with either
> better design or some simple aliases. (And yes, the type hinting does
> allow for aliases.)

Python is a duck-typing language, Chris. It is in its nature -- and we have 
been taught -- to ignore types and care only about operators. This means 
one of the most common design decisions in Python is exactly to code functions 
that are type ignorant. That is exactly why we need Type Hinting, because 
duck-typing complicates static analysis. And that is exactly why the Unions 
factory are a necessary part of the type hinting mechanism in PEP 484.

You will be seeing lots and lots of Unions in type annotated code once it 
gets implemented. And it's not because of the complexity of Unions syntax 
that I should now care about refactoring my code. That is a no-no.

If you don't know of any real-life example of python functions that will 
eventually force you into annotate them with unions syntax, look no further 
than your standard library. And also start questioning if you aren't complicating 
your own code with unnecessary function overloads.

[toc] | [prev] | [next] | [standalone]


#84268

FromRick Johnson <rantingrickjohnson@gmail.com>
Date2015-01-22 12:24 -0800
Message-ID<372dd8be-6910-4c55-a1e8-1a1f1466dcaa@googlegroups.com>
In reply to#84221
On Thursday, January 22, 2015 at 4:37:49 AM UTC-6, Mario Figueiredo wrote:

> I could replace the variable names with spam, ham and eggs, if you wish.

ROTF!

[toc] | [prev] | [next] | [standalone]


#84232

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2015-01-23 01:57 +1100
Message-ID<54c10fe9$0$12988$c3e8da3$5496439d@news.astraweb.com>
In reply to#84217
Chris Angelico wrote:

> Hold on a moment, how often do you really do this kind of thing with
> "might be one of them or a sequence"? 

isinstance(obj, one_class_or_tuple_of_classes)
issubclass(cls, one_class_or_tuple_of_classes)
mystr.startswith(prefix_or_tuple_of_prefixes)
mystr.endswith(suffix_or_tuple_of_suffixes)
template % one_string_or_tuple_of_strings  # or a dict :-)


I'm not suggesting that the specific example is a good one, but the
principle is sound.



-- 
Steven

[toc] | [prev] | [next] | [standalone]


#84234

FromChris Angelico <rosuav@gmail.com>
Date2015-01-23 02:13 +1100
Message-ID<mailman.17974.1421939608.18130.python-list@python.org>
In reply to#84232
On Fri, Jan 23, 2015 at 1:57 AM, Steven D'Aprano
<steve+comp.lang.python@pearwood.info> wrote:
> Chris Angelico wrote:
>
>> Hold on a moment, how often do you really do this kind of thing with
>> "might be one of them or a sequence"?
>
> isinstance(obj, one_class_or_tuple_of_classes)
> issubclass(cls, one_class_or_tuple_of_classes)
> mystr.startswith(prefix_or_tuple_of_prefixes)
> mystr.endswith(suffix_or_tuple_of_suffixes)
> template % one_string_or_tuple_of_strings  # or a dict :-)
>
>
> I'm not suggesting that the specific example is a good one, but the
> principle is sound.

All of your examples are "might be one of them or a tuple". Not
"sequence", "tuple". That gets around the problem of recognition,
because in no case is a single tuple a valid argument.

I suspect it would be possible to use TypeVar to create a nice
"OneOrMore" like you suggested, but for reliability, it should
probably be "or tuple" rather than "or sequence".

ChrisA

[toc] | [prev] | [next] | [standalone]


#84222

FromNicholas Cole <nicholas.cole@gmail.com>
Date2015-01-22 10:46 +0000
Message-ID<mailman.17968.1421923580.18130.python-list@python.org>
In reply to#84207

[Multipart message — attachments visible in raw view] — view raw

On Thursday, 22 January 2015, Chris Angelico <rosuav@gmail.com
<javascript:_e(%7B%7D,'cvml','rosuav@gmail.com');>> wrote:

> On Thu, Jan 22, 2015 at 7:10 PM, Mario Figueiredo <marfig@gmail.com>
> wrote:
> > Possibly one common use case will be Unions. And that factory syntax is
> > really awful and long when you look at a function definition with as
> > little as 3 arguments. The one below has only 2 arguments.
> >
> > def handle_employees(emp: Union[Employee, Sequence[Employee]], raise:
> > Union[float, Sequence[float]]) -> Union[Employee, Sequence[Employee],
> > None]:
>
> Hold on a moment, how often do you really do this kind of thing with
> "might be one of them or a sequence"? Do you really have a function
> that could take an Employee and a float, or a sequence of Employees
> and a single float, or a single Employee and a sequence of floats, or
> a sequence of both? Or do you, much more likely, actually have two
> separate functions:
>
> def handle_employee(emp: Employee, raise: float) -> Optional[Employee]:
>
> def handle_employees(emp: Sequence[Employee], raise: Sequence[float])
> -> List[Employee]:
>
> The union in the return value seems particularly unlikely... and unhelpful.
>

Hang on! The particular example may not make a lot of sense but there are
plenty of places in ordinary Python where functions can accept different
objects in arguments and return different things. The point here is that
that will become rapidly messy and hard to read.

Perhaps the new PEP will discourage this kind of thing and perhaps that is
to be welcomed not feared, but I don't think the example itself was
particularly contrived. I've seen it in plenty of code in the wild.

[toc] | [prev] | [next] | [standalone]


Page 1 of 14  [1] 2 3 … 14  Next page →

Back to top | Article view | comp.lang.python


csiph-web