<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
If I may be so bold, I think Maciej is saying something similar to what
I was saying, we need some more design notes<br>
to efficiently create implementations.<br>
<br>
Currently, we have a catch-22. We need a spec to efficiently create an
implementation, but we won't have a spec until we have implementations.<br>
<br>
We can say: "let's all be manly and reverse engineer the RI" -- which
is possible and certainly works. This is what we have been doing,<br>
along with some Q&amp;A. But it is hard and requires quite a bit of
sleuthing, particularly for those not familiar with ML.<br>
<br>
As a solution: I think we need an intermediate step. Not a spec, but
some detailed design notes. Lar's document was a good<br>
overview, but drill down on exactly how the mechanisms are meant to
work would be very helpful to broaden the base of<br>
implementations. Some examples of the things I'd like to see are:<br>
<ul>
  <li>Exactly how the scope rules work for various constructs<br>
  </li>
  <li>Order of initialization</li>
  <li>More detail on namespace lookup rules</li>
  <li>More detail on unqualified variable lookup</li>
  <li>Type matching rules and conversions</li>
  <li>More detail on nullability</li>
</ul>
But there is a lot more. We can do this via Q&amp;A, which is what we
have been doing, but it is hard and requires quite a bit of sleuthing.<br>
<br>
Michael<br>
<br>
<br>
Brendan Eich wrote:
<blockquote cite="mid:435F87CE-8C9B-44F9-B114-9B0483CE37CF@mozilla.org"
 type="cite">
  <div>
  <div>On Feb 21, 2008, at 8:30 AM, Maciej Stachowiak wrote:</div>
  <br class="Apple-interchange-newline">
  <blockquote type="cite">
    <div style="margin: 0px; min-height: 14px;"><span
 class="Apple-style-span" style="">I'd like Apple and the WebKit
project to get involved with ES4 &nbsp;</span></div>
    <div style="margin: 0px;">implementation. But right now, as far as
I can tell, there isn't a <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">written record for any of ES4's features
that I could point an <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">engineer to and say "implement this".</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
There's certainly no such spec, or you would be a passive observer of a
standardization process that was all but done. That's not reality, and
it arguably is not what you should want -- Apple people could be valued
peers in the remaining work on ES4.</div>
  <div><br class="webkit-block-placeholder">
  </div>
  <div>If you want to be passive implementors of a finished spec, then
wait till next year.</div>
  <div><br>
  <blockquote type="cite">
    <div style="margin: 0px;"> The proposals on the wiki are <span
 class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">way out of date, it's not easy to find
what trac tickets modified <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">them, and there seem to be commonly
understood planned changes that <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">aren't even reflected in trac.</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
That's a failure to file trac tickets -- could you please list these
changes that aren't in the trac? There's no other bug system to track
these planned changes, so they had better show up at <a
 moz-do-not-send="true" href="http://bugs.ecmascript.org">http://bugs.ecmascript.org</a>/
soon or they won't happen.</div>
  <div><br>
  <blockquote type="cite">
    <div style="margin: 0px; min-height: 14px;"><span
 class="Apple-style-span" style="">Before attempting interoperable
implementations of particular &nbsp;</span></div>
    <div style="margin: 0px;">features, I think we need at minimum a
form of the proposal for that <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">feature that is complete and up to date.
It doesn't have to be formal <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">specification quality, but there has to
be something accurate.</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
  <div>I've worked pretty hard to keep proposals such as&nbsp;<a
 moz-do-not-send="true"
 href="http://wiki.ecmascript.org/doku.php?id=proposals:iterators_and_generators">iterators
and generators</a>&nbsp;up to date; it depends on other proposals which are
also not formal spec quality, but stable and meaningful (structural
types, type parameters). Cormac has done work recently in formalizing
the type system which was important to Graydon's RI work.</div>
  <div><br class="webkit-block-placeholder">
  </div>
  <div>So I think you are generalizing unfairly here.</div>
  <div><br class="webkit-block-placeholder">
  </div>
  <div>It's true that decimal is out of date in the wiki, and there are
open trac issues. This is true of other proposals.</div>
  <div><br class="webkit-block-placeholder">
  </div>
  <blockquote type="cite">
    <div style="margin: 0px;">Now, it may be that by telling someone to
reverse engineer another <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">implementation, or ask the ES4 crowd
about every detail of how a <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">feature should be implemented, someone
could succeed in implementing.&nbsp;</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
Nice strawmen, but no one proposed those things.</div>
  <div><br>
  <blockquote type="cite">
    <div style="margin: 0px;">But it seems to me that this undermines
the unstated assumption of <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">interoperable *independent*
implementations.</div>
  </blockquote>
  <div><br>
  </div>
  <div><br class="webkit-block-placeholder">
  </div>
  <blockquote type="cite">
    <div style="margin: 0px; min-height: 14px;"><span
 class="Apple-style-span" style="">In contrast, with CSS, Web API or
HTML WG specifications, I can point &nbsp;</span></div>
    <div style="margin: 0px;">engineers to a spec that is more or less
accurate for a given feature <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">and they only have to ask questions about
the few missing details.</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
And then Hixie goes and rewrites it. I am calling b.s. here, Maciej. We
implemented offline web app support early in Firefox 3, based on such
WHAT-WG (ok, not HTML WG at the time) specs. They changed a great deal
later.</div>
  <div><br>
  <blockquote type="cite">
    <div style="margin: 0px;"> I <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">would raise HTML5 as a particularly
laudable example because it <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">achieves this even though much
implementation work is happening in <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">parallel with writing the spec.</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
You are misrepresenting what has actually happened there.</div>
  <div><br>
  <blockquote type="cite">
    <div style="margin: 0px; min-height: 14px;"><span
 class="Apple-style-span" style="">I think we should strive to achieve
the same standard for ES4. At &nbsp;</span></div>
    <div style="margin: 0px;">feature granularity, someone should first
write an up to date accurate <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">document and implementations should be
done against that, not against <span class="Apple-converted-space">&nbsp;</span></div>
    <div style="margin: 0px;">some separate shared understanding of the
feature.</div>
  </blockquote>
  <div><br class="webkit-block-placeholder">
  </div>
That's the plan -- see Jeff's paragraph about "feature specs" which I
cited in reply to Geoff.</div>
  <div><br class="webkit-block-placeholder">
  </div>
  <div>/be</div>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Es4-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Es4-discuss@mozilla.org">Es4-discuss@mozilla.org</a>
<a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/es4-discuss">https://mail.mozilla.org/listinfo/es4-discuss</a>
  </pre>
</blockquote>
</body>
</html>