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
Software development tool Software development Software development services
Home design software Software development company

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

__,_._,___

Reply via email to