On Mar 10, 2008, at 9:54 PM, Mark Miller wrote: > ES3 has several abstraction mechanisms: > * lambda abstraction, which it gets approximately as right as Scheme! > * objects as a generalization of records, which has some pros and cons > * prototype-based sharing of common behavior, which is used almost > exclusively by JavaScript programmers to express only class-like > patterns. > > Altogether, ES3 has many virtues and many problems. One of its great > virtues is its almost perfect support for lexical nesting. Virtually > any thisless construct that could appear at top level can also appear > within a nested lexical context with the same meaning. ES3 also avoids > the CommonLisp trap of multiple namespaces, instead siding with > Scheme's single namespace approach. > > Even ignoring ES4's type system, ES4 adds all the following > abstraction mechanisms to those in ES3: > * classes > * packages > * units > * namespaces
You forgot interfaces (and the type system also adds record types, (sort-of)-tuples, typed arrays and parametric types). That does seem like a lot. - Maciej _______________________________________________ Es4-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es4-discuss
