Hi Zeev,

On Mon, Sep 13, 2010 at 12:44 PM, Zeev Suraski <z...@zend.com> wrote:
> Benjamin,
>
> Strictly speaking annotations are not *needed*.  They simply aren't - you
> can do anything and everything you might want to do without them.  You can
> argue that the value they bring is very important, and that it outweighs the
> complexity they bring upon to the language - in which case we can agree to
> disagree.

Do not consider it as a rude comment, it's a rather reflective one.
What about goto; was it needed? You added worse support into PHP for much less.
I constantly see every attempt to make PHP a better language is turned
into endless discussions. Am I wrong? I can highlight more than 10
since I started to follow internals ML.

As of goto, I see only one usage to it: parsers.

Annotations have much more usage than you imagine.
You can control class access, validate the classes through a Service
(or an ortoghonal Aspect using an extension that already exists), unit
test, turn into a persistent class, document for a tool (like phpDoc).
Frameworks can use it to determine controller (instead of keeping
users to extend an abstract class or interface), etc.

I tend to agree the syntax may not be ideal, but that's why we opened
the patch for review and polish.
Years ago I poked a lot of people to join forces and let this support
IN for PHP 5.3, without success. Of course I completely understand
that people have other obligations and that's why I sadly saw PHP 5.3
out of the box without a lot fo support I expected. What I highlight
on RFCs are support that not only me, but tons of developers have
troubles daily and do not know the ways to reach PHP core to suggest
changes.

I eat PHP's dog food daily and I clearly know every single deficiency it has.


Cheers,

>
> Zeev
>
>
> At 17:38 13/09/2010, Benjamin Eberlei wrote:
>
>> I strongly disagree!
>>
>> PHPDocs are for what their name suggests, for comments, not for runtime
>> code information. They allow arbitrary characters, their intent is for
>> human-readible documentation only.
>>
>> Yet they are used for service description (Zend_Soap_Autodiscover,
>> Zend_XmlRpc), metadata mapping or phpunits "annotations", just because
>> there is nothing better suited.
>>
>> Primary difference of Annotations, they are not only human- but also
>> enforced to be machine-readable. Annotations are runtime configuration or
>> metadata, throwing compile time parse errors when not followed correctly.
>> That has nothing to do with documentation, it is an very elegant way to
>> extend classes, methods and properties with metadata information,
>> configuration and code right next to each other.
>>
>> The primary target for annotations are framework and library integrations:
>> validation, forms, metadata mapping, static mvc configuration such as
>> routing, view selection or acls. Why do these features not exist with
>> current php libraries yet? Because developers see php doc blocks for what
>> they are: Comments!
>>
>> With Doctrine2 and Symfony2 we see some early experiments with annotations
>> in PHP Docs, but they only highlight the drawbacks:
>>
>> 1. Developers should expect to be able to delete a comment/docblock
>> without altering the code-path.
>> 2. Errors in the Doc-Blocks "expected formatting" are left for the
>> userland developer to detect. IDEs or the PHP Parser simply don't care.
>> 3. There is no real difference for a human only readable doclbock starting
>> with /** or /*, however PHP just doesnt publish the /* docblocks to the
>> userland, leading to countless errors when that single star is missing.
>> 4. every IDE or code-highlighting prints them in light grey, making them
>> sort of invisible.
>>
>> That is why annotations are needed, they make metadata a language level
>> construct, not a hack that is possible, because Reflection allows us to
>> access the comments of methods, functions, classes, ...
>>
>> greetings,
>> Benjamin
>>
>> On Mon, 13 Sep 2010 15:05:57 +0200, Zeev Suraski <z...@zend.com> wrote:
>> > At 20:24 11/09/2010, Pierre Joye wrote:
>> >>On Sat, Sep 11, 2010 at 8:19 PM, Stas Malyshev <smalys...@sugarcrm.com>
>> >>wrote:
>> >> > Hi!
>> >> >
>> >> >> The separator never was a problem... but I definately don't want to
>> >> >> see another 6 months just to define what would the separator be.
>> >> >> If we need to drop [] in favor of array support, I vote for ! as
>> >> >> separator.
>> >> >
>> >> > The separator is not a problem (even though 1-char one produces much
>> >> > less
>> >> > clutter). The cryptic syntax is.
>> >>
>> >>It seems that there is a misunderstanding about the goals of the
>> >>annotations. They are not meant to be read by human being
>> >>(javadoc/phpdoc/etc. are) but to be parsed automatically to be used
>> >>for services.
>> >>
>> >>In that sense, to have a syntax closed to one of the best (or less
>> >>worst, if you are on the opposed side ;-) syntax out there (c#/.net)
>> >>may be a good thing to do, instead of re einventing the php wheel.
>> >
>> > I'm not sure we've seen a good reason to add annotations instead of
>> > using PHPDoc.  Sure, PHPDoc isn't a perfect fit for certain purposes,
>> > but I think it certainly falls in the good-enough fit for most
>> > purposes.  It's also both machine and human readable, and best of all
>> > - it's already there.
>> > There should be overwhelmingly strong reasons to add a whole new
>> > branch of syntax to PHP, I for one don't see the huge gain
>> > annotations bring on top of PHPDoc.
>> >
>> > Zeev
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>



-- 
Guilherme Blanco
Mobile: +55 (16) 9215-8480
MSN: guilhermebla...@hotmail.com
São Paulo - SP/Brazil

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to