Mi problema con los frameworks de CSS

Publicado el:

El uso de framework de CSS ha facilitado la vida de varios desarrolladores, pero quiero apuntar a un punto en concreto de estos que no me hace sentir particularmente cómodo con ellos como concepto.


Introducción (Link permanente)

Antes de empezar quiero dejar algo en claro: no me disgusta la idea de un framework de CSS, son usados por muchos desarrolladores por una razón después de todo. Esto no se trata de hablar mal de estos si no de apuntar que el uso de estos viene con un problema de fondo que deberíamos tener en cuenta.


¿Qué es un framework de CSS? (Link permanente)

Algo de contexto rápido: un framework de CSS es un sistema de diseño que puedes aplicar a tus proyectos, así que en lugar de crear tus propias reglas y componentes, este ya trae todo un conjunto de reglas preestablecidas que puedes añadir a tu proyecto.

Algunos de estos frameworks incluyen a herramientas como Bootstrap⁠ (Abre en una nueva pestaña) o Tailwind CSS⁠ (Abre en una nueva pestaña) , este último teniendo un funcionamiento bastante particular al adentrarse en el uso de utility classes. Esto hace bastante rápido la fase de desarrollo ya que puedes enfocarte en el contenido e interactividad de tus sitios.

¿Es esto algo malo? Por supuesto que no. Como dije anteriormente, son herramientas que son usadas por una razón, hacen bien su trabajo después de todo. Sólo quiero dejar algo claro con estos frameworks: estos no solucionan un problema de CSS, estos solucionan un problema de diseño.

¿Problema de CSS o problema de diseño? Link permanente

Para entender mejor este punto, comparemos esto con frameworks o librerías de JavaScript como Angular⁠ (Abre en una nueva pestaña) , Vue.js⁠ (Abre en una nueva pestaña) o Ember⁠ (Abre en una nueva pestaña) . Estos lo que hacen es entregarte una serie de herramientas que permiten resolver problemas de JavaScript al momento de crear aplicaciones web, como la reactividad, velocidad de trabajo o la escalabilidad de un proyecto. Sigues usando JavaScript, sólo que te agregan una serie de funcionalidades extra que hacen tu trabajo más fácil.

Por otro lado, un framework de CSS no agrega nada al uso de CSS actual, lo que hace es darte un sistema preestablecido de diseño que tu puedes usar. Puedes sobreescrir este sistema de diseño para añadir cierto nivel de personalización, como puede que simplemente lo uses así y ya está.

Es casi como si te pudieras saltar el uso de CSS con estos frameworks, por suerte en esta comunidad no hay gente que piense que pueden dejar de usar CSS, ¿Verdad?... ¿Verdad?


Mi problema con estos frameworks (Link permanente)

Como puedes suponer, mi problema no es que estos frameworks existan. Mi problema viene en el uso que cierto grupo de desarrolladores bastante vocales le dan, y el pensamiento que esto trae detrás.

Algunos desarrolladores deciden directamente dejar de usar CSS y pasarse a usar estos frameworks, creyendo que pueden prescindir de CSS en su día a día. Si bien esto con frameworks como Bootstrap no es particularmente notorio (de hecho hasta la fecha he visto 0 casos al respecto), si veo este comportamiento cada tanto en gente fanática de Tailwind.

Y es aquí donde está mi problema: de algún modo hay gente que cree que puedes saltarte una de las bases del desarrollo web como lo es CSS, y lo peor de todo es que por alguna razón hay gente que este razonamiento les parece... ¿Correcto?

Esto está dando lugar a un grupo de desarrolladores que creen que saltarse los fundamentos del diseño web está bien y directamente reemplazarlo con otras herramientas ¿Soy el único que esto le parece una tendencia preocupante?

No es que diga que tienes que ser un experto en HTML, CSS y JavaScript para ser considerado un desarrollador, en absoluto. Sólo para poner un ejemplo, yo no sabía mucho de JavaScript al momento de conseguir mi trabajo actual, eso no me hace ni menos ni más Frontend Developer que nadie, y tampoco quiero que se piense lo mismo de los usuarios de Tailwind. El punto es que los fundamentos son fundamentos por una razón ¿desde cuándo empezamos a considerar que saltárnoslos está bien?

Porque CSS importa Link permanente

¿Por qué traigo el problema de los frameworks de CSS en específico si esto cuenta para los tres pilares del desarrollo Frontend? Bueno, es muy raro escuchar a alguien decir No aprendas JavaScript, aprende React / Angular / Vue / [Agregue aquí framework/librería de JavaScript de su preferencia] porque estos frameworks sea como sea siguen usando JavaScript después de todo, así que sí o sí tienes que aprenderlo.

Pero este acercamiento de los frameworks de CSS hace extrañamente fácil que la gente crea más fácilmente que saltarse aprender CSS está bien ¿Por qué sucede esto? No puedo hablar por todo el mundo, pero he visto que hay Frontend Developers que directamente sufren cuando tienen que escribir CSS, que porque les parece poco lógico, que por temas como las especificidad, la cascada y demás, y en lugar de molestarse en entender por qué CSS es “frustrante” deciden tomar este camino como atajo porque total, algunos creen que JavaScript es más importante.

Y aquí es donde quiero llegar: CSS importa tanto como HTML o JavaScript, es un lenguaje poderoso y en constante evolución que define como vemos la web, que es “raro” por razones en concreto y que requiere un modo de pensar distinto a como vemos un lenguaje de programación y que en lugar de tratar de evadirlo, deberíamos hacer nuestro mejor esfuerzo para entenderlo, así como hacemos nuestor mejor esfuerzo para entender JavaScript.

Es más, llego al punto de pensar que deberían haber miembros en un equipo que se especialicen en CSS, pero estos acercamientos de frameworks de CSS como Tailwind hacen que la gente termine siendo hasta repelida por este lenguaje. Y no exagero, este screenshot lo tomé de de su página:

Pantallazo del sitio oficial de Tailwind con el encabezado ‘Best practices don’t actually work’

No voy a criticar el copywriting de Tailwind por más tentado que esté a hacerlo, pero si quiero apuntar a que este pensamiento de que “es posible saltarse CSS” ha permeado en ciertos niveles de la industria y puede ser un pensamiento dañino a nuestro crecimiento como profesionales.

Al final del día, estos frameworks son modas que pasarán en algún momento, y si bien con los frameworks de JavaScript acabas aprendiendo algo de este, y por extensión, pasarte a otra herramienta será más fácil, con un framework de CSS puedes estar tentado a saltarte ese proceso de aprendizaje, y cuando entren en desuso (porque lo harán, mucho más tarde que temprano, pero lo harán) ¿Qué queda para ti si no te tomaste la molestia de aprender CSS?

No digo que está mal usar un framework de CSS, pero considero que no aprender CSS por reemplazarlo con estas herramientas no hace bien a tu carrera. Descuida, entiendo que aprender un pilar del desarrollo web te cuesta (a la fecha todavía me cuesta JavaScript) y que puede ser un esfuerzo que puede ser confuso, pero es algo que vale la pena aprender.


Para terminar (Link permanente)

Los frameworks de CSS son buenas herramientas que pueden agilizar un proceso de desarrollo, pero su propia naturaleza puede hacer pensar que está bien dejar de aprender CSS y reemplazarlo por un framework. Esto más que una crítica a las herramientas en sí es una invitación a recordar que aprender los fundamentos del desarrollo web sigue y seguirá siendo importante y a recordar el valor de CSS.

Esta es mi primera vez escribiendo artículos de opinión y no sé que tan común sea que repita este formato, lo que si sé es que estaré escribiendo sobre más contenido de temas como CSS o accesibilidad web, puedes seguirme en mi cuenta de Bluesky⁠ (Abre en una nueva pestaña) si te interesa saber más de estos temas.

¡Hasta la próxima vez!

Eda de la serie The Owl House saliendo de su casa mientras dice de forma muy alegre 'byeeee'