[VOTE][RFC] Array Of

php.internals

Philip Sturgeon

12 years ago
Hi internals! I opened the vote on the array of RFC: https://wiki.php.net/rfc/arrayof#vote Voting will end 2014/03/07 Phil

Kevin Ingwersen

12 years ago
Dumb question, but how do I actually vote o.o;? Am Fr. Feb. 28 2014 17:32:24 schrieb Philip Sturgeon:

Bob Weinand

12 years ago
Am 28.2.2014 um 17:32 schrieb Philip Sturgeon <pjsturgeon@gmail.com>:
> Hi internals! > > I opened the vote on the array of RFC: > > https://wiki.php.net/rfc/arrayof#vote > > Voting will end 2014/03/07 > > Phil > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php
Hey Philip, I voted no now. a) This is something for PHP6 I feel (at least if the other RFCs were rejected for similar reasons) b) We are so close to beta 5.6 now, I think we should stop introducing bigger features which affect the language etc. now c) I'm not really sure if we want that feature… but that's another story... My main problems are a) and b), so I voted no… Bob

Andrew Faulds

12 years ago
On 28 Feb 2014, at 17:30, Bob Weinand <bobwei9@hotmail.com> wrote:
> I voted no now. > > a) This is something for PHP6 I feel (at least if the other RFCs were rejected for similar reasons) > b) We are so close to beta 5.6 now, I think we should stop introducing bigger features which affect the language etc. now > c) I'm not really sure if we want that feature… but that's another story...
I also voted against. I don’t like the [] syntax and PHP 5.6 is too close. I will also say again that I don’t think the generics/arrayof vote was fair. It had no option representing my position: “Use generics-like syntax, I don’t care whether we add generics later or not”.
-- Andrea Faulds http://ajf.me/

Adam Harvey

12 years ago
On 28 February 2014 09:45, Andrea Faulds <ajf@ajf.me> wrote:
> > On 28 Feb 2014, at 17:30, Bob Weinand <bobwei9@hotmail.com> wrote: >> I voted no now. >> >> a) This is something for PHP6 I feel (at least if the other RFCs were rejected for similar reasons) >> b) We are so close to beta 5.6 now, I think we should stop introducing bigger features which affect the language etc. now >> c) I'm not really sure if we want that feature… but that's another story... > > > I also voted against. I don’t like the [] syntax and PHP 5.6 is too close.
I was also -1, partly for those reasons, but also because I think we need to take some time (probably in a PHP 5++/6/7/whatever context and after 5.6 has been frozen) to figure out if we want generics and, if so, what form they would take syntactically. My guess is that they won't look anything like ClassName[], and I don't really want another weird syntax appendix that we have to maintain and document for a decade or more to come. Adam

Unnamed Person

12 years ago
Adam Harvey wrote on 28.02.2014 19:00:
> On 28 February 2014 09:45, Andrea Faulds <ajf@ajf.me> wrote: >> >> On 28 Feb 2014, at 17:30, Bob Weinand <bobwei9@hotmail.com> wrote: >>> I voted no now. >>> >>> a) This is something for PHP6 I feel (at least if the other RFCs were >>> rejected for similar reasons) >>> b) We are so close to beta 5.6 now, I think we should stop introducing bigger >>> features which affect the language etc. now >>> c) I'm not really sure if we want that feature… but that's another story... >> >> >> I also voted against. I don’t like the [] syntax and PHP 5.6 is too close. > > I was also -1, partly for those reasons, but also because I think we > need to take some time (probably in a PHP 5++/6/7/whatever context and > after 5.6 has been frozen) to figure out if we want generics and, if > so, what form they would take syntactically. My guess is that they > won't look anything like ClassName[], and I don't really want another > weird syntax appendix that we have to maintain and document for a > decade or more to come. > > Adam > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >
What about adding isarrayof to class declaration? class DbRow {} class DbRows isarrayof DbRow {} function test(DbRows $rows) {} Regards, Thomas

Marco Schuster

12 years ago
Hi, On Sat, Mar 1, 2014 at 5:09 AM, <mails@thomasbley.de> wrote:
> What about adding isarrayof to class declaration? > > class DbRow {} > > class DbRows isarrayof DbRow {} > > function test(DbRows $rows) {} >
uh, this doesn't make any sense, I'm afraid. You're after C++ templates? Marco
-- Marco Schuster IT-Beratung, Web Development Blütenstr. 23 80799 München

Philip Sturgeon

12 years ago
On Fri, Feb 28, 2014 at 1:00 PM, Adam Harvey <aharvey@php.net> wrote:
> On 28 February 2014 09:45, Andrea Faulds <ajf@ajf.me> wrote: >> >> On 28 Feb 2014, at 17:30, Bob Weinand <bobwei9@hotmail.com> wrote: >>> I voted no now. >>> >>> a) This is something for PHP6 I feel (at least if the other RFCs were rejected for similar reasons) >>> b) We are so close to beta 5.6 now, I think we should stop introducing bigger features which affect the language etc. now >>> c) I'm not really sure if we want that feature... but that's another story... >> >> >> I also voted against. I don't like the [] syntax and PHP 5.6 is too close. > > I was also -1, partly for those reasons, but also because I think we > need to take some time (probably in a PHP 5++/6/7/whatever context and > after 5.6 has been frozen) to figure out if we want generics and, if > so, what form they would take syntactically. My guess is that they > won't look anything like ClassName[], and I don't really want another > weird syntax appendix that we have to maintain and document for a > decade or more to come. > > Adam
The trouble with that approach is that we could have this feature now. It would be useful to many (my twitter feed is blowing up over this one) and would be very simple for people to understand. It's been simple to implement and it's just all-round simple. Generics on the other hand are somewhat less simple, we need to work out templates and all that other fun stuff, and we need to work out if people even want the feature. Behind the scenes there is a LOT of code to change and things will have to have a major overhaul. So in the end we could miss out on adding a great feature that plenty of people want purely to find out that nobody wanted generics anyway. This should not even be seen as a rush to implement a weak version that ruins things and gives us a weird double syntax. It should be seen as a simple version then if later on generics are implemented they are a much more powerful feature which has a different syntax. People can use [] without ever having to understand the complexity of generics and templates and all that. At this point suggesting we shouldn't have [] and should make everyone use generics feels a little bit like banning fishing rods but handing out grenades.

Andrew Faulds

12 years ago
On 1 Mar 2014, at 15:08, Philip Sturgeon <pjsturgeon@gmail.com> wrote:
> This should not even be seen as a rush to implement a weak version > that ruins things and gives us a weird double syntax. It should be > seen as a simple version then if later on generics are implemented > they are a much more powerful feature which has a different syntax. > People can use [] without ever having to understand the complexity of > generics and templates and all that.
People can also use Array<Foo> without fully understanding generics.
-- Andrea Faulds http://ajf.me/

Philip Sturgeon

12 years ago
On Sat, Mar 1, 2014 at 10:14 AM, Andrea Faulds <ajf@ajf.me> wrote:
> > On 1 Mar 2014, at 15:08, Philip Sturgeon <pjsturgeon@gmail.com> wrote: > > This should not even be seen as a rush to implement a weak version > that ruins things and gives us a weird double syntax. It should be > seen as a simple version then if later on generics are implemented > they are a much more powerful feature which has a different syntax. > People can use [] without ever having to understand the complexity of > generics and templates and all that. > > > People can also use Array<Foo> without fully understanding generics. > > -- > Andrea Faulds > http://ajf.me/
If we do a very careful job of documenting them, because introducing developers to the basic levels without distracting and confusing with the advanced stuff is gonna be tricky. My other fallback argument in this case is... "JAVA DID IT". ("Simpsons did it" reference. Anyone?) The point of my survey was to ask if people wanted just this feature, generics, or both. Lots of people said both. It's not completely alien for a language to have both, as Java does this too. I'm sure others do it we poke around enough. It also lines up nicely with the syntax everyone is using for DocBlocks, so again, why not have it now and have some other syntax for a slightly more powerful feature in the future maybe.

Andrew Faulds

12 years ago
On 1 Mar 2014, at 15:20, Philip Sturgeon <pjsturgeon@gmail.com> wrote:
> It also lines up nicely with the syntax everyone is using for > DocBlocks, so again, why not have it now and have some other syntax > for a slightly more powerful feature in the future maybe.
Or, we could have generics-like syntax now and add proper generics later, meaning people would get a free performance boost eventually and we’d be able to eliminate the O(n) issue.
-- Andrea Faulds http://ajf.me/

Philip Sturgeon

12 years ago
On Sat, Mar 1, 2014 at 10:22 AM, Andrea Faulds <ajf@ajf.me> wrote:
> > On 1 Mar 2014, at 15:20, Philip Sturgeon <pjsturgeon@gmail.com> wrote: > > It also lines up nicely with the syntax everyone is using for > DocBlocks, so again, why not have it now and have some other syntax > for a slightly more powerful feature in the future maybe. > > > Or, we could have generics-like syntax now and add proper generics later, > meaning people would get a free performance boost eventually and we'd be > able to eliminate the O(n) issue. > > -- > Andrea Faulds > http://ajf.me/ > > > >
And again I say that is something that will be considered if this vote doesn't pass. "Array of" using Generics-like syntax in 5.7 and full on generics in 5++ (6 or 7) is looking like a more likely route at this point. It's just one that I personally don't like. :)

Guilherme Blanco

12 years ago
FYI, I changed my vote from +1 to -1. I like the idea (the +1 part), but I don't think it's the right way to fix it (the -1 part). Generics would solve this in a nicer way without being impacted by an O(n) problem of type checking. I'd second a Collection support with array_* integration which would make everything much nicer too. Cheers, On Sat, Mar 1, 2014 at 10:25 AM, Philip Sturgeon <pjsturgeon@gmail.com>wrote:
> On Sat, Mar 1, 2014 at 10:22 AM, Andrea Faulds <ajf@ajf.me> wrote: > > > > On 1 Mar 2014, at 15:20, Philip Sturgeon <pjsturgeon@gmail.com> wrote: > > > > It also lines up nicely with the syntax everyone is using for > > DocBlocks, so again, why not have it now and have some other syntax > > for a slightly more powerful feature in the future maybe. > > > > > > Or, we could have generics-like syntax now and add proper generics later, > > meaning people would get a free performance boost eventually and we'd be > > able to eliminate the O(n) issue. > > > > -- > > Andrea Faulds > > http://ajf.me/ > > > > > > > > > > And again I say that is something that will be considered if this vote > doesn't pass. > > "Array of" using Generics-like syntax in 5.7 and full on generics in > 5++ (6 or 7) is looking like a more likely route at this point. It's > just one that I personally don't like. :) > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >
-- Guilherme Blanco MSN: guilhermeblanco@hotmail.com GTalk: guilhermeblanco Toronto - ON/Canada