The idea is that the experimental features are exclusively something that
the PHP team has voted for (approved) and that will be part of the language.

Users can choose to install PECL, but it is not the same, because it
depends on other users (who can make use of this code) having the notion
that a certain PECL will be necessary.

Imagine a package under development (eg. Laravel 10) that is (supposing
that) intended to be released compatible with PHP 8.3 (supposing that it
already has experimental features). In this case, the Laravel team can
start using an experimental feature while developing Laravel 10, waiting
for the release of PHP 8.3. Once the PHP 8.3 release is finished, Laravel
10 can just remove the experimental tags and release its new version fastly.

The user, on condition that he is willing to use Laravel 10 (in
development) will make indirect use of experimental features. Then both the
Laravel team and these users will be able to provide feedback for these
features to the PHP team before the official release.

Like json_validate(): assuming Laravel needs to check if a code is valid
JSON, but without processing its data for use. It could check if PHP >=
8.3, so use experimental_json_validate(), else use previous PHP compatible
code.


Atenciosamente,
David Rodrigues


Em seg., 10 de out. de 2022 às 19:20, David Gebler <davidgeb...@gmail.com>
escreveu:

> My two cents...
>
> Why can't "common users" install a PECL extension? It's not a difficult,
> obscure or undocumented process.
>
> I can accept the reasoning
>
> > Apply a PECL strategy to try experimental features might not be the
> convenient way always, for example, if we create a new ... sensitive ini
> setting that affects the behavior of PHP somehow... OR ... what about a new
> sensitive funtion in a "core extension" like JSON?
>
> But why would the answer in those cases not be "compile the PHP
> fork/branch with the experimental feature", rather than find a way to flag
> the engine to switch arbitrary new features on or off, complete with all
> the complications in the primary source code that would cause? We are,
> after all, talking about features which by definition should not be relied
> upon for any production use.
>
> Or we're talking about features which are stable and valuable enough to
> have passed an RFC process, but then what's gained from an experimental
> designation? Why couldn't they just be included in a preview/beta/RC
> version which anyone could decide to run or not?
>

Reply via email to