JavaScript - lingua franca Internetu

Oryginalny post: JavaScript: The Lingua Franca of the Web

Autor: Jeff Atwood

Mike Shaver, członek-założyciel Mozilla Organization wyraża mocne przekonania na temat przyczyn popularności Internetu:

Jeśli wybierasz platformę powiązaną z konkretnymi narzędziami, jeśli porzucasz swobodną współpracę przez Zobacz Źródło, mashupy robione na zasadzie copy-and-paste i możliwość zapakowania jQuery tam gdzie wcześniej siedział Prototype, wtedy tracisz to, co spowodowało rozrost i rozproszoną ewolucję sieci. Tracisz to, co spowodowało, że sieć jest tak niesamowita, i że sieć wygrywa.

Zgodna z duchem open source, wirusowa natura menu Zobacz Źródło z pewnością jest kluczową składową sukcesu Internetu. Ale to tylko część historii. Dojrzewanie implementacji JavaScriptu w nowoczesnych przeglądarkach jest fundamentem dla teraźniejszości i przyszłości Internetu:

Jednym ze składników Web 2.0 jest z pewnością Ajax, a który cały czas trudno mi pisać bez cudzysłowia. W zasadzie „Ajax” znaczy tyle, co „JavaScript wreszcie działa”. Oznacza to z kolei, że aplikacje webowe mogą być tworzone tak, aby działały podobnie do desktopowych.

Tak jak wielu innych programistów, na początku odrzuciłem JavaScript jako język-zabawkę. Nawet Douglas „mój pseudonim to JavaScript” Crockford miał takie błędne mniemanie:

Kiedy wprowadzony został JavaScript zlekceważyłem go, jako nie wart mojej uwagi. Znacznie później przyjrzałem się bliżej i odkryłem, że ukryty w przeglądarce był wspaniałym językiem programowania. Moje wcześniejsze podejście opierało się na pierwszych charakterystykach JavaScriptu dostarczanych przez Suna i Netscape'a. Chcąc uniknąć traktowania JavaScriptu jako konkurenta dla Javy, wypowiadano na jego temat wiele mylących zdań. Pokutuje to do dzisiaj w postaci źle napisanych książek na temat JavaScriptu dla opornych i amatorów.

Bez względu na Twoje pierwsze opinie o języku, JavaScript przeszedł długą drogę od kiepskiego dla niego roku 1995. Obecnie mamy bardzo mocne procesory po stronie klienta. Na tyle mocne, że nawet interpretowany, dynamicznie typowany język, taki jak JavaScript, może być wiarygodnym środowiskiem deweloperskim. Język standaryzowany jest od początku 1999 roku jako ECMA-262 edycja 3 (aktualna edycja oznaczona jest numerem 5 -- przyp. tłum.), więc racjonalnym jest oczekiwać kompatybilności między przeglądarkami.

Coraz więcej i więcej stron internetowych wykorzystuje JavaScript do pokonywania granic wynikających z ograniczeń przeglądarek. Pomysł, aby przeglądać Internet z wyłączoną obsługą JavaScriptu został praktycznie porzucony. Wraz z sukcesem tak wielu startupów opartych na niczym innym, tylko właśnie na JavaScripcie, HTMLu i wybranym języku serwerowym, mógłbyś pomyśleć, że JavaScript zyska zasłużony szacunek. Ale cały czas możesz usłyszeć utyskiwania na JavaScript, nawet dzisiaj. Scott Koon znalazł sposób, żeby to dobrze ująć:

JavaScript wygrał z powodu braku innych kandydatów. Ludzie chcieli tworzyć lepsze aplikacje webowe. Programowanie z użyciem Flasha było kiepskie. JavaScript był już w każdej przeglądarce. Jeśli jesteś ostatnim mężczyzną na Ziemi, nie ma znaczenia jak mało jesteś atrakcyjny, kiedy pojawia się kobieta, aby ponownie zaludnić planetę.

Niektórzy programiści zrobią prawie wszystko, żeby tylko uniknąć konieczności stawiania stopy w brudny świat niedoskonałego JavaScriptu. Dostawcy bardzo chętnie oferują alternatywy:

Ale wbrew wszystkim pretendentom do tronu, JavaScript w najbliższym czasie nigdzie się nie wybiera. JavaScript jest najbardziej powszechnym środowiskiem uruchomieniowym na świecie. Już nadszedł ten czas, kiedy nauczyliśmy się akceptować JavaScript, a nie ślepo z nim walczyć. Nie oznacza to, że nie powinniśmy badać alternatyw -- ale najlepszym sposobem na przekroczenie ograniczeń JavaScriptu jest wtopienie się w te ograniczenia. Dzięki temu przynajmniej dowiesz się o co walczysz, i co rzeczywiście niosą za sobą alternatywy.

Czy JavaScript jest czasami denerwujący? Jasne. Czy utrudnia i tak trudną do uzyskania kompatybilność między przeglądarkami? Absolutnie. Czy debugowanie w przeglądarce jest bolesne? Jesteś tego pewien, aczkolwiek FireBug pomaga. Bo to jest tak: JavaScript jest tak samo przełomowy jak wkurzający.

Składnia podobna do tej znanej z C -- w tym nawiasy klamrowe i budowa pętli for -- powodują, że JavaScript wygląda na typowy język proceduralny. To jest mylące, ponieważ JavaScript posiada więcej wspólnego z językami funkcyjnymi takimi jak Lisp lub Scheme niż z C lub Javą. Ma tablice zamiast list i obiekty mogące działać jako listy właściwości (tablice asocjacyjne). Funkcje są obiektami typu first class (czyli mogą być przekazywane jako parametry, zwracane w podfunkcjach albo przypisywane zmiennym –- przyp. tłum.). JavaScript ma domknięcia (ang. closures). Możesz posługiwać się rachunkiem lambda bez konieczności balansowania tych wszystkich nawiasów.

JavaScript to lingua franca Internetu. Zignoruj tę wiadomość na własną odpowiedzialność.

Jeśli chcesz od początku zapoznać się z JavaScriptem, wtedy cały czas najlepszym materiałem w sieci jest strona Douglasa Crockforda. Mogę również zarekomendować serie filmów Douglasa Crockforda na Yahoo, które są przykładem świetnego i nowoczesnego myślenia na temat JavaScriptu.

Do kompletu możesz ściągnąć slajdy tych prezentacji ze świetnego Yahoo User Interface Blog.

Na horyzoncie pojawia się kilka ciekawych alternatyw dla JavaScriptu. Niektóre odniosą sukces, inne nie. Ale w całym tym natłoku narzędzi i nowych możliwości nie zapominaj, że JavaScript pozostaje świetnym wyborem dla tworzenia bogatych aplikacji internetowych -– i ponieważ JavaScript to lingua franca sieci, jego sukces jest gwarantowany.

Data publikacji oryginału: maj 21 2007

4 komentarze:

Tomasz Kowalczyk pisze...

Jeśli miałbym wybierać pomiędzy JS a technologiami Flashopodobnymi, to na pewno wybór padłby na ten pierwszy... a co do "brudnego świata niedoskonałego JavaScriptu" - widziałem gorsze rzeczy niż kawałek skryptu zaszytego w HTMLu. Inną sprawą jest, że która[y] technologia / język jest bezbłędna[y] niech weźmie i rzuci kamieniem...

Konradzik pisze...

Najnowsze wersje action scriptu flasha, z tego co rzuciłem okiem, to już zupełnie rozsądne rozwiązanie dla programistów. Na pewno bardziej rozsądne niż 'czysty' javascript. Ale kto dziś używa 'czystego' javascript?

Nawet jak mam do napisania 'ukryj diva' to robię to w jQuery bo jQuery po prostu jest ładowane na każdej podstronie, i to nie tylko u mnie, ale na wszystkich dużych portalach.

jQuery jest najbardziej popularne (od kilku dni jest wersja 1.4!), ale przecież jest cała masa innych rozwiązań: prototype, ext js, mootools, raphaeljs czy GWT googla.

Ostatnio widziałem oferty pracy w Niemczech pt. "Senior javascript developer". U nas w kraju takiej pracy nie ma, ale są ludzie na świecie którzy pracują TYLKO i NA CODIZEŃ z js w DUŻYCH firmach.

b.YISK pisze...

@Tomasz Kowalczyk: muszę zmienić księgarnię w takim razie, bo w mojej nie sprzedają książek o technologiach rzucających kamieniami.

KonradKubiec.com pisze...

Co do innych technologii, np. Flash - też korzystają z JS żeby "osadzić się" na stronie i/lub obejść ograniczenia, które zgotowali ich autorzy.

Osobiście jestem "aktywnym urzytkownikiem" technologii Flash, gdyż obecnie daje najbardziej mi odpowiadające podejście - zero nerwów z pisaniem haków na konkretne przeglądarki dla rozwiązań niskiego poziomu.

Liczę,że niedługo nastąpi powrót do czystego JS i pojawią się solidne narzędzia wspierające programowanie właśnie dla czystego JS i jego frameworków. Obecnie programowanie tylko poprzez frameworki jest "spaczeniem" pokazującym nieudolność reagowania projektantów języka na oczekiwania. Właściwie nie powinniśmy mówić o programowaniu w JS, a o programowaniu konkretnym frameworkiem i unikaniu JS.

Liczę też na fajny pomysł ustalenia jasnych i zwięzłych standardów łączących HTML CSS i JS (które odcięłyby stare i wymusiły nową "erę" podejścia do wspomnianych technologii), tak aby usunąć obecny chaos.

Prześlij komentarz

Related Posts with Thumbnails