¿Qué es un lenguaje de programación?
Primero, hay que definir qué es un lenguaje de programación, ¿no? Bueno, según lo que he leído:
Un lenguaje de programación es un conjunto de reglas y símbolos que permiten a los programadores comunicarse con una computadora para escribir instrucciones que ésta pueda entender.
Si lo piensas así, un lenguaje de programación es cualquier cosa que nos permita interactuar con una computadora para que haga algo específico. Entonces, CSS entra en esta categoría porque el navegador interpreta sus reglas para mostrar páginas web bonitas y organizadas. Pero bueno, CSS puro no tiene cosas como bucles o condicionales, lo cual es importante en lenguajes "serios" como Python o JavaScript.
CSS: Un lenguaje declarativo
Algo que me ayudó a entender esto es que CSS es declarativo. Es decir, describe el "qué" y no el "cómo". Por ejemplo, en CSS dices que quieres que un texto sea rojo y tenga 16 píxeles de tamaño, pero no le puedes decir "si pasa esto, haz aquello". Para eso necesitas otras cosas, como JavaScript o SCSS. O sea, CSS no tiene esa "lógica" como tal.
SCSS y SASS: Más cerca de la programación
Aquí es donde SCSS y SASS hacen la diferencia. Estas herramientas son como versiones mejoradas de CSS que sí tienen lógica programática. Por ejemplo:
-
Variables y funciones: En SCSS puedes guardar valores y usarlos después. Eso hace todo más ordenado.
$primary-color: #3498db;
body {
background-color: $primary-color;
} -
Condicionales y bucles: Puedes hacer cosas como "si esto es así, haz esto otro" o repetir una acción varias veces. Esto ya es programación.
@for $i from 1 through 5 {
.item-#{$i} {
width: #{10 * $i}px;
}
}
-
Mixins y herencia: Básicamente son bloques de estilos que puedes usar en varios lugares. Como copiar y pegar, pero más elegante.
@mixin button-styles {
padding: 10px;
border-radius: 5px;
}
.button {
@include button-styles;
}
Gracias a estas herramientas, siento que SCSS y SASS sí son lenguajes de programación, o al menos están muy cerca.
¿Entonces CSS cuenta como lenguaje de programación?
Bueno, pues aquí está el dilema. CSS tiene reglas que el navegador interpreta, entonces técnicamente puedes decir que "programas" con CSS. Pero por otro lado, no tiene condicionales ni bucles, así que muchos no lo consideran un lenguaje de programación completo. Yo creo que depende de cómo lo mires.
Si usas SCSS o SASS, ya la cosa cambia. Estas herramientas te dejan escribir lógica real, como condicionales o bucles, lo cual es súper útil para proyectos grandes. Además, CSS puro también ha evolucionado con cosas como calc() o clamp(), que le añaden un poquito de lógica matemática.
Mi conclusión
En mi opinión, CSS, por sí solo, no es un lenguaje de programación "tradicional". Pero si le agregamos SCSS o SASS, pues yo diría que sí entra en esa categoría. Al final, creo que lo importante no es tanto la etiqueta, sino cómo usamos estas herramientas para hacer cosas increíbles en la web.
Este es mi primer artículo, así que si llegaste hasta aquí, ¡gracias por leer! Espero que les haya servido o al menos los haya hecho pensar un poquito más sobre este tema. ¿Qué opinan ustedes? ¿CSS es un lenguaje de programación o no? ¡Los leo!