¿Es conveniente utilizar frameworks para desarrollo front-end?

Hasta hace pocos años, el uso de frameworks sólo era habitual para tareas de programación «pura» (por ejemplo, Symfony2 facilita la codificación en PHP). Sin embargo, actualmente existe un auge de los frameworks para maquetado y scripting, es decir, las áreas correspondientes al desarrollo front-end. Soluciones integrales como Bootstrap, Foundation y GroundworkCSS brindan un generoso conjunto de elementos ya implementados en HTML, CSS y JavaScript para que el desarrollador pueda obtener sitios web atractivos en poco tiempo. Pero ¿cuáles son las ventajas y las desventajas de este enfoque?

Ventajas

  • Resultados en menos tiempo. Incluso si no utilizaremos un framework front-end para el producto final, podemos usarlo para generar prototipos y mostrárselos al cliente apenas se inicia el proyecto.
  • Aprendizaje. Al ser abiertos, los frameworks nos permiten conocer a fondo la manera en que se implementan ciertos componentes. Por eso, son útiles para desarrolladores inexpertos.
  • Confiabilidad. Los frameworks son construidos por desarrolladores expertos, que cuidan cada detalle. Los elementos ya implementados que ofrece un framework permiten crear sitios web seguros, que validan estándares y cargan rápido. Podemos despreocuparnos por esos aspectos y confiar en que el framework se encargue de ellos.

Desventajas

  • Malas prácticas. Los frameworks brindan tantas comodidades que muchos desarrolladores inexpertos los utilizan sin preocuparse en entender el código que están observando. Sin aprendizaje no podremos crear sitios realmente personalizados sobre la base que ofrece el framework. Esta práctica está tan extendida que los sitios realizados sobre Bootstrap tienden a parecerse demasiado entre sí.
  • Código no semántico. Como un framework es una solución genérica, las clases e identificadores CSS que generará tendrán nombres sin significado (por ejemplo, div4 en vez de wrapper-noticias) por lo que serán difíciles de implementar. Además, las soluciones automatizadas tienden a utilizar demasiado código para implementar componentes sencillos.
  • Solo para proyectos nuevos. Si nuestra tarea es modificar un sitio web ya en funcionamiento, incorporar un framework traerá muchos dolores de cabeza. Puede resultar difícil integrar las clases CSS y funciones JavaScript ya existentes con las que el framework nos ofrece.

Teniendo en cuenta estos aspectos sabremos si el uso de un framework puede ser conveniente para la tarea de desarrollo front-end que debemos afrontar.