XPCOM (Cross Platform Component Object Model) is explained better than I can at http://www.mozilla.org/projects/xpcom/ , but in short it's a way for code modules to be able to talk to each other in a way that is flexible enough that components can be in several different languages (so Javascript can talk to C++, for example), and a way that works across different platforms and compilers. This flexibility is a nice thing to have.
On the down side, having lots of XPCOM modules makes the compiler's job harder, and you get larger, slower programs as a result.
http://www.mozilla.org/hacking/cpp_portability/mozilla_decisions.html has some discussion (under the slide) from a Mozilla developer about the overuse of XPCOM in Mozilla. (Not that he was the only one with that view)
Getting on to answer the question, "deCOMtamination" is the process of switching bits of code away from using XPCOM. Various bits of Mozilla's (Gecko's) C++ code are in separate modules and use XPCOM to talk with each other when there's really no need for the extra flexibility - they could talk to each other like bits of a C++ program usually do, or be combined into one larger module, resulting in a program that's faster and smaller.
I may have oversimplified and/or misrepresented some of that. If so, someone that knows more can correct me...
#6 RE: RE: deCOMtamination
by napolj2
Tuesday November 18th, 2003 6:17 AM
Thanks, Mlefevre. That cleared a few things up. So XPCOM is similar to MSCOM but crossplatform and opensource. Most of my coding experience is with numerical computing (Fortran 95, C++), so keeping straight all these acronyms for all these different technologies is giving me a headache.
So the benefits of deCOMtaminating the Gecko core would be to make the GRE as small and fast as possible. Yet leaving XPCOM in makes it easier for people to extend Gecko (since they might already have written their code in other languages). Is this right?
And MSCOM, XPCOM, UNO (http://udk.openoffice.org/common/man/uno.html), .NET's CLI, CORBA, and Java RMI are all basically just different ways of getting different objects and/or languages to communicate with each other?
#7 Re: RE: RE: deCOMtamination
by mlefevre
Tuesday November 18th, 2003 6:36 AM
Yes, what you've said sounds about right. I'm no expert - I'm not even a programmer (aside from a little VBA and Perl, and a few university courses).
MS COM, XPCOM, CORBA etc aren't all equivalent, but basically they're all concerned with objects talking to each other. The IBM articles http://www-106.ibm.com/developerworks/webservices/library/co-xpcom.html seems to give a good outline of what the differences are.