> Is XPCOMM a cross platform language like Java? If so why make it
> instead of using Java?
For heavyweight performance critical client services, java just can't
cut it. That's why most of mozilla's core implementation is in C++.
> Does it use a virtual machine?
No, XPCOM is a cross platform variant of MSCOM. COM=Component Object
Model
The whole point is to separate interface from implementation.
IDL Interfaces are compiled into cross platform binary files/type
libraries.
By doing this, you can now theoretically implement in whatever language
you wish.
Currently C++, javascript, C and python (in the works). <- Correct me if
i'm wrong here . . .
The virtual machine is a runtime compiler. Mozilla's runtime environment
includes javascript, xml, css, html, xpconnect, xpcom etc. This
combination of technology makes for a nice SDK.
> How does XPCOMM work as a cross platform code?
The underlying implementations are done cross platform. Some platform
specific code is certainly necessary. For example to implement
nsILocalFile which is for local file i/o, there is an implementation for
each platform. nsLocalFileUnix.cpp, nsLocalFileMac.cpp,
nsLocalFileOS2.cpp, nsLocalFileWin.cpp. You get the idea. But this
interface is the same across all platforms. So these implementations are
transparent to the developer using these interfaces. Just as java
virtual machines are implemented separately across various platforms.
> I also don't understand what is meant by a "web application" that people
> beyond mozilla would use mozilla technology for.
I never read this article but i know the author. He is a web designer.
I believe he is referring to the fact that a certain level of
application development and application UI or chrome can be created
using web technologies. In mozilla's case xml(xul), css and javascript.
Web designers and developers can build apps using these web
technologies. Designers can dig in and build a full blown UI the same
way you can build a web page.
> I guess you don't mean web pages. Would this mean things like web
> servers or something similar.
No xul pages. You can serve up xul remotely if you like though.
Agree, it all is pretty fascinating.
Hope this helps clarify things some.
--pete