If I may be so bold, I think Maciej is saying something similar to what I was saying, we need some more design notes
to efficiently create implementations.

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.

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,
along with some Q&A. But it is hard and requires quite a bit of sleuthing, particularly for those not familiar with ML.

As a solution: I think we need an intermediate step. Not a spec, but some detailed design notes. Lar's document was a good
overview, but drill down on exactly how the mechanisms are meant to work would be very helpful to broaden the base of
implementations. Some examples of the things I'd like to see are:
  • Exactly how the scope rules work for various constructs
  • Order of initialization
  • More detail on namespace lookup rules
  • More detail on unqualified variable lookup
  • Type matching rules and conversions
  • More detail on nullability
But there is a lot more. We can do this via Q&A, which is what we have been doing, but it is hard and requires quite a bit of sleuthing.

Michael


Brendan Eich wrote:
On Feb 21, 2008, at 8:30 AM, Maciej Stachowiak wrote:

I'd like Apple and the WebKit project to get involved with ES4  
implementation. But right now, as far as I can tell, there isn't a  
written record for any of ES4's features that I could point an  
engineer to and say "implement this".

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.

If you want to be passive implementors of a finished spec, then wait till next year.

The proposals on the wiki are  
way out of date, it's not easy to find what trac tickets modified  
them, and there seem to be commonly understood planned changes that  
aren't even reflected in trac.

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 http://bugs.ecmascript.org/ soon or they won't happen.

Before attempting interoperable implementations of particular  
features, I think we need at minimum a form of the proposal for that  
feature that is complete and up to date. It doesn't have to be formal  
specification quality, but there has to be something accurate.

I've worked pretty hard to keep proposals such as iterators and generators 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.

So I think you are generalizing unfairly here.

It's true that decimal is out of date in the wiki, and there are open trac issues. This is true of other proposals.

Now, it may be that by telling someone to reverse engineer another  
implementation, or ask the ES4 crowd about every detail of how a  
feature should be implemented, someone could succeed in implementing. 

Nice strawmen, but no one proposed those things.

But it seems to me that this undermines the unstated assumption of  
interoperable *independent* implementations.


In contrast, with CSS, Web API or HTML WG specifications, I can point  
engineers to a spec that is more or less accurate for a given feature  
and they only have to ask questions about the few missing details.

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.

I  
would raise HTML5 as a particularly laudable example because it  
achieves this even though much implementation work is happening in  
parallel with writing the spec.

You are misrepresenting what has actually happened there.

I think we should strive to achieve the same standard for ES4. At  
feature granularity, someone should first write an up to date accurate  
document and implementations should be done against that, not against  
some separate shared understanding of the feature.

That's the plan -- see Jeff's paragraph about "feature specs" which I cited in reply to Geoff.

/be

_______________________________________________ Es4-discuss mailing list Es4-discuss@mozilla.org https://mail.mozilla.org/listinfo/es4-discuss


_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to