Tiendo a trabajar más con aplicaciones web y aunque trato de ser general, mi respuesta podría no aplicarse a su área de programación.
También voy a usar "marco" sinónimo de "biblioteca".
Antes de implementar un marco, uno debe considerar algunas cosas, aquí hay algunos ejemplos generales.
# 1 ¿El marco ahorrará tiempo y esfuerzo?
La respuesta a esta pregunta es casi siempre sí . Los marcos tienden a construirse para resolver problemas específicos y resolverlos muy bien. Por ejemplo, marcos como EntityFramework pueden salvarlo completamente de escribir código SQL. Lo que puede ser fantástico si su equipo de programación no domina SQL.
Los marcos se construyen para: a) agregar una interfaz amigable para el programador a componentes complejos o b) agregar abstracción a componentes ya conocidos (o establecidos).
El último (o incluso el primero en algunos casos) puede en realidad obstaculizar el desarrollo. Esto se aplica especialmente cuando usted o su equipo de programación va a implementar un nuevo marco, en el que nunca antes han trabajado.
Esto podría ralentizar su proceso de desarrollo, lo que podría ser costoso.
# 2 La escala de su aplicación
Se dice que "cualquier cosa que valga la pena hacer es exagerar" , pero generalmente ese no es el caso. Probablemente no haya una buena razón para implementar un marco de gran tamaño si el objetivo de su aplicación es imprimir "papa" .
Cuando está desarrollando una aplicación (ya sea web, de escritorio, móvil o cualquier otro tipo de aplicación concebible), si siente que el tamaño de su marco "eclipsa" su implementación (tal vez futura), entonces esta podría ser una gran señal de advertencia de que su marco podría simplemente hinchar su aplicación. Una buena anécdota sería si incluyera jQuery, solo para agregar una clase "cargada" a su etiqueta de cuerpo cuando el documento esté listo. Hacer eso solo con JavaScript nativo puede ser un poco más difícil , pero no hincha tu aplicación.
Por otro lado, si un marco hace mucho trabajo sucio en el interior (es decir, marcos de bases de datos), entonces podría ser viable implementarlo, incluso si solo está usando el marco "parcialmente". Una buena anécdota sería no intentar construir su propio controlador ADO.NET o MongoDB, simplemente porque no necesita utilizar toda la biblioteca.
A veces, los marcos vienen de código abierto (y con licencias de 'haz lo que quieras'). Esto abre una nueva posibilidad en la que un equipo de programación solo puede optar por partes de un marco.
Esto finalmente se vincula con las preguntas 1 y 3.
# 3 Impacto.
A veces, implementar un marco puede afectar directamente al usuario final. Esto es especialmente cierto para las aplicaciones web, ya que tener grandes marcos del lado del cliente podría afectar negativamente la experiencia del usuario final. Los usuarios con máquinas más lentas pueden experimentar renderizado lento, problemas de rendimiento con JavaScript o problemas similares causados por máquinas de baja calidad. El usuario con conexiones lentas puede experimentar tiempos de carga lentos (al menos iniciales).
Incluso en otros tipos de aplicaciones, los usuarios finales pueden verse afectados negativamente por las dependencias de sus aplicaciones. Los marcos al menos siempre ocupan algo de espacio en el disco, y si está desarrollando una aplicación móvil (o incluso una aplicación de escritorio), esto podría ser necesario tener en cuenta.
Los marcos del lado del servidor (incluso más específicos de la web) probablemente no afectarán a sus usuarios finales, pero afectarán a su infraestructura . Algunos marcos tienen dependencias mismos que podrían requerir que reinicie el servidor web, ya sea sólo el servicio o el servidor completo.
Algunos marcos también pueden ser muy pesados en recursos.
Por supuesto, esto se remonta a los puntos 1 y 2.
Todo es solo un gran "círculo de consideraciones", y no existe un método científico real para decidir si debe implementar un marco o no.
Corbin March lo resumió muy bien:
Todos los grupos con los que he trabajado hacen lo mismo: adivinan los costos y beneficios, eligen la ruta más productiva y esperan que tengan razón. No es terriblemente científico: una parte de intuición, tres partes de experiencia, una parte de susceptibilidad al marketing, una parte de astucia y cinco partes de opinión de rango.
También es importante no ser elitista . Los marcos son herramientas destinadas a ser utilizadas. Conozco personas de ambos extremos; por un lado, tienes al tipo que hace la vida muy difícil para sí mismo; por el otro lado, tienes al tipo que crea aplicaciones lentas e hinchadas.
Todos los marcos tienen casos de uso, solo es cuestión de implementarlos para los fines correctos.