¿Hay alguna ventaja de SASS sobre LESS? [cerrado]

36

Estoy tratando de investigar sobre estos preprocesadores css.

¿Hay alguna ventaja de usar sass sobre less como preprocesador css? Los factores que estoy buscando incluyen el tamaño de la comunidad, la madurez del proyecto de software, etc.

Sé que había otra pregunta relacionada con esto, pero no fue escrita y cerrada de manera constructiva.

Actualizar

Parece que bootstrap ahora se ha pasado a usar Sass

chrisjlee
fuente

Respuestas:

32

Chris Coyier tiene un resumen impresionante de SASS vs LESS en css-tricks.com . Definitivamente vale la pena leerlo.

En cuanto a algunas de sus preguntas específicas:

Comunidad

Trabajo completamente con SASS / Compass, por lo que no estoy muy familiarizado con la comunidad de LESS, pero tampoco he necesitado realmente la comunidad de SASS. Su documentación es fantástica y ha resuelto cualquier problema que haya tenido hasta ahora.

Sin embargo, para lo que vale, aquí están las estadísticas SASS vs LESS que Chris tiene en su publicación, que he actualizado para los números actuales:

Número de cuestiones abiertas en MENOS: 121
Número de cuestiones abiertas en Sass: 87

Solicitudes de extracción pendientes en MENOS: 13
Solicitudes de extracción pendientes en Sass: 8

Número de confirmaciones en el último mes en MENOS: 49
Cantidad de confirmaciones en el último mes en Sass: 7

Para tener en cuenta, estos números fueron aproximadamente flip-flop a partir de la escritura de Chris en mayo de 2012. Esto me dice que ambos son bastante iguales en lo que respecta a la actividad de desarrollo.

Madurez

Técnicamente hablando, Sass es mayor. Salió en 2007, mientras que MENOS salió en 2009. Dicho esto, las comparaciones que he visto los pusieron a ambos en el mismo nivel de "madurez" en cuanto a características y demás.

Ambos también tienen marcos que les brindan más herramientas. LESS tiene Less Framework y Centage (además, Twitter Bootstrap está construido con LESS). Sass tiene brújula, gravedad y Susy. Es probable que ambos tengan más, si cavas por ellos, pero esos son algunos de los primeros que aparecen cuando buscas.

Entonces, ¿hay alguna diferencia real?

Cuando se trata de escribirlo, no realmente. Si usa la sintaxis SCSS similar a CSS en Sass (en lugar de la sintaxis SASS más similar a Python), solo tiene las diferencias de sintaxis menores típicas ( @vs$ ), pero en su mayor parte, son básicamente las mismas.

Las dos mayores diferencias en la codificación que encontré fueron a) cómo manejan las unidades cuando hacen matemáticas, yb) cómo manejan la herencia. Cuando se le da algo así 20px + 2em, LESS soltará la segunda unidad y asumirá que se refiere a la primera (yending 22px), mientras que Sass arrojará un error (básicamente, falta de coincidencia de tipos). Con la herencia, LESS lo trata como un mixin (realmente no puedo explicarlo bien, así que vea la sección de herencia de este artículo de Tuts + para más detalles).

Que uno sea superior al otro depende de cómo prefiera que maneje las cosas.

La otra gran diferencia que conozco es cómo y dónde se compila cada uno por defecto. Sass utiliza Ruby y compila en el servidor, lo que le permite almacenar y enviar el archivo CSS compilado al cliente. MENOS, por otro lado, usa de manera predeterminada el script less.js para compilar el CSS sobre la marcha. Sin embargo, con el uso de Node.js, LESS puede compilar en el lado del servidor de la misma manera que Sass.

¿Cúal?

Entonces, si son básicamente lo mismo, ¿cuál debería usar? Bueno, a menos que realmente te guste la sintaxis SASS tipo Python, o realmente pienses que la compilación del lado del cliente es el camino a seguir, o prefieres en gran medida la herencia de una llamada sobre la otra, será más importante si prefieres tener (o ya tiene) Ruby o Node.js instalados.

Shauna
fuente
2
+1 Bonito resumen. A menos que se haya agregado recientemente, LESS tampoco tiene nada comparable a
@extend de
El desarrollo de LESS parece haber aumentado mucho en los últimos tiempos. Están agregando una sintaxis @extend en 1.5.0 (: sintaxis extend ()). También están agregando mapas de origen, entre otras cosas.
WraithKenny
WraithKenny: Eso técnicamente todavía los pone detrás de Sass. Los mapas fuente estandarizados están en las ramas de prueba en este momento (y han tenido "mapas fuente" no estándar con --debug-infocomentarios de línea para Firebug y Chrome algunas versiones anteriores desde hace algún tiempo, antes de que salgan los estándar), y los marcadores de posición (básicamente, @extend sin escribir realmente la clase desde la cual extender) están en la última versión.
Shauna
@Shauna no está seguro de cómo están "técnicamente" detrás ... LESS ha tenido "mapas fuente" no estándar "desde el año pasado, y ya tiene mapas fuente estándar en la última versión estable, a diferencia de Sass actualmente.
subhaze
@subhaze: en el momento de los comentarios anteriores, MENOS no tenía la sintaxis extendida, por lo que todavía estaba atrasado en ese aspecto. Además, Sass ha agregado la función de "marcadores de posición" en versiones estables recientes. Dicho esto, no voy a hacer adiciones cada dos meses comparando las características más avanzadas de cada conjunto. Como dije en mi respuesta, ambos son más o menos lo mismo, y cuando uno agrega una característica que el otro no tiene, el otro generalmente no se queda atrás.
Shauna
6

Creo que su elección puede depender al menos un poco de lo que está haciendo o usando; Trabajo principalmente con Rails y es compatible con Sass para su CSS hasta el punto de que se incluye activamente al crear un nuevo proyecto. Si desea usar algo como el siempre popular Bootstrap, que utiliza Less por defecto, no tiene que temer, porque hay muchas gemas populares como bootstrap-sass que le permiten usarlo en su proyecto.

Esto es estrictamente anecdótico, pero cada impresión que tuve personalmente es que Sass tiene una comunidad más amplia y más apoyo, y francamente, la documentación oficial de Sass es mucho más detallada y extensa que la de Less (aumentando el tamaño de la fuente y el relleno para todo no hace una pieza de texto más larga). Si desea entrar en detalles, aunque no estoy completamente familiarizado con Less, basado estrictamente en mirar ambos idiomas, Sass es el único con herencia de selector. Estoy seguro de que hay otras diferencias sobre las que la gente puede dar más detalles.

Al final, todos tienen sus preferencias y si encuentra que uno le conviene mejor que el otro, debe usarlo si puede hacer lo que necesita. Sin embargo, en mi tiempo usando Sass, ciertamente he disfrutado de su claridad y efectividad, particularmente teniendo en cuenta que estoy en el dominio de Rails.

Paul
fuente
De acuerdo, si ya estás en Ruby, SASS tiene sentido. Soy más un tipo JavaScript, ¡MENOS para mí!
WraithKenny
5

No estoy seguro de si Less tiene algo comparable, pero una de las principales ventajas de Sass es la biblioteca Compass , que le proporciona muchos modismos CSS comunes, hacks estándar necesarios para navegadores antiguos y funcionalidades CSS3 sin la necesidad de prefijos de navegador, no mencionar la generación automática de CSS para imágenes de sprites.

Otra ventaja, al menos para mí, es que Sass permite una sintaxis similar a Python que me parece mucho más legible.

Andrea
fuente
Comparable a la brújula? No lo sé, pero tienen Bootstrap de Twitter.
WraithKenny
Bueno, son bestias diferentes. Bootstrap es un conjunto de convenciones y widgets, mientras que Compass es una colección de mixins reutilizables
Andrea
Además, Bootstrap está disponible en Sass.
Shauna