XPCOM
# XPCOM

XPCOM (Cross Platform Component Object Model) è un componente software semplice e multipiattaforma simile a CORBA o Microsoft COM.

## Il modello

XPCOM è una tra le principali caratteristiche di Mozilla che lo rendono un vero framework. È un ambiente di sviluppo per la programmazione multipiattaforma che permette:

* La gestione del componente
* L'astrazione dei file
* La trasmissione dei messaggi tra gli oggetti
* La gestione della memoria

Tale modello ad oggetti rende in pratica disponibili tutte le funzionalità di Gecko come una serie di componenti, o come librerie multipiattaforma riutilizzabili, accessibili da un browser web o come script da qualsiasi applicazione Mozilla. Le applicazioni che vogliono accedere alle varie librerie Mozilla XPCOM (networking, sicurezza, DOM, ecc.) usano un layer speciale di XPCOM, chiamato XPConnect, che riflette le interfacce della libreria in JavaScript (o altri linguaggi). XPConnect incolla il front end ai componenti basati su C++ di XPCOM, e può essere esteso per comprendere il supporto allo scripting per altri linguaggi: PyXPCOM già offre supporto per Python, PerlConnect fornisce supporto per il Perl, e sono in corso sforzi per aggiungere il supporto di .NET e Ruby.

Dal punto di vista degli sviluppatori, XPCOM permette di scrivere componenti in C++, JavaScript, Python, o altri linguaggi per cui sono stati creati speciali collegamenti, e permette di compilare ed eseguire tali componenti su dozzine di piattaforme differenti, tra cui queste e altre dove lo stesso Mozilla viene supportato.

La flessibilità di riuso dei componenti XPCOM dalla libreria Gecko e dello sviluppo di nuovi componenti che girano su piattaforme diverse, facilita il rapid application development e risulta in applicazioni che sono più produttive e facili da mantenere. La libreria per il networking, ad esempio, è un insieme di componenti XPCOM accessibile ed utilizzabile da qualsiasi applicazione Mozilla. File I/O, sicurezza, gestione password e profili, sono anch'esse componenti XPCOM separate che i programmatori possono usare nello sviluppo delle loro applicazioni.

## Sviluppo futuro

Un'iniziativa conosciuta come XULRunner sta provando a dividere il componente XPCOM da Mozilla rendendolo stand-alone. L'obiettivo è quello di rendere Mozilla un ambiente di sviluppo comparabile a Java o .NET.

