Czy są jakieś zalety SASS nad LESS? [Zamknięte]

36

Próbuję przeprowadzić badanie tych preprocesorów css.

Czy są jakieś zalety używania sassa w porównaniu do mniejszej liczby preprocesorów css? Czynniki, których szukam, to wielkość społeczności, dojrzałość projektów oprogramowania itp.

Wiem, że było z tym związane inne pytanie , ale nie zostało ono konstruktywnie napisane i zamknięte.

Aktualizacja

Wygląda na to, że bootstrap przeszedł już do korzystania z Sassa

chrisjlee
źródło

Odpowiedzi:

32

Chris Coyier ma niesamowite podsumowanie SASS vs LESS na css-tricks.com . Zdecydowanie warto przeczytać.

Jeśli chodzi o niektóre z twoich konkretnych pytań:

Społeczność

Pracuję całkowicie z SASS / Compass, więc nie jestem do końca zaznajomiony ze społecznością LESS, ale tak naprawdę nie potrzebowałem społeczności SASS. Ich dokumentacja jest fantastyczna i rozwiązała wszelkie problemy, na które do tej pory napotkałem.

Oto, co warto, oto statystyki SASS vs LESS, które Chris ma w swoim poście, które zaktualizowałem dla bieżących liczb:

Liczba otwartych problemów na LESS: 121
Liczba otwartych problemów na Sass: 87

Oczekujące żądania ściągnięcia na LESS: 13
Oczekujące żądania ściągnięcia na Sass: 8

Liczba zatwierdzeń w ostatnim miesiącu w LESS: 49
Liczba zatwierdzeń w ostatnim miesiącu w Sass: 7

Warto zauważyć, że liczby te były mniej więcej takie same, jak w przypadku pisania Chrisa w maju 2012 roku. To mówi mi, że oba są dość równe pod względem działalności programistycznej.

Dojrzałość

Technicznie rzecz biorąc, Sass jest starszy. Pojawiło się w 2007 roku, podczas gdy LESS pojawiło się w 2009 roku. To powiedziawszy, porównania, które widziałem, stawiają oba z nich na prawie tym samym poziomie „dojrzałości” w odniesieniu do funkcji i tym podobnych.

Oba mają również frameworki, które dostarczają im więcej narzędzi. LESS ma mniej frameworka i Centage (dodatkowo, Twitter Bootstrap jest zbudowany z LESS). Sass ma Kompas, Grawitację i Susy. Oba prawdopodobnie mają więcej, jeśli je kopiesz, ale są to jedne z pierwszych, które pojawiają się podczas wyszukiwania.

Czy są jakieś prawdziwe różnice?

Jeśli chodzi o pisanie, nie bardzo. Jeśli używasz podobnej do CSS składni SCSS w Sass (zamiast bardziej podobnej do Pythona składni SASS), masz tylko typowe niewielkie różnice w składni ( @vs $), ale w większości są one w zasadzie takie same.

Dwie największe różnice w kodowaniu, które znalazłem, to: a) sposób, w jaki radzą sobie z jednostkami podczas matematyki, oraz b) w jaki sposób radzili sobie z dziedziczeniem. Gdy otrzymasz coś w rodzaju 20px + 2em, LESS upuści drugą jednostkę i przyjmie, że masz na myśli pierwszą (yeilding 22px), podczas gdy Sass zgłosi błąd (w zasadzie niedopasowanie typu). Dzięki dziedziczeniu LESS traktuje to jak miks (nie mogę tego dobrze wyjaśnić, więc zobacz sekcję dotyczącą dziedziczenia w tym artykule Tuts + ).

To, czy ktoś jest lepszy od drugiego, zależy od tego, jak wolisz, aby sobie z tym poradził.

Inną największą różnicą, o której wiem, jest to, w jaki sposób i gdzie każda z nich jest domyślnie kompilowana. Sass używa Ruby i kompiluje na serwerze, umożliwiając przechowywanie i wysyłanie skompilowanego pliku CSS do klienta. Z drugiej strony MNIEJ domyślnie używa skryptu less.js do kompilacji CSS w locie. Jednak przy użyciu Node.js LESS może kompilować po stronie serwera w taki sam sposób, jak Sass.

Który?

Więc jeśli są w zasadzie takie same, którego należy użyć? Cóż, chyba że naprawdę podoba ci się składnia SASS podobna do Pythona lub naprawdę nie uważasz, że kompilacja po stronie klienta jest dobrym rozwiązaniem, lub wolisz czyjeś wywołanie dziedziczenia jest ważniejsze niż to, czy wolisz mieć (lub już mają) Zainstalowane Ruby lub Node.js.

Shauna
źródło
2
+1 Ładne podsumowanie. O ile nie został ostatnio dodany, MNIEJ również nie ma nic porównywalnego z @extend Sassa
steveax
Wydaje się, że rozwój LESS ostatnio znacznie wzrósł. Dodają składnię @extend w składni 1.5.0 (: ext ()). Dodają także mapy źródłowe.
WraithKenny,
WraithKenny - To wciąż technicznie stawia ich za Sassem. Znormalizowane mapy źródłowe znajdują się obecnie w gałęziach testujących (i miały niestandardowe „mapy źródłowe” z --debug-infokomentarzami i wierszami dla Firebug i Chrome kilka wersji wstecz, zanim pojawią się standardowe), oraz symbole zastępcze (w zasadzie @extend bez pisania klasy, z której należy rozszerzyć) są w najnowszej wersji.
Shauna
@Shauna nie jest pewny, jak „technicznie” stoją za… MNIEJ ma „niestandardowe” mapy źródłowe ”od zeszłego roku i już ma standardowe mapy źródłowe w najnowszej stabilnej wersji, w przeciwieństwie do Sassa.
podbądź
@subhaze - W czasie poprzednich komentarzy LESS nie miał rozszerzonej składni, więc nadal pozostawał w tyle pod tym względem. Ponadto Sass dodał funkcję „symboli zastępczych” w ostatnich stabilnych kompilacjach. To powiedziawszy, nie będę robił uzupełnień co kilka miesięcy, porównując najbardziej zaawansowane funkcje każdego zestawu. Jak powiedziałem w mojej odpowiedzi, oba są prawie takie same, a gdy jedna dodaje funkcję, której druga nie ma, druga zwykle nie jest daleko w tyle.
Shauna,
6

Wierzę, że twój wybór może zależeć przynajmniej trochę od tego, co robisz lub używasz; Pracuję przede wszystkim z Railsami i obsługuje Sass dla CSS do tego stopnia, że ​​jest on aktywnie dołączany przy tworzeniu nowego projektu. Jeśli chcesz użyć czegoś takiego jak zawsze popularny Bootstrap, który domyślnie używa Less, nie musisz się obawiać, ponieważ istnieje wiele popularnych klejnotów, takich jak bootstrap-sass, które pozwalają ci używać go w swoim projekcie.

Jest to ściśle anegdotyczne, ale każde wrażenie, jakie osobiście miałem, to to, że Sass ma większą społeczność i więcej wsparcia, i szczerze mówiąc oficjalna dokumentacja dla Sassa jest znacznie bardziej szczegółowa i długa niż w przypadku Less (zwiększenie rozmiaru czcionki i dopełniania dla wszystkiego nie tworzy dłuższego fragmentu tekstu). Jeśli chcesz zagłębić się w szczegóły, chociaż nie znam do końca Less, opierając się wyłącznie na obu językach, Sass jest jedynym, który posiada dziedziczenie selektorów. Jestem pewien, że istnieją inne różnice, które ludzie mogą rozwinąć.

W końcu każdy ma swoje preferencje, a jeśli okaże się, że jedno pasuje ci bardziej niż drugie, powinieneś go z całą pewnością użyć, jeśli może zrobić to, czego potrzebujesz. Jednak podczas korzystania z Sassa z pewnością podobała mi się jego przejrzystość i skuteczność, szczególnie biorąc pod uwagę, że jestem w domenie Railsów.

Paweł
źródło
Zgadzam się, jeśli jesteś już na Ruby, SASS ma sens. Jestem bardziej facetem JavaScript, więc MNIE dla mnie!
WraithKenny,
5

Nie jestem pewien, czy Less ma coś porównywalnego, ale jedną z głównych zalet Sass jest biblioteka Compass , która zapewnia wiele typowych idiomów CSS, standardowe hacki potrzebne dla starszych przeglądarek i funkcje CSS3 bez potrzeby prefiksu przeglądarki, a nie wspomnieć o automatycznym generowaniu CSS dla obrazów duszków.

Kolejną zaletą - przynajmniej dla mnie - jest to, że Sass pozwala na składnię podobną do Pythona, którą uważam za znacznie bardziej czytelną.

Andrea
źródło
Porównywalny do kompasu? Nie wiem, ale mają Bootstrap na Twitterze.
WraithKenny,
Cóż, to różne zwierzęta. Bootstrap to zestaw konwencji i widżetów, a Compass to zbiór miksów wielokrotnego użytku
Andrea,
Bootstrap jest również dostępny w Sass.
Shauna