Hallo Ashura,
Die Sprache ist aber kein hartes Unterscheidungskriterium. Extensions kann man sicher auch in C++ schreiben oder zumindest Teile davon. Plugins möglicherweise auch in JavaScript, ich meine mich zumindest zu erinnern, dass es eine Möglichkeit gab, diese bei vorhandernem JavaPlugin in Java zu schreiben (ist aber vielleicht auch nie aus dem Experimentierstadium herausgekommen). Um XUL wird man vermutlich bei Extensions nicht herumkommen.
Der entscheidende Unterschied ist aber, dass Plugins und Extensions eine andere Schnittstelle zum Browser verwenden. Die Pluginschnittstelle ist ja sogar irgendwie (halbwegs?) standardisiert. Außerdem ist ein Plugin drauf beschränkt, Dokumente oder Dokumentteile zu rendern, wärend eine Extension nahezu beliebige Veränderungen am Browser vornehmen kann. (Ich weiß nicht, wie die API aussieht, aber an dem, was es so gibt, sieht man ja, dass diese sehr flexibel sein muss.)
Grüße
Daniel