Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Les informations figurant dans cet article ou cette section doivent être reliées aux sources mentionnées dans les sections «Bibliographie», «Sources» ou «Liens externes» ().
XPCOM est inspiré des technologies CORBA ou Microsoft COM, qui elles-mêmes apportent à des langages statiques une partie des bénéfices (et inconvénients) de langages dynamiques comme Objective-C ou Python. Comme CORBA et COM, XPCOM permet de développer des architectures de composants.
L'architecture est alors:
dynamique:
les composants sont chargés lors de l'exécution,
de nouveaux composants peuvent être ajoutés lors de l'exécution, sans avoir à recompiler ou recharger les composants existants.
certaines informations sur un composant sont connues statiquement,
un composant peut être interrogé afin d'apprendre s'il dispose de certaines capacités, qui pourront être utilisées si le composant répond par l'affirmative.
un composant C++/XPCOM rédigé selon les consignes de Mozilla pourra être recompilé et réutilisé tel quel sur toute plate-forme Mozilla,
les composants JavaScript peuvent être réutilisés immédiatement sur toute plate-forme Mozilla, tout comme les composants non compilés Python, Ruby, Perl.
De plus, les composants XPCOM ont accès aux bibliothèques de Mozilla, ce qui permet notamment d'accéder au moteur de renduGecko, le cœur de l'affichage des pages web par Mozilla et au moteur de réseau Necko, ainsi que de développer des interfaces graphiques en XUL.
Une initiative de Mozilla, XULRunner, vise à séparer les bibliothèques XPCOM de Mozilla des logiciels construits à l'aide de ces bibliothèques. L'objectif est de faire de Mozilla une plate-forme de développement multiplate-forme comparable à la Java ou à l'environnement .Net.