- Đối với khung, tôi thường chỉ đi với khung lớn và trưởng thành với nhiều mô-đun được viết sẵn và cộng đồng lớn. Nói chung, việc chọn một khung này so với khung kia sẽ không thực sự làm giảm số lượng công việc bạn cần dành cho mã của mình, một số khung có thể khuyến khích một mã đẹp hơn, các khung khác có thể thực hiện một số thao tác dễ dàng, nhưng chúng thường tổng hợp rất ít khác biệt so với nỗ lực phát triển toàn diện. Tuy nhiên, các khung phổ biến sẽ có nhiều mô-đun được viết sẵn hơn mà bạn có thể tận dụng và đó là cách bạn thường có thể tiết kiệm nhiều thời gian và công sức hơn.
- Đối với thư viện không có khung nhỏ, nói chung, bạn có thể tự sửa đổi nếu cần mà không gặp vấn đề gì, vì vậy, tôi thường coi cộng đồng là một phần thưởng bổ sung. Hầu hết các thư viện nhỏ chỉ được quản lý bởi một người duy nhất, nhưng họ vẫn tốt hơn là tự xây dựng. Tuy nhiên, đối với các thư viện lớn, việc có một cộng đồng trưởng thành, tích cực và tài liệu là điều cần thiết bởi vì bạn không thể tự mình thực hiện các thay đổi một cách dễ dàng.
- Giấy phép là điều cần thiết. Đối với thư viện một người, có thể bạn sẽ cần phải sửa đổi thư viện, do đó, điều cần thiết là giấy phép của họ cho phép bạn làm như vậy theo các điều khoản mà bạn đồng ý.
Đối với các thư viện nhỏ, bạn phải luôn cho rằng bạn sẽ cần rẽ nhánh và dự án đã bị hủy bỏ. Điều này thường không phải là một vấn đề, đặc biệt là nếu dự án được lưu trữ trên Github hoặc BitBucket, vì chúng khiến cho dự án của người khác trở nên dễ dàng một cách ngu ngốc. Đối với các thư viện nhỏ, bạn luôn có thể tự mình đảm nhận việc bảo trì dự án, nếu người bảo trì ban đầu không còn hoặc nếu họ dự định đi theo hướng dự án đến những nơi bạn không muốn đến.
Tôi ít quan tâm đến hoạt động của dự án, thư viện trưởng thành đã đạt được cảm giác "hoàn hảo" của họ nói chung sẽ chỉ cần sửa lỗi, vì vậy hoạt động của họ bị chậm lại. Hoạt động dự án chỉ quan trọng nếu thư viện liên quan đến mục tiêu đang phát triển tích cực, ví dụ, trình bao bọc cho dịch vụ bên ngoài sẽ cần được cập nhật liên tục khi dịch vụ bên ngoài phát triển, vì vậy việc phát triển tích cực là cần thiết, nhưng thư viện toán học sẽ không cần nhiều phát triển mới một khi nó có tất cả các tính năng cần thiết.
Đối với các thư viện lớn hơn, mọi thứ trở nên khó khăn hơn. Tiếp quản có liên quan nhiều hơn, may mắn thay, các thư viện lớn hơn thường không di chuyển nhanh như vậy, vì chúng thường trưởng thành hơn.
Như @Sam đã nói trong câu trả lời của mình, tôi đồng ý rằng điều quan trọng nhất trong việc đánh giá thư viện nguồn mở là mức độ phù hợp với yêu cầu của bạn. Khi bất kỳ vấn đề giấy phép nào được sắp xếp, việc sử dụng thư viện nguồn mở hiếm khi là một sai lầm vì bạn luôn có thể rẽ nhánh nếu mọi thứ đi về phía nam.