MozillaZine

Full Article Attached Jan Varga's Root Interview in English

Monday November 17th, 2003

Earlier this month, Mozilla and ex-Netscape developer Jan Varga was interviewed in Czech/Slovak by the Czech Linux and open source site Root. Now, with the kind permission of Root and Jan, MozillaZine is pleased to present a full English translation of this interview.

Thanks to everybody who worked hard to make this translation possible, including Pavel Franc, Adam Hauner, Jan and Root.


#1 Thanks

by varga

Monday November 17th, 2003 2:09 PM

Reply to this message

I would like to thank Victor Perry and Daniel Glazman, too.

#2 Re: Thanks

by trudelle <trudelle@acm.org>

Monday November 17th, 2003 5:46 PM

Reply to this message

Well done Jan! Good job on the English translation, too. :-)

#3 (OT) Trudelle = Peter Trudelle from Netscape?

by peterlairo <Peter@Lairo.com>

Tuesday November 18th, 2003 1:24 AM

Reply to this message

Well, Peter Trudelle(?) is back from the dead. How is my old "foe" from the "profile passwords bug"? :)

<trudelle@ACM.org> -> acm = "asbestos containing material"?

#4 deCOMtamination?

by napolj2

Tuesday November 18th, 2003 3:22 AM

Reply to this message

>Right now, developers are working on the deCOMtamination of the Gecko engine

Can anyone explain what this means, or is this explained on a webpage somewhere?

#5 Re: deCOMtamination?

by mlefevre

Tuesday November 18th, 2003 3:59 AM

Reply to this message

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/ha…ty/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

Reply to this message

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

Reply to this message

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/de…ces/library/co-xpcom.html> seems to give a good outline of what the differences are.