Thanks, David. First, I'd like to point out that in the blog post I'm putting on the hat of a library author (I happen to be one, but that's beside the point).
One of the first conclusions that I come to (as a library author) is that the idiom described here: http://wiki.ecmascript.org/doku.php?id=harmony:object_extension_literal_class_pattern provides a worse user experience than what I already have. The goal post for any class syntax or idiom is not this: function Blah() Blah.prototype = Object.create(BaseClass.prototype); Blah.prototype.a = function() {}; Blah.prototype.b = function() {}; It is rather this: var MyClass = new Class({ extends: BaseClass, a: function() {}, b: function() {} }); And in the post I conclude fairly early on that the "object extension literal class pattern" described above does not meet or exceed this goal post, not by a long shot. Now, if object literal extensions were such that I could use them in a "class" library (any class library), then that would be fine. But as indicated in the post, they cannot. The full advantages to be derived from object literal extensions with respect to class construction are *unbreakably bound* to the <| operator. As such <| does not fill in missing low-level pieces of the puzzle, so much as dictate how higher level abstractions must be built. I cannot build a higher level class abstraction from fundamentals without leaking the implementation of that abstraction. The answer cannot be that I ought not build higher level abstractions. If the answer is that we'll have a class syntax, then great. But then we have to ask the related question, should "super" et. all defined on the object literal level? And do we even need special <| or .{} syntax, then? Again, thanks David for reading and replying. I have great respect for everyone's ideas, and I'm just trying to fully explore this one. kevin
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

