Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:118798 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 9270 invoked from network); 11 Oct 2022 18:39:18 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 11 Oct 2022 18:39:18 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 895101804F7 for ; Tue, 11 Oct 2022 11:39:17 -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,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 11 Oct 2022 11:39:17 -0700 (PDT) Received: by mail-ej1-f54.google.com with SMTP id y14so16214439ejd.9 for ; Tue, 11 Oct 2022 11:39:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=lLAHDFYos/oZf9QB0IHuBGroOoNVqSnTRhcMwRMYOes=; b=k1uliaNQzvYZGy01olbaBPx0UE+DMomgxNFJEOhGCqsmz170lSO46VrwsOrpkGmoNS JMeEnl5mjbU7ylU815hkB5Dhgbwwjfpytn1bGqmV/BIvXXTn0Fge6KmyANlYCHPdmzmY bGT3ljnyXvdJdo/1Om6+mZx9dafUvdxEmpQdo9aWGgcd1RhQ1bUtkHaoW6qAXcWBqBO+ S+ijpaWgH1ob2v4MN2uyzIBuMuVphtrz91PMZ1cAVKG9mT7EewmVtzmfISOmJ5cJAZSC S9bM0jn8cpLavYcL0Qd7YBI0nGrEcsniFIEjmBQmNAUXnQirF0rx+AXDk53ceXlvPio0 frvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lLAHDFYos/oZf9QB0IHuBGroOoNVqSnTRhcMwRMYOes=; b=nlm0AAJrtbqd1u61HMfqcjMG1vY29tnKxPzaJN7tzOtSMrWIl4q8hBFtsrMnt//JoX boAN27IhLVWleoaeQmMtpNbTlVbCa5vy3u1dV7NQ8wWktA2FeK+ZX8uYZY5GCc2MT3FI kjmESR+mC1m9nxi9jR2t7Xz/wSX2BHYrHKRfZYp72amhAwsmilEQken3jopoFNJWitZx mOvKDRENW+AWGJuuv8xkW/thv8i7p7dR+OvlgpSoqW+KOSuz37sJh+QeuLX3HlBqyF8C EfYPaHUWI24L1UgCGNQvSUAScEV+mfnjfddYkHHlge6caWuUH9oe65Fxk6RBh6Rlaccx mNcQ== X-Gm-Message-State: ACrzQf3qwY3JsqNYmFwgbWzS3lPaWQiFz8KuGTH9hWQIP6kJ59wYS+yE iHqVDpb4l21xo+8h4ELyB4B15hMJlNg= X-Google-Smtp-Source: AMsMyM4obbriiwfUW0SF2xueRgbog/xuBJ/TOkeysubbl/oN4Pd53lYTDvd2rR5cMfKF1Ydf1KzUkQ== X-Received: by 2002:a17:907:86ab:b0:781:f150:84e4 with SMTP id qa43-20020a17090786ab00b00781f15084e4mr19671710ejc.435.1665513555601; Tue, 11 Oct 2022 11:39:15 -0700 (PDT) Received: from smtpclient.apple ([93.175.202.231]) by smtp.gmail.com with ESMTPSA id l10-20020a1709060cca00b0078a543e9301sm57841ejh.200.2022.10.11.11.39.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Oct 2022 11:39:15 -0700 (PDT) Message-ID: <9C431CDE-04FD-4D49-A526-CCA417E37178@gmail.com> Content-Type: multipart/alternative; boundary="Apple-Mail=_65ADBA58-DC87-4414-AA26-BB4F106B920B" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Date: Tue, 11 Oct 2022 21:39:11 +0300 In-Reply-To: <29756830-87E9-468B-92B8-3D0906A2A34C@cschneid.com> Cc: PHP Internals To: Christian Schneider References: <5EBAAEBD-4F9E-4832-BBDD-6E67D8758490@gmail.com> <29756830-87E9-468B-92B8-3D0906A2A34C@cschneid.com> X-Mailer: Apple Mail (2.3696.120.41.1.1) Subject: Re: [PHP-DEV] Experimental features From: autaut03@gmail.com (Alex Wells) --Apple-Mail=_65ADBA58-DC87-4414-AA26-BB4F106B920B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On 11 Oct 2022, at 15:24, Christian Schneider = wrote: >=20 > We seem to have two different views on experimental feature here: You = are saying they could get removed again while others stated it is for = stuff which will definitely end up in stable when the next major release = is done. An experimental feature definitely might (although highly unlikely) get = removed again - that's part of the idea that a feature can change, = evolve or downright be cancelled. But I think the point was to say that experimental features still have = to undergo a full RFC process (possibly with a lower voting threshold) = and are generally expected to be stabilized somewhere in the next few = major/minor releases. The stabilization may take a while - there are = some components of Kotlin which are still experimental since the 1.0 = release (2016), but most of the features are stabilized in a span of two = releases. Overall the idea of experimental features is allow PHP maintainers to = make mistakes, thus lowering the requirements for feature's refinement = and try it on real users in real world projects instead of attempting to = think every possible little detail through when creating an RFC, most of = the time having zero analytics/statistics. Decisions needs to be made = based on data if possible instead of premature conclusions, and = experimental features aim to allow just that. > On 11 Oct 2022, at 15:24, Christian Schneider = wrote: >=20 > That's another thing where we need to find an agreement first: Are we = talking new, isolated functions or are we possibly also talking about = core new language features (i.e. new syntax / semantics)? >=20 > The work for maintenance by core developers could be much higher if it = is not limited to new functions. > This is IMHO an important aspect as we do not want to make life even = harder for the core team. >=20 > Hot take: If it is only about new functions then we don't need = anything in the core, just create an \Experimental package with poyfills = and you're done ;-) Both. Experimental features certainly do apply to new syntax & semantics = too. It would have definitely been very useful for past RFCs - short = closures, sealed classes, useland operators, pipe operator etc. Regarding the polyfills, how is this gonna work? Say a new feature gets = introduced and then it's arguments order changes, what a polyfill is = gonna do here? > On 11 Oct 2022, at 15:24, Christian Schneider = wrote: >=20 > ... but almost all of them can. >=20 > I'd go as far as saying that while emulating json_validate() using = json_decode() is slower and uses more memory it still is a valid = polyfill. It is IMHO easy enough to develop with a higher memory limit = and performance is not that critical for development either. >=20 > And unless you want to ship experimental code to production (which you = shouldn't) you will have to wait for the next major PHP release anyway. Generally, the "experimental" part of the feature only applies to the = syntax/semantics/spec, not to the actual implementation. This means that = there's no reason to avoid shipping experimental code to production - = you might need to change it in the future, but it doesn't mean it's just = going to suddenly break out of nowhere. Runtime stability is expected to = be on par with the stability of "regular" features.= --Apple-Mail=_65ADBA58-DC87-4414-AA26-BB4F106B920B--