On Wed, Jun 23, 2021 at 3:07 AM Marco Pivetta <ocram...@gmail.com> wrote:
> The problem is exactly the fact that it is trivial to implement in > userland: why not do it there instead? > My 2cents: because people won't use it when the barrier is too high to get it. There are a ton of great libraries that have functionality like clamp, and some more elaborate, like an array replacement. In the end -based on my experience- people go to the php documentation and look for functions that they can use, or they use their IDE autocomplete functionality to see what's hinted at. Having these functions spread through the ecosystem means discoverability is low. I've needed the "clamp" function in the past and didn't even consider looking for a library to do this for me. Why would I even install a library to have a single function anyway? It feels like a massive overhead. I've seen coworkers use funky SPL functionality I didn't even know existed to avoid using external dependencies that have already solved their problem in a neat way, which were in fact already installed through composer. They found the solution through google and ended up in the official php documentation. I'd love to see these small additions in the core, they make the language feel more complete. The fact that they are easy to implement in userland means that we can have great forward compatibility through polyfills and already start using them in codebases that haven't been upgraded yet to the latest PHP version. I've been very happy to have been able to use str_starts_with, str_ends_with, and str_contains in 7.3, as they came in with a generic php polyfill. With a "see also: clamp" in the min/max function documentation, this would be easy to find as well.