2016-04-27 22:53 GMT+02:00 Niklas Keller <m...@kelunik.com>:

> Fleshgrinder <p...@fleshgrinder.com> schrieb am Mi., 27. Apr. 2016 22:11:
>
> > I am writing this in a separate thread because of the urgency that I see
> > regarding the naming of past, current, and future proposals regarding
> > this functionality.
> >
> > It was and is proposed to create this feature with the name *Attributes*
> > as Facebook did in their Hack language. Main argument is to blindly
> > follow /because/.
> >
> > On 4/25/2016 10:31 AM, Dmitry Stogov wrote:
> > > Different languages names this differently.
> > > I may add an additional voting question - "annotation vs attributes?".
> > >
> >
> > It is true and only natural that different languages choose different
> > names for equivalent features but this discussion is not about taste,
> > style, nor coolness. It is about natural language, proper computer
> > science terminology, and what PHP users will search for in search
> > engines. I already tried to explain this in the actual thread but I
> > guess my attempts resulted in more confusion than clarification, let me
> > try again.
> >
> > #### ATTRIBUTE ####
> >
> > The word *attribute* has several meanings in computer science and this
> > is mainly due to its extremely generic nature:
> >
> > > a usually good quality or feature that someone or something has
> > >
> > > --- http://www.merriam-webster.com/dictionary/attribute
> >
> > > In computing, an attribute is a specification that defines a property
> > > of an object, element, or file. [...] For clarity, attributes should
> > > more correctly be considered metadata. An attribute is frequently and
> > > generally a property of a property.
> > >
> > > --- https://en.wikipedia.org/wiki/Attribute_%28computing%29
> >
> > This pretty much sums it up already. An attribute is the metadata that
> > is attached to an element of source code. This metadata is anything
> > unessential that is additionally added but not necessarily required.
> >
> >   class A {
> >     var $x;
> >   }
> >
> > The `class` and `var` keywords are essential in this example and define
> > the actual element and the names are required too.
> >
> >   public final class A {
> >     private static int $x = 42;
> >   }
> >
> > Class A has the attributes `public` and `final`.
> > Property `$x` has the attributes `private`, `static`, `int`, and `42`.
> >
> > All of these attributes of the class and the property add additional
> > metadata to the source code elements that define their qualities or
> > features and consequently their behavior and usage.
> >
> > http://www.onelook.com/?w=attribute&ls=a
> > http://encyclopedia2.thefreedictionary.com/attribute
> >
> > Sebastian Bergmann already explained this but I think it is important to
> > be repeated and further clarified. The word attribute is often used to
> > refer to properties with additional metadata (e.g. access modifiers,
> > default values, ...; illustrated above) in an OO context. This makes the
> > usage of the word attribute additionally to its generic nature ambiguous
> > as well:
> >
> > https://en.wikipedia.org/wiki/Attribute_%28computing%29
> >
> > http://encyclopedia2.thefreedictionary.com/instance+attribute
> > https://en.wikipedia.org/wiki/Instance_variable
> >
> > http://encyclopedia2.thefreedictionary.com/static+attribute
> > https://en.wikipedia.org/wiki/Static_variable
> >
> > *All* userland implementations that are called /attributes/ in the free
> > and open world deal with completely different things:
> >
> > https://packagist.org/search/?q=attribute
> >
> > Last but not least, Perl has /attribute/ support. However, Perl actually
> > uses it for interaction with *all* attributes that can be set. Hence,
> > this is what attributes really do.
> >
> > http://perldoc.perl.org/attributes.html
> >
> > #### ANNOTATION ####
> >
> > > Extra information associated with a particular point in a document or
> > > program. Annotations may be added either by a compiler or by the
> > > programmer. They are not usually essential to the correct function of
> > > the program but give hints to improve performance.
> > >
> > > --- http://encyclopedia2.thefreedictionary.com/annotation
> >
> > http://www.onelook.com/?w=annotation&ls=a
> >
> > The term *annotation* is not only used by Java:
> >
> > https://packagist.org/search/?q=annotation
> >
> > https://en.wikipedia.org/wiki/Annotation
> > https://en.wikipedia.org/wiki/Ruby_character
> > https://en.wikipedia.org/wiki/Java_annotation
> >
> > https://msdn.microsoft.com/en-us/library/dd901590%28VS.95%29.aspx
> > http://docs.scala-lang.org/tutorials/tour/annotations.html
> > https://kotlinlang.org/docs/reference/annotations.html
> > https://www.python.org/dev/peps/pep-3107/
> > https://ghc.haskell.org/trac/ghc/wiki/Annotations
> > http://ceylon-lang.org/documentation/1.2/tour/annotations/
> >
> http://clojure-doc.org/articles/ecosystem/core_typed/start/annotations.html
> > https://www.dartlang.org/effective-dart/style/
> > ...
> >
> > https://rubygems.org/search?utf8=%E2%9C%93&query=annotation
> > http://rustbyexample.com/scope/lifetime/explicit.html
> > https://www.google.de/search?q=javascript+annotation
> > ...
> >
> > Ignoring these facts just because Facebook did not do proper research is
> > a total no go. It is also not up for a vote, it is just proper English
> > and computer science terminology!
> >
> > Last but not least, it also ensures that users find the correct PHP
> > manual page when they search for this new feature that might make it
> > into core at some point. :)
> > --
> > Richard "Fleshgrinder" Fussenegger
> >
>
> I agree with all of that, +1.
>
> >
>

Hi,

personally I prefer Annotation word instead of Attributes because of my
language (Polish) discrepancies in usage as "class attribute" in Polish
means quite the same as "object property" in English and may came to
missusage of that name - this info is also on Wikipedia
https://pl.wikipedia.org/wiki/Atrybut_(programowanie)#Poj.C4.99cie_atrybutu_w_programowaniu_obiektowym
Annotation in Polish in Software Development is uniquely associated with
the Attributes in your meaning exactly the same as Java Annotaitons and
this is clearly understood for eg. Cay S. Hortsmann in "Java 8"
in translation into Polish is talking about Annotations.
For eg. in Symfony docs translation into Polish
http://symfony-docs.pl/bundles/SensioFrameworkExtraBundle/index.html also
is usage of Annotation (Ctrl+F "adnotacje") - this is official
documentation.

Thats why IMHO Annotation name should be retained.

Thanks,

Regards,
--
Michał Brzuchalski

Reply via email to