Status of this document
This is just a starter document, it should not be considered complete. Most of the information of this document is based on https://www.mozilla.org/scriptable/ and Creating XPCOM Components
Scriptable Interfaces
Interfaces allow XPCOM components to expose their functionality to the outside world while hiding the inner details of the component implementation. Interfaces are written in an Interface Description Language.
When we label an interface as scriptable, we're saying that components exporting this interface can be referenced (through this interface) from scripts (e.g JavaScript), and that we can write new components implementing the interface using script languages.
XPConnect
XPConnect is a technology that allows scriptable interfaces to be used/implemented from/in JavaScript scripts. No other scripts languages are supported by XPConnect.
Python
There's an extension extensions/python
that bridges the gap between XPCOM and Python, allowing scriptable interfaces to be used/implemented from/in Python scripts.