> On Sep 19, 2021, at 8:03 PM, tyson andre <tysonandre...@hotmail.com> wrote: > > Hi internals, > > I've created a new RFC https://wiki.php.net/rfc/deque to add a `final class > Deque` > > This is based on the `Teds\Deque` implementation I've worked on > for the https://github.com/TysonAndre/pecl-teds PECL.
With one caveat, this is a much stronger RFC than the Vector one. Good job! However... > On Sep 20, 2021, at 4:25 PM, Rowan Tommins <rowan.coll...@gmail.com> wrote: > > On 20/09/2021 14:46, tyson andre wrote: >> The choice of global namespace maintains consistency with the namespace used >> for general-purpose collections already in the SPL > > I find this argument unconvincing. If the intention is for this to fit with > existing classes in the SPL, it should be called "SplDeque", or more > consistently "SplDoubleEndedQueue", and the RFC should talk about how the > design aligns with those existing classes. > > If it is intended to be the first of a new set of data structures which are > *not* aligned with the existing SPL types, then putting it in a new namespace > would make most sense. > > In the RFC and the list you've mentioned a few comparisons, but I don't think > any of them hold: > > * ArrayObject, WeakReference, and WeakMap are all classes for binding to > specific engine behaviour, not generic data structures > * Iterators all have an "Iterator" suffix (leading to some quite awkward > names) > * Reflection classes all have a "Reflection" prefix > * Having both "Queue" and "SplQueue", or both "Stack" and "SplStack" would be > a terrible idea, and is a pretty strong argument *not* to add data structures > with such plain names I am in complete agreement with Rowan. Honestly, at first I confused `Deque` with `Dequeue` and was wondering why we would name a class with a verb? It wasn't until Rowan's comment that I realized `Deque` is an abbreviation. Which begs the question: how many other PHP developers will know computer science terms like this well enough to know `Deque` is a noun when they see it, and more importantly how many PHP developers will think to search for `Deque` when they need a queue? So here is a straw man argument; name the class one of: - DataStruct\DoubleEndedQueue, or - DataStruct\DE_Queue Let the bike-shedding begin! (Or is that "Let it continue?") -Mike P.S. BTW re: https://github.com/TysonAndre/pecl-teds <https://github.com/TysonAndre/pecl-teds>, who is Ted? (pun intended)