On 05/12/2016 08:27 PM, guilhermebla...@gmail.com wrote:
Hi internals,

PHP 7 leverages a lot the performance internally and many PHP applications
in the wild. Much of these improvement came by experimentation through
PHPNG and the usage of efficient data structures internally. This idea of
performance improvements are crucial to handle more requests, reduce server
overload, etc.

However, what lacks in PHP is the exposure of more efficient, use case
specific data structures, that could allow end users to easily improve
performance of their applications, instead of using a general,
multi-purpose data structure that we have as "array".

Based on that (please keep in mind I haven't spoken with library author),
I'd like assess the receptability of incorporating php-ds library into core.

Library author wrote a good (and lengthy) article explaining his motivation
and performance benchmarks around it. Here are the related links:

Article:
https://medium.com/@rtheunissen/efficient-data-structures-for-php-7-9dda7af674cd
Extension: https://github.com/php-ds/extension
Polyfill: https://github.com/php-ds/polyfill
Tests: https://github.com/php-ds/tests
Benchmark: https://github.com/php-ds/benchmarks


Best regards,

I am all for more efficient and performant tools being available natively. However, the php-ds extension in particular, while it sounds very nice, is still missing what I believe are key collection-related operations, that is, set-level operations. The equivalents of array_map, array_filter, first(callable) (ie, the first item that passes a given callable condition), etc. are all extremely powerful collection-level, functional operations. We have array-based versions and have for many years, but having them on formal collections or objects has always been a sore point, and run into various road blocks of "arrays aren't objects", "but then we can't extend the set of operations", etc. The pipe syntax currently being discussed helps some, but it's not as clean as doing it natively.

If we're going to improve the quality of our native collection tools, then a richer set of operations (for which there is a known list of common operations from most functional languages) needs to be part of that discussion.

--Larry Garfield

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to