<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/15/18 6:35 AM, Joel Nothman
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAkaFLV5BQ_wv+A=pQY0xrj1Ho2RyM6++A+iieuVr1AUigE46A@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I think there are cases where the first few
        arguments would be better to maintain as positional, but users
        would very rarely use more than two, and we have long assumed
        keyword arguments in most cases, and never received complaints
        when we have inserted not at the end or deprecated in the
        middle.
        <div><br>
        </div>
        <div>I would expect that forcing all params after the first two
          (or three) to be keyword arguments would formalise existing
          tacit assumptions, would benefit maintainability, and would
          break very little code.</div>
      </div>
      <br>
    </blockquote>
    <p>I was about to say "you expect but we have no way to measure
      that".</p>
    <p>But then I realized we totally have a way to measure that (if
      using the open source code on bigquery counts).</p>
    <p>I could try to see if people use positional arguments and where.
      No promise on timeline though.<br>
      I think there is little harm in doing it for new parameters while
      we figure this out, though?</p>
    <p><br>
    </p>
    <blockquote type="cite"
cite="mid:CAAkaFLV5BQ_wv+A=pQY0xrj1Ho2RyM6++A+iieuVr1AUigE46A@mail.gmail.com">
      <div class="gmail_quote">
        <div dir="ltr">On Thu, 15 Nov 2018 at 20:34, Gael Varoquaux <<a
            href="mailto:gael.varoquaux@normalesup.org"
            moz-do-not-send="true">gael.varoquaux@normalesup.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">I am really
          in favor of the general idea: it is much better to use named<br>
          arguments for everybody (for readability, and to be less
          depend on<br>
          parameter ordering).<br>
          <br>
          However, I would maintain that we need to move slowly with
          backward<br>
          compatibility: changing in a backward-incompatible way a
          library brings<br>
          much more loss than benefit to our users.<br>
          <br>
          So +1 for enforcing the change on all new arguments, but -1
          for changing<br>
          orders in the existing arguments any time soon.<br>
          <br>
          I agree that it would be good to push this change in existing
          models. We<br>
          should probably announce it strongly well in advance, make
          sure that all<br>
          our examples are changed (people copy-paste), wait a lot, and
          find a<br>
          moment to squeeze this in.<br>
          <br>
          Gaël<br>
          <br>
          On Thu, Nov 15, 2018 at 06:12:35PM +1100, Joel Nothman wrote:<br>
          > We could just announce that we will be making this a
          syntactic constraint from<br>
          > version X and make the change wholesale then. It would be
          less formal backwards<br>
          > compatibility than we usually hold by, but we already are
          loose with parameter<br>
          > ordering when adding new ones.<br>
          <br>
          > It would be great if after this change we could then
          reorder parameters to make<br>
          > some sense!<br>
          <br>
          > _______________________________________________<br>
          > scikit-learn mailing list<br>
          > <a href="mailto:scikit-learn@python.org" target="_blank"
            moz-do-not-send="true">scikit-learn@python.org</a><br>
          > <a
            href="https://mail.python.org/mailman/listinfo/scikit-learn"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://mail.python.org/mailman/listinfo/scikit-learn</a><br>
          <br>
          <br>
          -- <br>
              Gael Varoquaux<br>
              Senior Researcher, INRIA Parietal<br>
              NeuroSpin/CEA Saclay , Bat 145, 91191 Gif-sur-Yvette
          France<br>
              Phone:  ++ 33-1-69-08-79-68<br>
              <a href="http://gael-varoquaux.info" rel="noreferrer"
            target="_blank" moz-do-not-send="true">http://gael-varoquaux.info</a> 
                    <a href="http://twitter.com/GaelVaroquaux"
            rel="noreferrer" target="_blank" moz-do-not-send="true">http://twitter.com/GaelVaroquaux</a><br>
          _______________________________________________<br>
          scikit-learn mailing list<br>
          <a href="mailto:scikit-learn@python.org" target="_blank"
            moz-do-not-send="true">scikit-learn@python.org</a><br>
          <a
            href="https://mail.python.org/mailman/listinfo/scikit-learn"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://mail.python.org/mailman/listinfo/scikit-learn</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
scikit-learn mailing list
<a class="moz-txt-link-abbreviated" href="mailto:scikit-learn@python.org">scikit-learn@python.org</a>
<a class="moz-txt-link-freetext" href="https://mail.python.org/mailman/listinfo/scikit-learn">https://mail.python.org/mailman/listinfo/scikit-learn</a>
</pre>
    </blockquote>
  </body>
</html>