Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:110021 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 15876 invoked from network); 5 May 2020 20:08:27 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 5 May 2020 20:08:27 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 1033D1804C2 for ; Tue, 5 May 2020 11:43:25 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 5 May 2020 11:43:24 -0700 (PDT) Received: by mail-qt1-f174.google.com with SMTP id z90so2874498qtd.10 for ; Tue, 05 May 2020 11:43:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=newclarity-net.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=cfG3ZX6Sj2kFVwYZtzU76flSBkE+0Wx5kLmBjT6ySp0=; b=Ovf+fDWmns4St/DlTEbBs04SKIJm2kqj+GY3DhUXaZkPAUmd6z547QhDgHyzyK6kfW HfmOOwWkiQtgpWN7ucyO9OOoCunHCbtH5N5+mkiGhH3aDCDm399+LcrXwOhHs/sssuDI lkJVaxlUH854k8IwSR8LWLcg/3I4puD1/UZ/I7o79m+Ir7yv4NQ1VrC6D+SyKHtyMbK4 IHrH907DC0Ml77aI0kYLfXH4YwZekVp4jDFGVUj0Zrggn4bmkZNA4dRgFJFgIy9VCg4r l6rFQg8vyBoJu9UMeWvJ6wnTQVGhcLoge8WuUgfpk0HxCFqYEJ4JuKAAXOfLemJ8xSwM w2Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=cfG3ZX6Sj2kFVwYZtzU76flSBkE+0Wx5kLmBjT6ySp0=; b=tKPPSPK0QIvhNgbY+d+0QhMAf6pj9P6JhUtQVFLLFB4exHPJiKCKGBgYxDTaBqfREE 1Pcil3HFOZRLcJ324W66lWthS2mcmendKJN7r3rqrYjUnmJaMciDQ3nAanu2oOsmP9kN 1E1NH+0xvQiuVJT3FEry2a6CsFvhV5+/uWf8VLOl361MXsX0fd2IaIueFzOdZkVJ951K 6DNbPMP0TRgUQVv1+WSzWe9tSYmH0CkgYfE8CHQQDNAPqMOJ6jJPPxtOCubLelaKNgwT 9MOj/inTb4EY4l3wR+o32S8qgSNzKf90LI/ePTEILGdG8+U8kB6acp3BIu2ZOBCVVAwM bVvA== X-Gm-Message-State: AGi0PuZH6ZGn0EXr2a6MjNFYP7a2o3cKpSTSbh+pDyKFGASX5hAu9lqM VzlQDKr0VhM/+g8PSA70g8eNqg== X-Google-Smtp-Source: APiQypJ8t5xhEevlTQaI0Z8M0nFUNSlWeXgkK+Pq0/ZFsjql0eces+eH18Fhhm2OZCmlZ8sX6CqiAQ== X-Received: by 2002:aed:32a2:: with SMTP id z31mr2691235qtd.60.1588704203676; Tue, 05 May 2020 11:43:23 -0700 (PDT) Received: from ?IPv6:2601:c0:c680:5cc0:7047:d720:3cd9:2d16? ([2601:c0:c680:5cc0:7047:d720:3cd9:2d16]) by smtp.gmail.com with ESMTPSA id o12sm2319649qki.103.2020.05.05.11.43.22 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 May 2020 11:43:22 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) In-Reply-To: Date: Tue, 5 May 2020 14:43:21 -0400 Cc: Nikita Popov , PHP internals Content-Transfer-Encoding: quoted-printable Message-ID: <50EABB21-EE94-43F8-AD43-C1B34960A784@newclarity.net> References: To: Marco Pivetta X-Mailer: Apple Mail (2.3445.104.11) Subject: Re: [PHP-DEV] [RFC] Named arguments From: mike@newclarity.net (Mike Schinkel) On May 5, 2020, at 2:33 PM, Marco Pivetta wrote: >=20 > On Tue, May 5, 2020 at 8:22 PM Nikita Popov = wrote: >=20 >> subprocess.run(args, *, stdin=3DNone, input=3DNone, stdout=3DNone, >> stderr=3DNone, capture_output=3DFalse, shell=3DFalse, cwd=3DNone, = timeout=3DNone, >> check=3DFalse, encoding=3DNone, errors=3DNone, text=3DNone, env=3DNone,= >> universal_newlines=3DNone) >>=20 >> ... and show that to a PHP developer, they're probably going to tell = me >> that this is horrible API design. They would, of course, be wrong. = It's >> reasonable API design, just in a language that supports named = arguments. >>=20 >=20 > There are so many ways in which the above fails in different ways = (besed on > flags) that I can't even start to reason about the resulting chaos. That looks like a perfect use-case for table-based unit-testing.=20 > Would rather consume a dozen of differently named (curried) versions = of > this. And I would rather have one function/method with many parameters than = many many different named functions/methods. Easier to learn, easier to = remember, and easier to define a standard for function/method naming. Different strokes, different folks. #fwiw -Mike