|
At the risk of flogging the Tamarin topic to death...
there seems to be quite a bit of
conceptual confusion between a language and a DOM (document object model) that
I'd like to try to clear up.
_javascript_ 1.X originated in the Netscape browser, but the
language itself isn't concerned with the Windows, Frames,
Documents, Anchors, etc. that exist in a browser DOM. If you look
at the SpiderMonkey implementation of _javascript_ 1.5, it has none of these types
of objects. If you look at how _javascript_ 1.5 is used to extend and automate
some Adobe applications like Dreamweaver, it has a completely different DOM, on
top of the same "core" language.
The _javascript_ language itself is about much more basic stuff...
things like the following examples:
* Syntax: using the var keyword to define a variable; implementing
inheritance by assigning to the .prototype property.
* Builtin data
types: String, Number, Date, Array, RegExp, etc.
* Runtime behavior:
any variable can contain any type of value at runtime; you can get or set any
property on any object at runtime; if a property isn't found on an object, the
language looks up that object's prototype chain for it.
These are
language-level features, not DOM-level features, because they make sense
and are useful with *any* DOM. Sometimes we say that features like these
constitute the "core" of the _javascript_ 1.5 language, although that implies that
the DOM classes are part of the language and they really should be considered
so.
Similarly, ActionScript 3 originated in Flash, but that language
isn't concerned with the Sprites, TextFields, Bitmaps, etc. that exist in the
Flash DOM. Instead, the essence of ActionScript 3 is about more basic things
such as the following:
* Syntax: having
compile-time type annotations; using the class keyword to define a class; using
the private keyword to enforce encapsulation; using the package keyword to
define a package.
* Builtin data
types: having int and uint in additon to Number; having an XML type
with powerful E4X operators.
* Runtime behavior:
runtime type-checking; sealed classes; classes with true class inheritance
rather than prototype-based inheritance; method closures;
namespaces.
Again, these are
language-level features of AS3, independent of the Flash DOM. You can call them
the "core" of AS3 if you want. The flash.* classes are not part of this
core.
The point of
Mozilla's Tamarin project is that it will become an open-source
implementation of a virtual machine (execution engine) for _javascript_ 2 /
ECMAScript 4, a still-in-the-process-of-being-defined *core* language, in the
same way that Mozilla's SpiderMonkey project has been for the _javascript_ 1.5
*core* language.
Tamarin, like
SpiderMonkey, will have *no* DOM of its own. Developers can host any DOM
on top of it, as appropriate for your application. For the
Firefox browser, that will be the browser DOM of Windows, Documents, etc.
For Flash, it will be the Flash DOM of Sprites, TextFields,
etc.
-
Gordon
-- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
SPONSORED LINKS
Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required) Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe __,_._,___ |
- [flexcoders] Language vs. DOM Gordon Smith
- [flexcoders] Re: Language vs. DOM ben.clinkinbeard
- RE: [flexcoders] Re: Language vs. DOM Gordon Smith
- [flexcoders] Re: Language vs. DOM ben.clinkinbeard
- RE: [flexcoders] Re: Language vs. DOM Gordon Smith

