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
|