Pokochać JavaScript
25 stycznia 2010
Stało się i nie ma już odwrotu. Trzeba nauczyć się JavaScript. Nie, nie mówię o sobie bo ja już go znam (na jakimś tam akceptowalnym poziomie
). Mówię do Ciebie.
Nie pamiętam kiedy pierwszy raz zetknąłem się z JavaScript ale wiem na co wtedy była moda. Implementacja tego języka w wielu przeglądarkach kulała a jeżeli nawet coś bardziej złożonego działało to w każdej przeglądarce trzeba było to napisać trochę inaczej. Z tego powodu nie było wielu zaawansowanych koderów JS a w sieci krążyły różne skrypciki, które webmasterzy dzisiaj zgodnie określają mianem wodotrysków. Implementacja zegarka albo kalkulatora, “padający śnieg” czy animowany tekst podążający za kursorem myszki – oto na co było stać większość programistów JS i czym zachwycali się twórcy stron www.
Wreszcie przyszło jednak opamiętanie i wszystkie straszydła zaczęły znikać z sieci. Bo na cholerę komuś zegarek na stronie skoro każdy ma go w prawym dolnym rogu… ?
Nadeszły gorsze czasy dla JS… co wyszło temu językowi tylko na dobre
Na całe szczęście język nadal się rozwijał a producenci przeglądarek nie zapomnieli o nim i pomału programowanie ze znośnego stawało się przyjemne. Co mądrzejsi zaczęli się zastanawiać jak wykorzystać potencjał, niemały potencjał należy dodać, tego języka. Po cichu zaczęły się pojawiać jakieś bardziej ambitne próby stworzenia czegoś praktycznego w JavaScript.
Może i Google Maps nie przyniosłoby ze sobą otrzeźwienia (mimo zaawansowanego użycia JS) gdyby nie to, że wykorzystano obiekt XMLHttpRequest (wymyślony przez Microsoft) dzięki któremu od tamtej chwili webmasterzy na całym świecie mogą się cieszyć technologią znaną pod nazwą AJAX.
I zaczęło się
Wchodzisz sobie na stronę, klikasz, coś się dzieje, ewidentnie pobierane są nowe informacje z serwera a strona się nie przeładowała… To była rewolucja, technika ta szybko stała się pragnieniem każdego właściciela www. JavaScript nareszcie został doceniony, to były jego drugie narodziny. Szczęśliwie zbiegło się to w czasie z już całkiem przyzwoitymi implementacjami JS w przeglądarkach.
Dalej opowiadać chyba już nie trzeba, gdyby nie powyżej opisane wydarzenia to Internet z pewnością wyglądałby dzisiaj i działał zdecydowanie gorzej. Właściwie to nawet może nie mielibyśmy dzisiaj Web 2.0? Kto wie, w końcu JS i AJAX miały w tym trendzie bardzo duży udział a nowe możliwości były inspiracją dla pierwszych pionierów.
Dzisiaj programowanie w JS to zupełnie inna bajka niż wtedy gdy pierwszy raz się nim zainteresowałem. Twórcy przeglądarek prześcigają się w implementacji ekstremalnie szybkich silników JavaScript, mamy do wyboru wiele frameworków i bibliotek ułatwiających życie webmasterom a Google jasno daje do zrozumienia swoimi rozwiązaniami (Gmail, Google Maps, Google Docs etc. oraz cała idea Chromium OS), że bez JS już się nie da…
Zachęcam wszystkich do poznawania możliwości JS. Zapewniam Cię, że jeżeli wiążesz swoją przyszłość z tworzeniem stron www to nie masz wyjścia
Na nasze szczęście istnieją takie projekty jak jQuery, dzięki któremu programowanie w JS to poezja. Wybór frameworka należy do Ciebie ale podpowiem Ci, że ja już nie zabieram się za żaden projekt bez jQuery
Oczywiście czasami coś prostego lepiej zaprogramować w czystym JS niż ładować dużą bibliotekę tylko po to aby obsłużyć jeden przycisk. Pamiętaj o tym.
Jeżeli na początku Twojej przygody brakuje Ci wielu rozwiązań z PHP to polecam zainteresować się projektem php.js. Nie radzę dodawać tej biblioteki do swoich stron (chociażby z powodu jej rozmiarów) ale łatwiej będzie Ci się czegoś nauczyć gdy zobaczysz jak zaimplementowane są w JS funkcje z dobrze znanego Ci języka.
Jest też coś dla programistów Java. Napisz wszystko w Javie i użyj Google Web Toolkit a kompilator sam zbuduje całą aplikację łącznie ze skryptami JS. Chociaż nie wszyscy są zdania, że to dobre rozwiązanie…
Podsumowując, chociażbyś bardzo chciał to JavaScript nie unikniesz. Ale nie ma ku temu powodów, czasy się zmieniły zdecydowanie na korzyść tego języka. Zacznij go odkrywać a zobaczysz ile nowych możliwości otworzy się przed Tobą i jak łatwo uzyskać niektóre efekty (zwłaszcza z pomocą narzędzi typu jQuery
).
Blog przede wszystkim o Internecie i mojej pasji jaką jest tworzenie stron www. Ale nie ograniczam się do jednej tematyki, piszę o wszystkim o czym mam ochotę :-)
mati napisał: 25.01.10 o godzinie 16:11
W ramach codziennego czepiania się: “Internet”, nie “internet”.
“Chociaż nie wszyscy są zdania, że to dobre rozwiązanie…” – w tym i ja. Niestety nie udało mi się ani razu napisać czegoś w javie, aby zostało przez GWT poprawnie na JS przekształcone.
MariuszT napisał: 25.01.10 o godzinie 16:58
Osobiście GWT nie testowałem ale też jestem sceptykiem. Jest to jakaś ewolucja ale raczej nie tego oczekuję. Może z punktu widzenia zaawansowanych programistów Java takie rozwiązanie wydaje się atrakcyjne ale ja wolę uczyć się czystego JS. W mojej sytuacji to byłaby groteska aby szlifować Javę tylko po to aby pracować z JS…
Poza tym lubię od początku do końca wiedzieć jak coś działa. Przy GWT miałbym cały czas niemiłe uczucie, że kompilator mógł wygenerować kod, który ja sam bym lepiej i wydajniej napisał. W końcu to tylko maszyna…
mati napisał: 25.01.10 o godzinie 17:23
Owszem – ale tutaj wydajność nie jest kluczowa – wszak JS to client-side.
Część która po GWT pozostaje na serwerze jest pozostawiona w javie (servlet) i tu już masz wpływ na wydajność (a raczej na jej brak – to zasobożerna java).
Ja jednak chetnie pobawie sie GWT 2.0 – tylko czasu brak…
MariuszT napisał: 25.01.10 o godzinie 18:18
No właśnie z tą wydajnością to nie jest tak różowo. Z założenia GWT ma służyć do budowy dużych i bardzo dużych (i jednocześnie bardzo złożonych) aplikacji. Przykład Google Wave o którym zapomniałem wspomnieć we wpisie pokazuje, że wydajność JS może stać się problemem. Dlatego Google rozpoczął wyścig w optymalizacji silników JS w wyszukiwarkach wraz z pojawieniem się Google Chrome. To był sprytny ale przede wszystkim konieczny ruch. Inaczej ludzie nie mogliby korzystać z rozwiązań Google właśnie z powodu wydajności JS.
Druga strona medalu to fakt, że pisząc samemu tak złożone oprogramowanie łatwo popełnić błąd i porobić jakieś wąskie gardła z niską wydajnością. GWT nas od tego uchroni (zakładając, że kompilator jest mądrze napisany i generuje wydajny kod).
Michał napisał: 25.01.10 o godzinie 18:33
” MariuszT napisał: 25.01.10 o godzinie 18:18 ” – Przecież jeszcze nie ma 18 ?!
Jest 17:33. Czyżby zła data na serwerze?
MariuszT napisał: 25.01.10 o godzinie 18:03
Już poprawione. Zauważyłem to jakiś czas temu ale nie chciało mi się zmieniać. Wcześniejsze komentarze będą z błędną godziną ale nowe już wyświetlą się normalnie czego dowodem jest właśnie ten wpis.