Już w 2011 roku czytałem trochę na temat pre-procesorów CSS, głównie LESS, które swoje początki zawdzięcza SASS. Nie chodzi mi wcale o jakieś głębokie teorie i porównania, odnośnie funkcjonalności, wydajności i sposobu działania. Zdecydowanie bardziej zastanawiam się, na kierunkiem rozwoju takich narzędzi. Nie lubię tworzenia sztucznych, a czasem nawet komicznych tłumaczeń w języku polskim, dlatego w dalszej części artykułu będę używał wyrażeń preprocesory CSS oraz wstępne przetwarzanie CSS, co i tak brzmi dziwnie.
Dlaczego wstępne przetwarzanie CSS jest potrzebne? Może jest zupełnie inaczej, a CSS ma wystarczające funkcjonalności mimo, że nie zmienił się wiele od lat 90-ch. A może programiści mają zbyt małe umiejętności lub są zbyt leniwi w przypadku skomplikowanych projektów?
Cris Coyer przeprowadził w 2012 roku ankietę na temat preprocesorów CSS i preferencji użytkowników. Więcej na ten temat ankiety i wyników znajdziesz w artykule Poll Results: Popularity of CSS Preprocessors. Wyniki w pewnym stopniu były zaskakujące, dlatego ja również pokusiłem się o analizę.
Który preprocesor CSS i składnia najbardziej odpowiada Twoim preferencjom?
Na powyższe pytanie odpowiedziało prawie 13 tys. osób, choć wyniki statystyczne nigdy nie dają 100% pewności, co do omawianej kwestii.
Sass | 5% |
Scss | 13% |
LESS | 23% |
Stylus | 3% |
Nie lubię żadnego z nich | 7% |
Nie mam preferencji | 2% |
Nie probowałem żadnego z nich | 46% |
Inny | 1% |
Ponieważ moja natura generalnie jest bardziej pesymistyczna niż optymistyczna, zaważam, że 46% ankietowanych nigdy nie używało takich narzędzi. Co moim skromnym zdaniem jest dużym wynikiem. Niekoniecznie niepokojącym, ale z kolei Chris wpada w zachwyt nad pozostałymi 54%, które już czyni dla nie „większość” użytkowników.
Jeśli co druga osoba związana z CSS, nigdy nie używana narzędzi do wstępnego przetwarzania arkuszy stylów kaskadowych to znaczy, że nie rozumie ich szczytnej idea albo jej nie potrzebuje. Jeśli jesteście w tej grupie to sami sobie odpowiecie. Z drugiej jednak strony cieszy fakt, że powstają narzędzia i pomysły, które rozwijają ludzie, bo czegoś im brakuje.
Jeśli ktoś używa preprocesorów CSS to wybór powinien być łatwy choć na rynku istniej co najmniej kilka narzędzi o podobnym zastosowaniu. Jeśli nie wierzysz to sprawdź artykuł 8 CSS preprocessors to speed up development time. Większość ludzi, jeśli nie wszyscy mają osobiste preferencje odnośnie pisania składni CSS. Z tego też względu niektóre narzędzia odpowiadają im bardziej inne mniej.
Prawdopodobnie najszybciej zainteresujesz się projektem LESS, który oprócz pierwszego miejsca na liście jest szeroko rozwijany i dokumentowany przez społeczność. W takich projektach aktualna i przydatna dokumentacja to podstawa, zatem polska strona LESS, także dostępna. Również Sass, ma sporą grupę zwolenników. Kiedy połączymy ludzi o preferencjach sass (5%) oraz scss (13%) to czołówka staje się bardzo mocna.
Sam jeszcze nie zdecydowałem, które z tych narzędzi będę używał, ale LESS wydaje mi się bardziej praktyczny, ze względu na możliwości działania także z poziomu JS. Sass wymaga Ruby i innych zależności, ale nie powinno to być decydujące przy odrzuceniu tego projektu. A jakie są Twoje doświadczenia w tej kwestii?
2 odpowiedzi na “Wstępne przetwarzanie arkuszy stylów kaskadowych”
Z doświadczenia wiem, że najlepsze rozwiązania, to takie, do których doszedłem sam ewolucyjnie. Wtedy najlepiej rozumiem do czego one są i dlaczego tak a nie inaczej działają. Jest to o wiele lepsza metoda niż przyjmowanie nawyków innych osób, których sami do końca nie rozumiemy. Dlatego najczęściej nie stosuję różnych narzędzi tylko dlatego, że inni je polecają ale czekam spokojnie aż sam dojdę do punktu, w którym uznam, że dokładnie takiego narzędzia potrzebuję. Swoją drogą w ten sposób uwalniam się od stosowania przeróżnych udziwnień, które w rzeczywistości nie są przydatne / efektywne / nie do końca wiadomo w czym pomocne.
Z doświadczenia wiem, że ludzie nękający blogi Wordpessa różnymi skryptami są tak przebiegli i zdeterminowani, że potrafią wkleić wszystko do komentarza, aby ten sprawiał wrażenie ludzkiego.