- Para el marco, generalmente solo utilizo un marco grande y maduro con muchos módulos preescritos y una gran comunidad. En general, la elección de un marco sobre el otro no reduciría mucho la cantidad de trabajo que necesita gastar en su propio código. Un marco puede alentar un código más hermoso, otros pueden facilitar ciertas operaciones, pero en general son muy simples. Poca diferencia al esfuerzo de desarrollo total. Sin embargo, los marcos populares tendrían más módulos preescritos que puedes aprovechar y así es como generalmente puedes ahorrar mucho más tiempo y esfuerzo.
- Para bibliotecas pequeñas que no sean de marco, por lo general, podría hacer modificaciones si fuera necesario sin mucho problema, por lo que generalmente consideraría tener comunidad como un bono adicional. La mayoría de las bibliotecas pequeñas solo son administradas por una sola persona, pero aún así son mejores que construirse usted mismo. Para bibliotecas grandes, sin embargo, tener una comunidad madura y activa, y documentación es esencial porque es poco probable que puedas realizar cambios tan fácilmente.
- La licencia es esencial. Para las bibliotecas de una sola persona, es probable que necesite realizar modificaciones en la biblioteca, por lo tanto, es esencial que su licencia le permita hacerlo bajo los términos con los que estaría de acuerdo.
Para las bibliotecas pequeñas, siempre debe asumir que deberá bifurcarse y que el proyecto ya está abandonado. Por lo general, esto no es un problema, especialmente si el proyecto está alojado en Github o BitBucket, porque hacen que el proyecto de otras personas sea estúpidamente sencillo. Para bibliotecas pequeñas, siempre puede hacerse cargo del mantenimiento del proyecto usted mismo, si el mantenedor original se ha ido o si planean llevar la dirección del proyecto a lugares a los que no desea ir.
Estoy menos preocupado por la actividad del proyecto, las bibliotecas maduras que han alcanzado su sentido de "perfección" generalmente solo tendrían que hacer correcciones de errores, por lo que su actividad se desaceleró. La actividad del proyecto solo es importante si la biblioteca incluye un objetivo que está evolucionando activamente, por ejemplo, un contenedor para servicios externos debería actualizarse constantemente a medida que el servicio externo evoluciona, por lo que el desarrollo activo es esencial, pero una biblioteca matemática no necesitaría mucho. nuevo desarrollo una vez que tenga todas las características que necesitaba.
Para bibliotecas más grandes, las cosas se vuelven más difíciles. Asumir es mucho más complicado, afortunadamente las bibliotecas más grandes generalmente no se mueven tan rápido, ya que generalmente son más maduras.
Como @Sam dijo en su respuesta, estoy de acuerdo en que lo más importante al evaluar una biblioteca de código abierto es cuánto se ajusta a sus requisitos. Una vez que se resuelve cualquier problema de licencia, el uso de una biblioteca de código abierto rara vez es un error porque siempre se puede bifurcar si las cosas van al sur.