- W przypadku frameworku generalnie używam tylko dużego i dojrzałego frameworka z dużą ilością wstępnie napisanych modułów i dużej społeczności. Ogólnie rzecz biorąc, wybranie jednego frameworka w stosunku do drugiego tak naprawdę nie zmniejszyłoby dużo pracy, którą musisz poświęcić na własny kod, niektóre frameworki mogą zachęcać do piękniejszego kodu, inne mogą ułatwić pewne operacje, ale ogólnie rzecz biorąc mała różnica w stosunku do całkowitego wysiłku rozwojowego. Jednak popularne frameworki miałyby więcej wstępnie napisanych modułów, które można wykorzystać i w ten sposób zwykle można zaoszczędzić znacznie więcej czasu i wysiłku.
- W przypadku małej biblioteki innej niż frameworku, ogólnie możesz samodzielnie wprowadzić modyfikacje, jeśli zajdzie taka potrzeba, bez większego problemu, więc zwykle uważam społeczność za dodatkowy bonus. Większość małych bibliotek jest zarządzana tylko przez jedną osobę, ale nadal są lepsze niż budowanie siebie. Jednak w przypadku dużych bibliotek posiadanie dojrzałej, aktywnej społeczności i dokumentacji jest niezbędne, ponieważ prawdopodobnie nie będziesz w stanie samodzielnie wprowadzić zmian.
- Licencja jest niezbędna. W przypadku bibliotek jednoosobowych prawdopodobne jest, że będziesz musiał wprowadzić zmiany w bibliotece, dlatego ważne jest, aby ich licencja na to pozwalała na warunkach, z którymi się zgadzasz.
W przypadku małych bibliotek należy zawsze zakładać, że konieczne będzie rozwidlenie i że projekt jest już porzucony. Zwykle nie stanowi to problemu, szczególnie jeśli projekt jest hostowany na Github lub BitBucket, ponieważ sprawiają, że rozwiązywanie projektów innych ludzi jest głupio łatwe. W przypadku małych bibliotek zawsze możesz samodzielnie przejąć utrzymanie projektu, jeśli oryginalny opiekun zniknie lub jeśli planują obrać kierunek projektu w miejsca, do których nie chcesz iść.
Nie interesuję się aktywnością projektu, dojrzała biblioteka, która osiągnęła poczucie „doskonałości”, zwykle musiałaby tylko naprawiać błędy, więc ich aktywność spowolniła. Aktywność projektu jest ważna tylko wtedy, gdy biblioteka obejmuje cel, który aktywnie się rozwija, na przykład opakowanie usługi zewnętrznej musiałoby być stale aktualizowane w miarę ewolucji usługi zewnętrznej, więc aktywny rozwój jest niezbędny, ale biblioteka matematyczna nie potrzebowałaby wiele nowy program, gdy będzie miał wszystkie potrzebne funkcje.
W przypadku większych bibliotek sprawy stają się trudniejsze. Przejęcie jest znacznie bardziej zaangażowane, na szczęście większe biblioteki zwykle nie poruszają się tak szybko, ponieważ są na ogół bardziej dojrzałe.
Jak powiedział @Sam w swojej odpowiedzi, zgadzam się, że najważniejszą rzeczą w ocenie biblioteki open source jest to, jak bardzo pasuje ona do twoich wymagań. Po rozwiązaniu problemu z licencją rzadko korzysta się z biblioteki typu open source, ponieważ zawsze można rozwidlić, jeśli wszystko pójdzie na południe.