php.js

05 grudnia 2010

Na blogu staram się opublikować coś chociaż raz w miesiącu. Pomysłów na tematy jest więcej tylko czasu brak (wiem, przynudzam już z tym brakiem czasu). Zdarza się tak, że chcę o czymś napisać, tworzę szkic, napiszę klika zdań i… nie kończę, nie publikuję.

Tak było z php.js. Chciałem o tym napisać półtora roku temu! Wspomniałem potem o tej bibliotece we wpisie „Pokochać JavaScript” ale to były zaledwie dwa zdania.

Ostatnimi laty coraz częściej miałem do czynienia z JavaScript, zwłaszcza przez ostatni rok. Początkowo nie byłem z tego powodu jakoś szczególnie radosny ale dzisiaj spokojnie mogę napisać, że darzę JS taką samą sympatią jak PHP. Niestety czasami brakuje mi funkcji dobrze znanych z PHP. Szczególnie w pracy z ciągami znaków.

Nasze kochane PHP zdobyło swoją popularność między innymi dlatego, że posiada wiele wbudowanych funkcji, które rozwiązują za nas szereg często występujących problemów. Rozleniwiony takim komfortem programista (na przykład ja) może czuć się zagubiony i zakłopotany podczas pracy z innymi, mniej przyjaznymi pod tym względem językami (na przykład JavaScript).

Na szczęście kilku zdolnych ludzi powołało do życia zbiór funkcji pod wspólną nazwą php.js. Projekt ten ma na celu przeniesienie popularnych funkcji dostępnych w PHP do JavaScript. Efekt jest imponujący.

Ilość funkcji przeniesionych z PHP sięga 438 (stan na 5 grudnia 2010)! Udostępniono gotowe do ściągnięcia paczki, możemy również sami je tworzyć wybierając tylko te funkcje, które nas interesują. Nic także nie stoi na przeszkodzie aby podejrzeć źródło wybranej funkcji i po prostu przekopiować kod do własnego projektu.

Projekt jest open source, każdy może tam wnieść swoją cenną wiedzę. Z tym jednak coraz ciężej, do oprogramowania zostały już funkcje najbardziej problematyczne w implementacji.

Czerp z tego projektu pełnymi garściami ale nie używaj bezmyślnie całego zbioru funkcji! Nie uwierzę, że pracujesz przy pojedynczym projekcie, który wymaga od Ciebie więcej niż 5% funkcji zawartych w php.js. Przemyśl czego potrzebujesz i zbuduj własny plik lub wklej odpowiednie funkcje do swoich skryptów.

Uwaga
Funkcje z projektu php.js można pobrać w trzech postaciach. Zwykłej, obiektowej (namespaced) i zgodnej z założeniami CommonJS. Jeżeli nie wiesz co wybrać to znaczy, że potrzebujesz postaci domyślnej (zwykłej).


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 :) ).