Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92901 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 92779 invoked from network); 28 Apr 2016 19:46:06 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Apr 2016 19:46:06 -0000 Authentication-Results: pb1.pair.com header.from=rowan.collins@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=rowan.collins@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.47 as permitted sender) X-PHP-List-Original-Sender: rowan.collins@gmail.com X-Host-Fingerprint: 74.125.82.47 mail-wm0-f47.google.com Received: from [74.125.82.47] ([74.125.82.47:36919] helo=mail-wm0-f47.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B0/7D-28296-B7862275 for ; Thu, 28 Apr 2016 15:46:05 -0400 Received: by mail-wm0-f47.google.com with SMTP id a17so2939854wme.0 for ; Thu, 28 Apr 2016 12:46:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=N7s83g8mBoj4FrIja2Ae8qE/yS9BQEoxnN3070I9JP0=; b=frBrXYLT/dVKNBUecigbC/KRtScZ6Wlgt+Rw8CXeEcc/1ATb++XiTT0nxgBzny8Y/U IiO5cx8y1HCHQrf6uHggX3zazOq1cTVXRyJuT326qeEDozcrfl3QuYq5rPuAYcfKq9wZ sdH7PBjKa/6W71UAo8pNOziMRVzquWgqp6PNRkRrY/6LckNiNgh23yYvxQMRxHQZBHoN mkHl8jFbf6pg5BxVA5h4SZ17zahZlAcKHJLI8QjLEaV82MmBsICAoi12afE7qO39dDLX kWpzE4jD15NMKivcZ4QQjDFVsT8ZDyevEqxtui2LZfZG3JfpNU6ySE/Nmv5vBZT3tWYW Hw5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=N7s83g8mBoj4FrIja2Ae8qE/yS9BQEoxnN3070I9JP0=; b=IoiOXkQ6mwFnnD3lK9qflIL2IDXvFOAHHTCbv4+x6zARkVnA9GdwKLILZd2ZwURhIp wGBF+A73gDWV0lMCPl6afmNpIo1Rt5VRR4cbQylKSMsDZftff1ayifnjxQr4ibYxPJaa B746zU5rywZtxqzbSARzvUMyKnt7E3nfJ9k68vZ3i3Po69OG+dQMVRW1K1clq6TYb3xe L4WIKN5NCwp9WSuZYYPX27CK1hUYKVJkp2KL5uIUlHv2ubDOxPQ7ynMFtUrWYFPP4GIN MK3i4p6YYHLe/KxUj2OyOq4dOoHaQZtl/uM9B0+qJALKg3szmQXet1qgg5CP1k9AMxCw 98og== X-Gm-Message-State: AOPr4FXkvuKsWgyGE8Gd2J5h6QOH9iBdTY3htH/ukV5uXJlYU4IFiqsJpZ2vDfBQmoy0Zg== X-Received: by 10.28.167.193 with SMTP id q184mr19184222wme.63.1461872759795; Thu, 28 Apr 2016 12:45:59 -0700 (PDT) Received: from [192.168.0.82] ([93.188.182.58]) by smtp.googlemail.com with ESMTPSA id kz1sm11145020wjc.46.2016.04.28.12.45.58 for (version=TLSv1/SSLv3 cipher=OTHER); Thu, 28 Apr 2016 12:45:59 -0700 (PDT) To: internals@lists.php.net References: <57211D05.6020002@fleshgrinder.com> <57224957.8090504@fleshgrinder.com> <5d8ef1e6-1d08-bf12-b481-4f72af3f6dd9@gmail.com> <5722629A.4050001@fleshgrinder.com> Message-ID: <86108010-26a4-0f68-580d-6d3357ad3f7e@gmail.com> Date: Thu, 28 Apr 2016 20:43:39 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <5722629A.4050001@fleshgrinder.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] PHP Annotations VS Attributes From: rowan.collins@gmail.com (Rowan Collins) Fleshgrinder wrote on 28/04/2016 20:20: > On 4/28/2016 8:02 PM, Rowan Collins wrote: >> Interesting; do you have a link to where this terminology is explained? >> Most of the articles I've seen just refer to "attributes", and the link >> you have doesn't really explain that at all, it has namespaces with >> "annotation" in the name, but uses the word "attribute" everywhere in >> the actual text. >> > Yes, I provided many in the initial message, the Wikipedia link [1] > explains it in detail and you may use it as reference for all the other > questions you have here, since it answers all of them. I meant specifically in the context of C#/.net. You claimed a very specific usage within that framework, but all the articles I can find refer to them consistently as "attributes" in that context. Event the Wikipedia article: > In the C# programming language, attributes are [...] equivalent to annotations in Java. That's pretty clear to me that the two languages call the same concept different things. > The word construct "attribute specification" is completely right, it > specifies which attribute should be applied to the data. But it completely disagrees with your earlier claim that "The result of an annotation is an attribute." There is absolutely no usage of "annotation" in that page; there is just a description of syntax for applying "attributes". > > Method modifiers are a more specialized form of attributes and it makes > sense to refer to them as such because it is less ambiguous than the > word attributes. It may make sense, but can you point me to any C#/.net documentation which describes that relationship? I'm talking about actual usage here, not theoretical definitions. > As I said in the initial message, using the term /attribute/ is pretty > much never wrong because the term /attribute/ is so generic. :P What kind of answer is that? The page clearly describes a Perl feature very similar to the feature proposed for PHP, and it very clearly calls it "attributes". If it's "never wrong" for Perl, surely it's "never wrong" for PHP either? > Actually I checked the dictionaries for the actual definition. This is > also how I documented it in the initial message. All additional language > links were only used to proof that Java is not the only language that > uses the term and that the term is always used in the context. I have already pointed out that 3 of those links do not back up your claim. You appear to dispute this, but I'm increasingly unclear on what grounds. You are perfectly entitled to the opinion that C#, Perl, and Rust are *wrong* in their usage of the term, but they absolutely use that term in the same way as Hack, not in the way you wish to define it. > That is why there is an empty line between the pages that are actually > documenting the usage of an annotation functionality and the pages that > are using the term annotation correctly in natural language to describe > something. Again, it is about language and terminology. OK, I'm completely lost now. I thought your argument was that the feature should under no circumstances be called "attributes", because that is too general a term, and that it should instead be called "annotations", because that is the only correct term. Then you link to a page which demonstrates *annotations* being used as a general term, and *attributes* being used for the feature being proposed. > Me neither, I am saying that the term is too generic and that we should > use the term annotation in order to make it unique, easily > understandable, non-ambiguous in terms of natural language and not in > terms of what others use or do. Except that the Rust example demonstrates that "annotation" can be used just as generically and ambiguously as "attribute". There really is very little to choose between the two terms. Regards, -- Rowan Collins [IMSoP]