XPCOM è la gioia e dolore di tutti gli sviluppatori della piattaforma Mozilla XULRunner: la porta d'accesso a tutta una serie di servizi privilegiati che il WebContent si sogna :-) ma al tempo stesso è la porta d'accesso ad un inferno in terra :-(
Accedere alle interfacce XPCOM fa molto CORBA, anche nei linguaggi ad alto livello come Javascript, Python o Java... realizzare nuove interfacce XPCOM fa ancora più CORBA... anche realizzandole in Javascript...
Per non parlare poi dei componenti binari... effettuare il binding di una libreria nativa in una (o più) interfacce XPCOM richiederà la scrittura di un buon numero di linee di codice in C++, composto da una quantità abnorme di macro "semplificative" e stub generati dall'IDL :-(
JS-CTypes nasce da una iniziativa di Mark Finkle ed ha lo scopo di fornire al linguaggio di scripting principe della piattaforma Mozilla XULRunner (Javascript) un modo più naturale per effettuare il binding di libreria native attraverso libffi e un API simile a CTypes (che troviamo di serie in Python).