On Sun, Aug 16, 2020 at 10:39 AM Jakob Givoni <ja...@givoni.dk> wrote:
> On Sun, Aug 16, 2020 at 1:00 AM Benjamin Eberlei <kont...@beberlei.de> > wrote: > >> > >> The RFC says that > >> > The main concern is that @@ has no ending symbol and it's > inconsistent with the language > >> > that it would be the only declaration or statement in the whole > language that has no ending termination symbol. > >> However, it's clear that attributes are neither a declaration nor a > >> statement, but metadata about the thing that follows them (unless it's > >> more attributes or comments). > >> The ultimate proof of this is that a semicolon after an attribute is > illegal. > > > > I would like to chime in here since this argument is made over and over > again, even though it overlooks an important point. when we say that > attributes are just metadata, then let's compare them to docblocks with > *are* always enclosed in /** and */ instead of visibility keywords. > > > > This comparison is fair, because doc comments are often multi line and > attributes are as well. When doc comments are single line, they are also > enclosed. > > > > Whereas a comparison with visibility modifiers that are *just* tokens > that *always* are followed by a T_WHITESPACE is apples vs oranges, because > @@ attributes can be followed by a large set of different things: > > > > @@Foo @@Bar // ends due to T_WHITESPACE with " " > > @@Foo // ends due to T_WHITESPACE with "\n" > > @@Foo() // ends due to ) > > @@Foo () // ends with ), the T_WHITESPACE between class and arguments > is valid > > @@Foo@@Bar // ends due to new T_ATTRIBUTE > > @@Foo()@@Bar // ends due to ) > > @@Foo > > ("bar") // ends here in the second line at ) > > function a_function() { > > } > > > > Hi Benjamin, > > I'm sorry, but I don't understand your argument. > It's true that annotations used to be enclosed in a docblock, but that > is not an argument for saying that attributes NEEDS to be enclosed in > a block too. > It's also true that attributes can be followed by many different > things, but still it doesn't follow that block enclosing is NECESSARY. > What I'm saying is that there is still no good argument for why > attribute block syntax is better than non-block syntax. > The only argument that was presented in the original RFC was not > convincing, and I pointed out why. > Nobody says it's ultimately **necessarry** as @@ can work. The argument does not have to be convincing to everyone as we are not making decisions by 100% majority. We are bringing forward a set of arguments why we think end delimiters and enclosing syntax is better and keeps more options open for the future. > I'm also not saying that non-block syntax is better. > Hence, it seems it's just a matter of taste, so far - unless we get to > see some convincing arguments in the rewritten RFC. > > Thanks, > Jakob >