new since ActionScript 3.0 lecture notes

Graydon Hoare graydon at
Wed Feb 13 15:40:20 PST 2008

colin at wrote:
> as i was saying before [ctrl + v, enter] turned into [ctrl + enter] 
> (maybe ctrl+enter is a bad thunderbird shortcut?)....
> ==
> my lecture notes are here:
> they are nearly entirely based on the overview at:
> and the proposals at:
> and francis cheng's helpful guidance.
> comments, corrections, and all feedback very much appreciated.

Some corrections:

   - Union types are spelled (x|y|z) now, not (x,y,z).
     Popularity contest, the pipe character won.

   - ES3 primitives are not exactly "gone", they are simply assigned
     to classes that (hopefully!) perfectly emulate their old
     semantics. There is some (mandated) magic behavior in these
     classes for proper backward-compatibility.

   - The structure of some of these features is presently in debate
     within the committee: at least units, numeric types, generic
     functions, operator overloading, wrap, tail calls.

   - The ES4 wiki has proven to be less-than-ideal for hashing out
     proposals and amendments, so much of the discussion and work
     now takes place within the ES4 ticket tracking system (in which
     there are linear conversations and tickets progress through
     defined states).

Otherwise, good luck with the presentation! Please do emphasize that the 
language is a work in progress -- as are its various implementations -- 
and there is ongoing discussion about which of these aspects will be 
able to peacefully coexist in the spec. Probably some will not make it, 
or will show up wearing different clothes.

You may also wish to emphasize -- I find this is an important point for 
newcomers -- that the type system is a *runtime* type system; it has 
been designed such that a conservative static checker can prove or 
disprove some safety issues in a program, but such static checking is 
entirely optional, as smooth interoperation with unannotated code -- 
deferring all checks to runtime -- was a strict design requirement.


More information about the Es4-discuss mailing list