Meine Frage wird durch einen Beitrag von Peter Kriens ausgelöst: Was ist, wenn OSGi Ihre bevorzugte Sprache verwendet hat ?
Ist es also möglich, dass Haskell die OSGi-Spezifikationen implementiert? Wenn nicht, warum?
Ich vermute, Sie fragen, ob es ein OSGi für Haskell geben könnte (Frage 1), und nicht, ob Haskell zur Implementierung der OSGi-Spezifikation (Frage 2) verwendet werden könnte.
Über 1: Ich denke nicht, dass es möglich ist, ohne mehrere Ebenen der Indirektion aufzustellen. Das wichtigste Sprachmerkmal, das notwendig ist, um OSGi für eine Programmiersprache zu implementieren, ist das dynamische Laden und Entladen von Modulen zur Laufzeit. Jetzt ist OSGi - auf eine einfache Art und Weise - eine clevere Möglichkeit, um Java-Klassenlader zu verwenden, während der Entwickler von Code es nicht bemerkt, aber weiterhin "import com.mypackage ..." verwendet.
Ich weiß nicht genug Haskell, aber ich bezweifle, dass Haskell die Hook-Punkte für eine externe Bibliothek hat, die in den Haskell-Interpreter gelangt, so dass Lademodule abgefangen und dynamisch in eine andere Haskell-Datei umgeleitet werden können.
Über 2: Wenn Sie bereit sind, die Sprachunterstützung zu kompromittieren, aber Module mit String-Literalen laden, dann ist es ein nettes kleines Projekt, die Kernideen von OSGi zu implementieren und in Haskell zu verwenden.
Meine Lieblingsimplementierung eines Plugin-Frameworks (ähnlich wie OSGi) ist das Java Plugin Framework . Weniger Code, als man erwarten könnte.