У Криса Койера есть потрясающее краткое изложение 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 установлены.