Dlaczego jQuery to zło?
Opublikowany: 20.06.2011 12:36:27 | Komentarzy 4
Odkąd jQuery się pojawiło, zmieniło się podejście do JavaScriptu. Można powiedzieć, że zrewolucjonizowało to podejście do JS. Głównie przez działające pod wszystkimi przeglądarkami efekty, manipulację DOM czy AJAX. To jest dobre. Sam korzystam z jQuery, ale trzeba powiedzieć to wprost - jQuery to zło.
Może być trochę kontrowersyjnie. Może będzie z tego jakaś ciekawa dyskusja. Nie chcę też potępiać jQuery, bo to fajne narzędzie i ułatwia trochę dodawanie efektów na stronę. Jeżeli ktoś chce być bardziej PRO, to musi wiedzieć, że na jQuery świat się nie kończy.
Dlaczego jest złe?
Wiem, że dobry programista to leniwy programista. Ale bez przesady. Jeżeli ktoś podpina jQuery do strony tylko po to, aby zrobić kilka rzeczy po kliknięciu, to chyba jest to przerost formy nad treścią. To samo przecież dzieje się, gdy chcemy pobrać jakiś konkretny element ze strony (bez względu czy po ID czy po klasie).
Na prawdę trzeba zaciągać kilkadziesiąt KB, by zrobić coś takiego:
var el = document.getElementById('unikalny_element');
Nadać temu jakiś styl, zmienić klasę czy przypisać zdarzenie po kliknięciu?
el.onclick = function() { // tutaj cała magia po kliknięciu }
Kolejna rzecz to upośledzenie programisty - o ile można tak kogoś nazwać, który nie wie co się dzieje w tle. Skoro działa, to działa - po co zagłębiać się w szczegóły? Po co wiedzieć które "zapytania" do elementu DOM są bardziej wydajne a które nie? Ważne, że podaję "łańcuch" i zwraca mi to elementy (lub element) które chcę dostać. Analizował ktoś ko źródłowy jQuery? Przecież to istna kopalnia wiedzy - nic tylko siedzieć, analizować i się uczyć.
Co więcej, dzisiaj dla niektórych osób jQuery = JavaScript (jest tożsame). Żeby było śmieszniej, słyszałem już takie opowieści z rozmów wstępnych na stanowisko webdevelopera czy programisty JavaScript gdzie na pytanie: "czy znasz javascript?" lub "co umiesz z JavaScript?" pada odpowiedź (z błyskiem w oku): "tak, jQuery" :).
Komentarze
$('#content > h1').xxxx();
Ale jak się ktoś rozmarzy to może i zrobić coś takiego:
$('body #container h1').xxxx(); -> nie trzeba chyba tłumaczyć, że takie wskazanie ma skutki uboczne i powoduje też narzuty obliczeniowe, bo JS będzie szukał nagłówków we wszystkich dzieciach containera.
jQuery owszem, nie zawsze warto używać, zwłaszcza jeśli mamy do czynienia z małymi aplikacjami. Wtedy warto zwrócić uwagę na mini-frameworki: http://microjs.com/
Na pewno jednak jQuery nie jestem złem, ale wydaje mi się, że tytuł miał po prostu wzbudzać kontrowersje ;)
"ktoś ko źródłowy" brakuje "d", powinno być "kod źródłowy"
Generalnie sie zgadzam z treścią, ludzie zaczynaja popadać w skrajności i do wszystkiego używają jQuery, chociaż czasami jest zupełnie nie potrzebne.
Miejmy nadzieję, że niedlugo adopcja standardów będzie tak duża, że jQuery przestanie być potrzebne
Mimo wszystko lepiej nauczyć się najpierw czystego Javascriptu, a później bawić bibliotekami, niż odwrotnie. Jak to ktoś napisał, jQuery ma niski próg wejścia i bardzo łatwo można się go nauczyć, a później mieć błędne przeświadczenie, że jest się programistą Javascript.
Dodaj komentarz