En mi actual puesto de trabajo se utilizaba BS por doquier, y progresivamente lo vamos retirando y ahora las paginas son más sencillas y fáciles de mantener al estar basadas las plantillas y soluciones propias, solo con el código que necesitamos y NO MÁS de lo que necesitamos, el código extra, aunque “no haga nada”, siempre molesta y obliga a mantenimiento de una forma u otra.
Entiendo que BS tiene su uso adecuado (al principio el propio BS recomendaba no usarlo en producción, solo para prototipar), pero se ha universalizado y se usa en sitios donde causa más problemas que ventajas.
En mi opinión BS tiene su utilidad para gente que no sabe CSS, te ofrece un sistema sencillo de utilizar donde no te tienes que pelear con los paddings, plantear un grid, etc. Sigues sus normas y te aseguras un resultado aceptable y consistente, pero si eres mínimamente competente con CSS, no hay motivo para usar BS por los siguientes problemas (en mi opinión, ojo). Vaya por delante que hablo de la versión 3 de BootStrap, que es la que conozco y la que se usa mayoritariamente.
Bootstrap liga contenidos y presentación.
Aunque últimamente esta en discusión, o simplemente desechada, me sigue gustando el viejo paradigma de no ligar el marcado HTML a un diseño determinado, el “enfoque Css Garden”.
En el código html solo debería haber referencias a la función de los contenidos, no a su presentación, eso es tarea del CSS. En el html un titular deberia bastar con poco mas que un <h1> y alguna clase que nos informe de su función en un momento dado, como si titular de un destacado, del cuerpo de una noticia, etc., no deberiamos añadirle clases para indicar si es de un determinado color, o se alinea a un lado u otro. BS nos devuelve a los tiempos en que se usaba <center> para centrar un contenido o <font> para indicar el color de un texto. Con BS, si trabajas de la forma correcta, tienes que editar el html para cambiar la presentación, lo que, en ámbitos empresariales por ejemplo, a veces implica la intervención extra de un programador, aprobación por parte de terceros del cambio de contenidos, etc. complicando una labor que debería ser sencilla y trivial.
Bootstrap es poco eficiente.
Las soluciones de amplio espectro nunca son eficientes, como una navaja suiza, son validas para situaciones de emergencia (prototipos) pero no para resolver un problema real (producción). Con bootstrap arrastras cientos de clases que no vas a utilizar nunca y que añaden Kb a la fase mas importante de la carga de la pagina, html, js y css. Te puedes beneficiar del CDN, pero difícilmente no necesitaras ningún cambio ni clase extra. Casi “obligatoriamente” tendrás que usar una versión propia de BS o añadir una nueva hoja de estilos, con lo que esta ventaja se pierde
El responsive funciona a saltos fijos y está anticuado.
Se ha quedado muy anticuado en este aspecto, y el responsive está pensado en unos saltos de ancho que pueden convenirte o no según tu target. Quizá quieras más atención a los formatos móvil y para tu público apenas sean importantes las pantallas de escritorio y quisieras refinarlo mas en esos tramos. Por ejemplo bootstrap trata igual a todas las pantallas por debajo de 480px y a veces conviene afinar mas en segun que targets.
Ademas las medidas son en pixels, y apenas se utilizan soluciones “fluidas”, propiedades como flex ni siquera están incorporadas, etc.
Entiendo que algunas de estas cosas se pueden corregir pero…
Es DIFÍCIL de modificar.
Como pasa muchas veces con los css producidos con preprocesadores como less, sass, etc. las clases en BS están hiperdefinidas. Las herencias son enrevesadas y si modificas directamente una clase, nunca puedes estar muy seguro de que repercusiones puede tener en otras partes de la web o con otras combinaciones de clases. No esta pensado para realizar modificaciones directamente en el css, o machacando propiedades con un css posterior, sino editando su archivo less, pero me extrañaria que uses bootstrap si usas preprocesadores css a no ser que estes en una situación muy especifica.
Bootstrap es un desarrollo ajeno.
Con todo lo que ello conlleva, puede ser positivo o negativo. Puede ser positivo porque te beneficias de las actualizaciones y soporte de un sistema estandarizado. O negativo cuando anuncian la versión 4 y no es compatible con la anterior. Y todo el aprendizaje que requiere BS, que no es difícil pero si necesario, ya no sirve para nada. Si quieres actualizar tus webs a los “nuevos tiempos” tendrás que rehacer el código por completo. Es mejor dedicar ese aprendizaje y ese tiempo en un sistema propio adaptado a tus necesidades que puedas ir actualizando rutinariamente.
Complica el código
En BS para utilizar una columna tienes que meterla dentro de un div con la clase .row para que se anulen mutuamente sus paddings positivos/negativos. Ese div.row no existe para indicar una categorización del contenido, ni tiene otra función que corregir un problema de diseño (el centrado visual correcto de las columnas). Usando BS te obligas a introducir código html extra para resolver tareas de diseño, y una ristra de clases para cada etiqueta que tampoco tiene sentido (fuera de la obligación de usar una solución de amplio espectro)