Chris Coyier có một danh sách tuyệt vời của SASS vs LESS trên tại css-tricks.com . Nó chắc chắn đáng để đọc.
Đối với một số câu hỏi cụ thể của bạn:
cộng đồng
Tôi làm việc hoàn toàn với SASS / La bàn, vì vậy tôi không quen thuộc lắm với cộng đồng của LESS, nhưng tôi cũng không thực sự cần cộng đồng của SASS. Tài liệu của họ là tuyệt vời và đã giải quyết bất kỳ vấn đề tôi đã gặp phải cho đến nay.
Tuy nhiên, đối với những gì nó đáng giá, đây là số liệu thống kê SASS vs LESS mà Chris có trong bài đăng của mình, mà tôi đã cập nhật cho các số hiện tại:
Số lượng sự cố mở trên BÀI: 121
Số lượng sự cố mở trên Sass: 87
Yêu cầu kéo đang chờ xử lý trên BÀI: 13
Yêu cầu kéo đang chờ xử lý trên Sass: 8
Số lần cam kết trong tháng trước ở BÀI: 49
Số lần cam kết trong tháng trước ở Sass: 7
Cần lưu ý, những con số này gần như bị lật khi viết của Chris vào tháng 5 năm 2012. Điều này nói với tôi rằng cả hai đều khá giống nhau về hoạt động phát triển.
Trưởng thành
Về mặt kỹ thuật, Sass già hơn. Nó xuất hiện vào năm 2007, trong khi LESS xuất hiện vào năm 2009. Điều đó nói rằng, những so sánh tôi từng thấy đặt cả hai ở cùng một mức độ "trưởng thành" về các tính năng và không có gì khác.
Cả hai cũng có các khung mang lại nhiều công cụ hơn cho họ. LESS có ít Framework và Centage (ngoài ra, Twitter Bootstrap được xây dựng với LESS). Sass có La bàn, Trọng lực và Tố Tố. Cả hai có thể có nhiều hơn, nếu bạn đào cho họ, nhưng đó là một số trong những người đầu tiên xuất hiện khi bạn tìm kiếm.
Vì vậy, có sự khác biệt thực sự?
Khi nói đến việc viết nó, không thực sự. Nếu bạn sử dụng cú pháp SCSS giống CSS trong Sass (thay vì cú pháp SASS giống Python hơn), bạn chỉ có các khác biệt cú pháp nhỏ điển hình ( @
so với $
), nhưng về phần lớn, về cơ bản chúng giống nhau.
Hai điểm khác biệt lớn nhất trong mã hóa mà tôi tìm thấy là a) cách họ xử lý các đơn vị khi làm toán và b) cách họ xử lý sự kế thừa. Khi được cung cấp một cái gì đó như 20px + 2em
, LESS sẽ bỏ đơn vị thứ hai và giả sử bạn có nghĩa là đơn vị thứ nhất ( 22px
trong khi xây dựng ), trong khi Sass sẽ đưa ra một lỗi (về cơ bản, gõ không khớp). Với tính kế thừa, LESS coi nó như một hỗn hợp (tôi thực sự không thể giải thích rõ về nó, vì vậy hãy xem phần thông tin của bài viết Tuts + này để biết chi tiết).
Việc một người có vượt trội hơn các loại khác hay không phụ thuộc vào cách bạn muốn nó xử lý mọi việc.
Sự khác biệt lớn nhất khác mà tôi biết là cách thức và nơi mỗi người biên dịch theo mặc định. Sass sử dụng Ruby và biên dịch trên máy chủ, cho phép bạn lưu trữ và gửi tệp CSS đã biên dịch đến máy khách. Mặt khác, LESS mặc định sử dụng tập lệnh less.js để biên dịch CSS một cách nhanh chóng. Tuy nhiên, với việc sử dụng Node.js, LESS có thể biên dịch ở phía máy chủ giống như cách mà Sass làm.
Cái nào?
Vì vậy, nếu về cơ bản chúng giống nhau, bạn nên sử dụng cái nào? Chà, trừ khi bạn thực sự yêu thích cú pháp SASS giống như Python, hoặc thực sự nghĩ rằng việc biên dịch phía máy khách là hướng đi, hoặc bạn rất thích cách gọi thừa kế của người khác, điều đó sẽ quan trọng hơn cho dù bạn muốn có (hay không đã có) Ruby hoặc Node.js được cài đặt.