- Für Framework gehe ich generell nur mit großem und ausgereiftem Framework mit vielen vorgefertigten Modulen und großer Community um. Im Allgemeinen würde die Auswahl eines Frameworks gegenüber dem anderen den Arbeitsaufwand für Ihren eigenen Code nicht wesentlich verringern. Einige Frameworks können einen schöneren Code fördern, andere können bestimmte Vorgänge vereinfachen, aber sie summieren sich im Allgemeinen auf sehr viel kleiner Unterschied zum gesamten Entwicklungsaufwand. In gängigen Frameworks gibt es jedoch mehr vorgefertigte Module, die Sie nutzen können. Auf diese Weise können Sie in der Regel viel mehr Zeit und Mühe sparen.
- Bei kleinen Nicht-Framework-Bibliotheken können Sie im Allgemeinen bei Bedarf problemlos Änderungen selbst vornehmen. Daher würde ich in der Regel eine Community als zusätzlichen Bonus in Betracht ziehen. Die meisten kleinen Bibliotheken werden nur von einer einzelnen Person verwaltet, aber sie sind immer noch besser als selbst zu bauen. Für große Bibliotheken ist es jedoch wichtig, eine ausgereifte, aktive Community und Dokumentation zu haben, da es unwahrscheinlich ist, dass Sie selbst so einfach Änderungen vornehmen können.
- Lizenz ist unerlässlich. Für Ein-Mann-Bibliotheken ist es wahrscheinlich, dass Sie Änderungen an der Bibliothek vornehmen müssen. Daher ist es wichtig, dass die Lizenz dies unter Bedingungen erlaubt, mit denen Sie einverstanden sind.
Bei kleinen Bibliotheken sollten Sie immer davon ausgehen, dass Sie sich trennen müssen und das Projekt bereits abgebrochen wurde. Dies ist normalerweise kein Problem, besonders wenn das Projekt auf Github oder BitBucket gehostet wird, weil sie es dumm machen, das Projekt anderer Leute zu forken. Bei kleinen Bibliotheken können Sie die Wartung des Projekts jederzeit selbst übernehmen, wenn der ursprüngliche Projektbetreuer nicht mehr vorhanden ist oder die Projektrichtung an Orten übernehmen möchte, an denen Sie nicht mehr arbeiten möchten.
Ich mache mir weniger Sorgen um die Projektaktivität, da ausgereifte Bibliotheken, die ihr Gefühl der "Perfektion" erlangt haben, im Allgemeinen nur noch Fehlerbehebungen vornehmen müssen, sodass sich ihre Aktivität verlangsamt. Die Projektaktivität ist nur wichtig, wenn die Bibliothek ein sich aktiv entwickelndes Ziel enthält. Beispielsweise müsste ein Wrapper für externe Services ständig aktualisiert werden, wenn sich der externe Service weiterentwickelt. Daher ist eine aktive Entwicklung unerlässlich, eine Mathematikbibliothek jedoch nicht viel Neuentwicklung, wenn sie alle Funktionen hat, die sie benötigt.
Für größere Bibliotheken wird es schwieriger. Die Übernahme ist viel aufwendiger, zum Glück bewegen sich größere Bibliotheken in der Regel nicht so schnell, da sie in der Regel ausgereifter sind.
Wie @Sam in seiner Antwort sagte, stimme ich zu, dass das Wichtigste bei der Bewertung von Open Source-Bibliotheken darin besteht, wie weit es Ihren Anforderungen entspricht. Sobald alle Lizenzprobleme geklärt sind, ist die Verwendung einer Open-Source-Bibliothek selten ein Fehler, da Sie immer nach Süden gehen können.