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