> On May 7, 2020, at 10:33 AM, Dan Ackroyd <dan...@basereality.com> wrote:
> 
> On Thu, 7 May 2020 at 10:13, Rowan Tommins <rowan.coll...@gmail.com> wrote:
>> 
>> Unless we're actively trying to shrink the functionality of PHP's core,
> 
> I think we should.
> 
> There are things that were added to core rather than done in userland because:
> 
> * distributing libraries in userland used to be a lot harder than it is now.
> 
> * Some stuff needed to be in core to give adequate performance. As
> userland PHP has had it's relative performance increased, and also
> computers have gotten a little faster since the project began*, that
> need has been greatly reduced.

One of the primary reasons for many of us — or at least me — to want more 
things in core is not listed above, and that reason is:

- Standardization

As a userland developer I would highly prefer to have the 20% of the 
functionality that most everyone needs 80% of the time be provided as standard 
functionality by the language rather than delegating the use-cases to userland 
resulting in a veritable Tower of Babble in the userland making too many 
projects incompatible with each other.

If we had more standardization we would have more shared knowledge across the 
PHP community. That makes it easier to hire developers, to be hired and to work 
on an open-source project as there would be less duplicated code that people 
would have learned that each is used very differently.

It would reduce the maintenance burden on userland developers where a few 
developers can implement the functionality that the major of developers no 
longer have to implement.

It would reduce dependencies required. Ironically I was just watching Github 
Satellite talk yesterday where they went on and on about how hard it is to 
manage and maintain dependencies.

And when we use PHP CLI we would generally be able to depend on any 
standardized functionality being there.

> On May 7, 2020, at 11:28 AM, Ben Ramsey <b...@benramsey.com> wrote:
> In many ways, I agree. In other ways, I see things like `array_column()` and 
> `str_contains()`[1] as being obvious additions to the core, since they’re 
> implemented in userland so often. 

Exactly.  The more functionality that is standardized and "just there" the 
better.

HOWEVER, I do recognize and appreciate at least one of Dan's concerns, if I 
interpreted correctly he wants to minimize the maintenance required for PHP 
core.  Maybe it we all put our heads together we can get both? 

1.) Minimize maintenance for PHP core, AND 

2.) Standardize the most commonly-used requirements for functionality?

------------------

One potential option that comes to mind is a standard library of PHP-written 
functionality bundled in a PHAR file that would be included with future 
implementations of PHP and automatically included by PHP.  

If we had such as standard PHAR then we could add "standardize" functionality 
for all PHP developers and yet reduce the pressure on core developers to 
implement and maintain said functionality in PHP C source code.

This would also open up the potential to contribute to PHP to all of userland, 
adding many more potential contributors and providing a relief valve for the C 
developers maintaining core so there would not be as much pressure to include 
things in core and they could easily say "Not in 'core; do the standard lib 
instead."

Thoughts?

-Mike

P.S. One argument against a standard library might be that developers would 
each want something different for the same use-case so we cannot standardized.  

While it is true developers would each have different opinions on what we 
should add I think it is also true that — while developers will choose wildly 
different approaches in userland — once something is in a standard library most 
developers just accept it and move on. And those that don't will still be free 
to write their own as they have always been.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to