Javascript2 Generics – The dot, explained

There was a link on Ajaxian a while ago about Javascript2 and Generics. Everyone was either up in arms that Javascript2 was going to implement generics in the first place or that the syntax was weird with the dot in there. I am of the second camp. I did some research and discovered a little more information on why this decision was made. Take a look at the javascript generics syntax discussion:

  • Angle brackets are hard to parse because they are not normally used as brackets and because ECMAScript does not clearly delineate “type” context expressions from “other” expressions.
    • For annotations we can perhaps fix the parsing problem by introducing syntactic constraints on type expressions.
    • With parameterized function types, we will need unbounded lookahead: one can’t disambiguate until one sees the closing angle bracket. This complicates the parser substantially.

So, the reason this syntax was chosen is to ease parser developer’s lives.  The primary reason being that the parser cannot tell whether a < is the start of a parametrized definition or if it is just a less-than-sign.  This is why they tentatively decided on prefixing the dot on there.  I suppose I understand this, especially with a type un-safe language like Javascript.  I am still hoping they choose to make the parser developer’s lives more difficult so my life can be easier :-).

If you read on in the discussion someone states that they might choose to drop the dot later.  (fingers crossed)  Honestly though, if I get a decent Javascript IDE out of these language changes then I am fine with the dot.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">