Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108237 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 19936 invoked from network); 25 Jan 2020 02:03:13 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 25 Jan 2020 02:03:13 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 537B51804D1 for ; Fri, 24 Jan 2020 16:12:43 -0800 (PST) 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,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, 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-yb1-f178.google.com (mail-yb1-f178.google.com [209.85.219.178]) (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 ; Fri, 24 Jan 2020 16:12:42 -0800 (PST) Received: by mail-yb1-f178.google.com with SMTP id o199so1860830ybc.4 for ; Fri, 24 Jan 2020 16:12:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=newclarity-net.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=ywTUWC5pG20H5Si5KVNGuJ34pzU9450/ZgGWMmaK+2E=; b=J8ttEdc1K5J1pkLg5JjxYGd0UkLhUL4xJFOOI4csLWcDLmN+N8lCJjdgm/6+c3nI9P I/R4ESfo1H5k34e56Oo7Zqu/B2G5pnyK9STfhcF/zhuuZNh5eAz7yw8BUbo7sER8jY3y PmNzeYiBwKhFYA/mf+Ky9QIZo1rL3Ygql9UqIEuMVRgY6wH/TwGthppLqwd1esogXmZu 691QiJYQSRqCyUFTNKD9dtinck2CgpfIOZ2FjhJDjjBPaw5GaxIHRtYoN6X7elstpI+S EkltSOZrjcvsS4Kth0VbDZ04ZTF1h1ZzetwJrOGzhGwh0BNSRPAK4jkGElLOK1Rnst8e odBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=ywTUWC5pG20H5Si5KVNGuJ34pzU9450/ZgGWMmaK+2E=; b=nsg/DUN6801IRhnQLIgS7sTsYXKnFm7BPPAIMJG3rTK1RELaGtuXWpla98ot9soepb PSLTD628SNDJM2kv7eFw936g9/ACHPjtKScMrp4wOClLkYnzME4ypHHFiSONnjt1HS61 OSqWBd9cs3VSHbrjQ99z/IoMJXgs963okyGYI+FgWyedj7zMUA/WMDdvhzaw/1wc1m5+ bmubSBwH9dJgEjLgqre/UsvGc7EIkVBgrZnzWwX2PgrPxOvXAfn1GTtpQbXCH3uGvRdU FHldAjXmJhtVWB+A+64CRH2804LY4hnSGgR7oci0H5AhCUVXHPfo+nWWyEJUBvyHTl+X plzw== X-Gm-Message-State: APjAAAXxgrxrnnej+P5hn3ASd/GbunisRyscEdR+AiNo8mynoVyoS/GF 0QR9Kji9zh1D/uBi7ypVbEQDIQ== X-Google-Smtp-Source: APXvYqwbt/86r8mwLN+YFY6H2wAL3JF6+ETfzWIQGsbF5BIDV/F6Tlzx3h5kTLTXdVtEiKQnNNGayQ== X-Received: by 2002:a25:5586:: with SMTP id j128mr4774802ybb.186.1579911159828; Fri, 24 Jan 2020 16:12:39 -0800 (PST) Received: from ?IPv6:2601:c0:c680:5cc0:9c03:aa12:eab0:1f6b? ([2601:c0:c680:5cc0:9c03:aa12:eab0:1f6b]) by smtp.gmail.com with ESMTPSA id g5sm3313758ywk.46.2020.01.24.16.12.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Jan 2020 16:12:39 -0800 (PST) Message-ID: Content-Type: multipart/alternative; boundary="Apple-Mail=_87F200EF-48D2-4E0C-8BD9-239B768CD64A" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Date: Fri, 24 Jan 2020 19:12:37 -0500 In-Reply-To: <5d1eaf45-d888-3fe6-7c40-02b0c8c81b61@gmail.com> Cc: internals@lists.php.net To: Rowan Tommins References: <5DC86728-1BBF-4DCA-8A6B-9B0B190DB99D@newclarity.net> <3091DC6D-E03B-4AF5-8DC6-F3B2772956BD@newclarity.net> <5d1eaf45-d888-3fe6-7c40-02b0c8c81b61@gmail.com> X-Mailer: Apple Mail (2.3445.104.11) Subject: Re: [PHP-DEV] Typed array properties V2 From: mike@newclarity.net (Mike Schinkel) --Apple-Mail=_87F200EF-48D2-4E0C-8BD9-239B768CD64A Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Jan 24, 2020, at 3:47 PM, Rowan Tommins = wrote: >=20 > I imagine the reason static analysers are generally run as a separate = step rather than just before execution is because then you _really_ = don't care about performance, and it's more convenient to get the = results on demand, rather than them appearing in your server logs. Let me try to make this rhetorical point in a different way. One of the main strengths of PHP =E2=80=94 and IMO one of the reasons = for its incredibly marketshare =E2=80=94 is the ease with which PHP code = can be written, tested, and deployed. And that ease translated to = ubiquity. =20 Adding a recommended build step to that in order to gain correctness = weakens that value proposition and threatens future ubiquity as other = language improve.=20 Said another way, if someone is evaluating which language to use =E2=80=94= if they have to have a build step anyway =E2=80=94 they might just = avoid PHP and choose a truly compiled language that by nature is = significantly more performant. =20 Or they might look for a language that is designed to provide static = analysis without requiring a build step. Not sure if such as language = exists, but if not there is certainly a compelling opportunity to create = one. Or this is an opportunity that PHP could seize for itself. So saying "use a static analyzer" is IMO just pointing out an overall = weakness that PHP can't automatically do static analysis on its own. -Mike P.S. I am not calling for any new feature in this message, just wanting = to call attention to the fact that PHP does not operate in a vacuum and = that those who care about PHP's future should remember to consider that = when discussing improvements other languages might have or might be = adding.=20 --Apple-Mail=_87F200EF-48D2-4E0C-8BD9-239B768CD64A--