Yongxu Ren (2015-10-22T17:29:32.000Z)
renyongxu at gmail.com (2015-10-22T17:31:12.505Z)
I don't think > ```@@ or @() or @::meomize``` would really help much, you can tell what the decorator does by simply looking at its name. And looks like you can not use @ and @@ for the same decorator function without adding extra condition checking inside the function. There are two patterns that we have discussed here, they are actually quite distinct. I still think we should support decorator on variables, but maybe we should have 2 distinct syntax for the normal decorators and "ambient decorators"(from Jonathan's post): 1. decorator that alter the code behavior, the currently proposed decorator. Such as ```@memoize``` 2. decorator that absolutely does not alter the code behavior, only used for optimization, checking or debugging. Instead of @, a distinct syntax will be much clearer ex.```@annotatition@``` (Maybe it should be called annotation instead?): ``` @deprecated@ @number,number=>string@/*type checking*/ @debug("this message will only print in development mode")@ ``` it sounds like terrible idea to have a decorator in code that you can not figure out if it will alter the code behavior by looking at it. I do like to see all the new ideas been added into javascript, but it is also necessary to eliminate the ambiguity whenever possible.