Есть ли преимущества SASS перед LESS? [закрыто]

36

Я пытаюсь провести исследование этих препроцессоров CSS.

Есть ли какие-либо преимущества использования sass по сравнению с less в качестве препроцессора css? Факторы, которые я ищу, включают размер сообщества, зрелость проекта программного обеспечения и т. Д.

Я знаю, что был еще один вопрос, связанный с этим, но он не был конструктивно написан и закрыт.

Обновить

Похоже, загрузчик перешел на использование Sass

chrisjlee
источник

Ответы:

32

У Криса Койера есть потрясающее краткое изложение SASS vs LESS на css-tricks.com . Это определенно стоит прочитать.

Что касается некоторых ваших конкретных вопросов:

сообщество

Я полностью работаю с SASS / Compass, поэтому я не очень хорошо знаком с сообществом LESS, но при этом я действительно не нуждался в сообществе SASS. Их документация просто фантастическая и решает любые проблемы, с которыми я столкнулся до сих пор.

Для чего это стоит, вот статистика SASS против LESS, которую Крис имеет в своем посте, который я обновил для текущих чисел:

Количество открытых вопросов по LESS: 121
Количество открытых номеров по Sass: 87

Ожидающие запросы на извлечение на LESS: 13
Ожидающие запросы на извлечение на Sass: 8

Число коммитов за последний месяц в SESS: 49
Количество коммитов за последний месяц в Sass: 7

Отметим, что эти цифры были примерно сальто с момента написания Крисом в мае 2012 года. Это говорит мне о том, что они оба довольно равны в отношении деятельности по разработке.

зрелость

Технически говоря, Sass старше. Он вышел в 2007 году, а LESS вышел в 2009 году. Тем не менее, сравнения, которые я видел, показали, что оба они имеют практически одинаковый уровень «зрелости» в отношении функций и тому подобного.

У обоих также есть структуры, которые приносят им больше инструментов. У LESS есть Less Framework и Centage (кроме того, Twitter Bootstrap построен с LESS). У Сасса есть Компас, Гравитация и Сьюзи. Оба, вероятно, имеют больше, если вы покопаетесь в них, но это одни из первых, которые появляются при поиске.

Так есть ли реальные различия?

Когда дело доходит до написания этого, не совсем. Если вы используете CSS-подобный синтаксис SCSS в Sass (вместо более похожего на Python-подобный синтаксис SASS), у вас есть только типичные незначительные синтаксические различия ( @против $), но по большей части они в основном одинаковы.

Два самых больших различия в кодировании, которые я обнаружил, были: а) как они обрабатывают единицы при выполнении математических операций, и б) как они обрабатывают наследование. Когда задано что-то вроде 20px + 2em, LESS отбросит второй блок и предположит, что вы имеете в виду первый (yeilding 22px), а Sass выдаст ошибку (в основном, несоответствие типов). С наследованием LESS воспринимает это как миксин (я не очень хорошо это объясняю, так что подробности смотрите в разделе наследования этой статьи Tuts + ).

Насколько один из них превосходит другой, зависит от того, как вы предпочитаете, чтобы он справлялся с вещами.

Другое большое различие, о котором я знаю, это то, как и где каждый компилируется по умолчанию. Sass использует Ruby и компилирует на сервере, что позволяет вам сохранять и отправлять скомпилированный файл CSS клиенту. LESS, с другой стороны, по умолчанию использует скрипт less.js для компиляции CSS на лету. Однако с использованием Node.js LESS может компилироваться на стороне сервера так же, как это делает Sass.

Который из?

Итак, если они в основном одинаковы, какой из них вы должны использовать? Ну, если вы действительно не любите Python-подобный синтаксис SASS или действительно думаете, что компиляция на стороне клиента - это путь, или вы сильно предпочитаете наследование одного вызова по сравнению с другим, будет иметь значение больше, предпочитаете ли вы иметь (или уже есть) Ruby или Node.js установлены.

Shauna
источник
2
+1 Приятное резюме. Если только он не был добавлен недавно, LESS также не имеет ничего похожего на @extend
steveax
Развитие LESS, кажется, значительно увеличилось в последнее время. Они добавляют синтаксис @extend в 1.5.0 (: extension () синтаксис). Они также добавляют карты источника среди других вещей.
WraithKenny
WraithKenny - Это все еще технически ставит их позади Sass. Стандартизированные исходные карты находятся сейчас в ветвях тестирования (и у них были нестандартные «исходные карты» с --debug-infoкомментариями строк для Firebug и Chrome, несколько версий назад, еще до выхода стандартных), и заполнители (в основном, @extend без фактического написания класса, из которого можно расширяться) в последней версии.
Шона
@Shauna не знает, как они «технически» отстали… LESS имеет «нестандартные« карты-источники »с прошлого года и уже имеет стандартные исходные карты в последней стабильной сборке, в отличие от Sass в настоящее время.
подзаголовок
@subhaze - Во время предыдущих комментариев у LESS не было расширенного синтаксиса, поэтому он все еще был в этом аспекте. Кроме того, Sass добавил функцию «заполнителей» в последние стабильные сборки. Тем не менее, я не собираюсь делать дополнения каждые пару месяцев, сравнивая самые передовые функции каждого набора. Как я сказал в своем ответе, они оба в значительной степени одинаковы, и когда один добавляет функцию, которой нет у другой, другой обычно не сильно отстает.
Шона
6

Я верю, что ваш выбор может зависеть, по крайней мере, от того, что вы делаете или используете; Я работаю в основном с Rails, и он поддерживает Sass для CSS, так что он активно включается при создании нового проекта. Если вы хотите использовать что-то вроде популярного Bootstrap, который по умолчанию использует Less, вам не нужно бояться, потому что есть много популярных гемов, таких как bootstrap-sass, которые позволяют вам использовать его в своем проекте.

Это строго анекдотично, но каждое впечатление, которое я лично испытал, заключается в том, что у Sass больше сообщество и больше поддержки, и, честно говоря, официальная документация по Sass гораздо более подробная и длинная, чем у Less (увеличение размера шрифта и отступов для всего не делает длинную часть текста). Если вы хотите вдаваться в подробности, хотя я не совсем знаком с Less, основанным строго на рассмотрении обоих языков, Sass является единственным, у которого есть наследование селектора. Я уверен, что есть и другая разница, о которой люди могут рассказать.

В конце концов, у каждого свои предпочтения, и если вы обнаружите, что один из них подходит вам лучше, чем другой, вы должны обязательно использовать его, если он может делать то, что вам нужно. Тем не менее, в свое время, используя Sass, я определенно пользовался его ясностью и эффективностью, особенно учитывая, что я нахожусь в области Rails.

Павел
источник
Согласитесь, если вы уже находитесь на Ruby, SASS имеет смысл. Я скорее парень из JavaScript, поэтому МЕНЬШЕ для меня!
WraithKenny
5

Я не уверен, что Less имеет что-то сравнимое, но одно из главных преимуществ Sass - это библиотека Compass , которая предоставляет вам много распространенных идиом CSS, стандартные хаки, необходимые для старых браузеров, и функциональные возможности CSS3 без необходимости префикса браузера, а не упомянуть автоматическую генерацию CSS для изображений спрайтов.

Другое преимущество - по крайней мере для меня - это то, что Sass допускает синтаксис, похожий на Python, который я считаю гораздо более читабельным.

Andrea
источник
Сравним с компасом? Я не знаю, но у них есть Bootstrap Twitter.
WraithKenny
Ну, это разные звери. Bootstrap представляет собой набор соглашений и виджетов, в то время как Compass представляет коллекцию многократно используемых миксинов
Andrea
Кроме того, Bootstrap доступен в Sass.
Шона