Hi Guillaume,

thank you fro your reply. All that you are saying is evident to me since when I perceived Groovy for the first time. It is one of the reasons I'm so high on Groovy, and not e.g. on Kotlin (which to me has bad syntax decisions wherever it deviates from Groovy) or Scala, etc: Groovy's syntax has evidently been chosen and extended well over the years :-)

Apart from that: Isn't it natural that @Groovydoc has not seen much use up to now, since it is only in Groovy 3, which does not even have a beta release ?-)
http://docs.groovy-lang.org/docs/next/html/api/groovy/lang/Groovydoc.html

Based on the original @Groovydoc thread, where everyone seemed to agree that it was a good feature to have:

http://groovy.329449.n5.nabble.com/About-a-new-annotation-Groovydoc-td5738721.html
http://groovy.329449.n5.nabble.com/The-new-annotation-Groovydoc-for-Groovy-3-td5739731.html

I would argue that supplying a good shortcut for its use would be a really good idea, to entice uptake (see my previous mail).

I like Daniel's suggestion, since the @ in
/**@
reminds me of a "G", that is why this syntax has a memnonic quality to me: It reads "Javadoc comment, Groovy style". I also feel it could be argued that @Groovydoc is also not self explanatory, i.e. where does that name say that the documentation will be retained at runtime ?

Here are some alternative suggestions (If there are worries that the syntax could be ambiguous with the added chars being meant to be part of the comment, "**" could potentially be appended, e.g. "/**G**"):

/**$   ...  "$" in a GString means "retain that object in the string"

/**G   ...   "Groovy doc"

/**S    ...   "Save comment"

/**RT  ...  "RunTime comment"

/**>>   ...   "Stream/attach comment to following construct"

/**+    ...  "Add comment to following construct"

/**&&    ...  "Add comment to following construct"

Cheers,
mg


On 22.10.2018 10:36, Guillaume Laforge wrote:
Groovy always tried to strike a fine balance between conciseness and readability. If you look even at our operators, they try to convey some meaning, like ?. is like let's try to get that field/method with the question mark, or ?: being a contraction of the ternary operator. But to avoid making code too cryptic, we've forbidden users to create their own custom operators. So let's be sure to keep the nice philosophy of the language when discussing language changes.

I'm not fundamentally against it, but perhaps there are more readable options. I think @Groovydoc is rarely used (I've never seen it used in the wild or anyone mentioning its usage or our mailing-list), so I'd tend to prefer to see how much it's used before introducing a dedicated syntax.

Are there other notation ideas that would make the intent more explicit? more obvious?

Guillaume


On Mon, Oct 22, 2018 at 5:00 AM Remko Popma <remko.po...@gmail.com <mailto:remko.po...@gmail.com>> wrote:

    MG’s arguments make sense to me.

    Remko

    On Oct 21, 2018, at 23:05, MG <mg...@arscreat.com
    <mailto:mg...@arscreat.com>> wrote:

    Yea, sure. But doesn't a new shorthand syntax always have that
    trait ?-)
    And would that not mean that we can never, ever again introduce a
    shorthand notation in Groovy for anything, unless it is
    syntactically based on an existing/established shorthand notation
    (which in this case it kinda is, since it looks like a Javadoc
    comment - with something extra. Aka Groovy ;-) ) ?

    Learning a language always means learning its syntax. If you
    encounter something unexpected, Google is your friend (Not a
    Google expert, but I assume "/**@" should be good to find, since
    it contains no spaces).
    Also in this case I think it would not make a lot of difference
    to the casual user: He will most likely just assume it is some
    kind of Javadoc variety, if he even notices the "@" at the end.

    Instead of outright blocking another proposal by Daniel, maybe we
    can instead come up with a compromise that everyone can can agree
    on... ?-)

    Cheers,
    mg


    On 21.10.2018 10:51, Guillaume Laforge wrote:
    Well, /** has been in use for more than 20 years, so we've had
    time to get used to it.
    /**@ is totally non-obvious. I've no idea what it would have
    been about without having read this thread.

    On Sun, Oct 21, 2018 at 4:28 AM MG <mg...@arscreat.com
    <mailto:mg...@arscreat.com>> wrote:

        I agree with Daniel, I think
        /**@
        would be neither more nor less cryptic than
        /**
        which everyone is just used to from Java (and which seems to
        have no
        memnonic / self-explanatory characteristics to me...).

        Cheers,
        mg


        On 21.10.2018 03:04, Daniel.Sun wrote:
        > Hi Guillaume,
        >
        >         Javadoc switch `/**` is cryptic too at the
        beginning, but now I
        > believe few people like the following form ;-)
        >
        > /*
        >    * @Javadoc
        >    * some Javadoc here
        >    */
        >
        > Cheers,
        > Daniel.Sun
        >
        >
        >
        >
        > -----
        > Daniel Sun
        > Apache Groovy committer
        > Blog: http://blog.sunlan.me
        > Twitter: @daniel_sun
        >
        > --
        > Sent from:
        http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html
        >



-- Guillaume Laforge
    Apache Groovy committer & PMC Vice-President
    Developer Advocate @ Google Cloud Platform

    Blog: http://glaforge.appspot.com/
    Twitter: @glaforge <http://twitter.com/glaforge>



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform

Blog: http://glaforge.appspot.com/
Twitter: @glaforge <http://twitter.com/glaforge>

Reply via email to