JavaScript — jazyk budúcnosti?

JavaScript sa zo škaredého kačiatka medzi programovacími jazykmi stal jedným z najpopulárnejších jazykov súčasnosti. Začína sa teraz „epocha JavaScriptu“?

História

JavaScript bol vytvorený v roku 1995 v spoločnosti Netscape ako jazyk pre skriptovanie webových stránok na strane klienta. Ako spomína Brendan Eich, autor jazyka, pôvodne sa uvažovalo o zabudovaní do prehliadača jazyka Scheme. Ale počas vývoja bol niekoľko krát zmenený nielen názov jazyka ale tiež jeho koncept. Po dohode so Sun Microsystems sa rozhodlo, že jazyk sa bude volať JavaScript a bude sa podobať na Javu. Malo isť o akýsi doplňujúci jazyk pre Javu, určený pre menej skúsených programátorov.

JavaScript umožnil pridávať na stránky rôzne dynamické efekty, ako je napríklad kontrola správnosti vyplnenia formulárov na strane klienta alebo jednoduché animácie. Ale efekty vytvárané pomocou neho boli často rušivé a nevkusné.

Samotný jazyk tiež mál viacero nedostatkov. Navyše jeho implementácie v rôznych prehliadačoch neboli úplne rovnaké a v rozhraniach, pre manipuláciu s obsahom HTML stránky, boli značné rozdiely. Spolu to viedlo k zlej povesti JavaScriptu medzi programátormi.

Okolo roku 2005 sa situácia zmenila. S príchodom popularity AJAXu, technológie umožňujúcej asynchronnú komunikáciu klientského kódu so serverom, sa JavaScript začal dostávať do popredia. Vynikajúcimi ukážkami jeho možnosti boli služby Google Maps a GMail, ktoré predviedli možnosti interaktívnych webových aplikácií.

Popularita jazyka sa odvtedy zvyšovala. Vzniklo množstvo knižníc a rámcov (napríklad jQuery a Prototype), ktoré zakrývali rozdiely medzi rozhraniami v rôznych prehliadačoch a zjednodušovali mnohé operácie. To umožnilo jednoduchšie využívať bohaté možnosti poskytované JavaScriptom.

Najviac nepochopený programovací jazyk

Aj napriek rozšírenosti JavaScriptu, dlhu dobu nebolo tak veľa ľudí, ktorí ho poznali dobre. Douglas Crockford ho dokonca označil za najviac nepochopený programovací jazyk. Jedným z dôvodov je to, že napriek syntaktickej podobnosti s jazykmi Java a C++, JavaScript sa od nich výrazne líši.

JavaScript obsahuje množstvo prvkov, ktoré ho radia k funkcionálnym jazykom. Funkcie sú v ňom prvotriednymi objektmi a je možné s nimi manipulovať ako s hodnotami. Podporuje tiež uzávery (angl. closure) — možnosť definovať funkciu vo vnútri inej funkcie s tým, že vnútorná funkcia môže pristupovať k lokálnym premenným vonkajšej funkcie (a to aj po tom, čo vykonávanie vonkajšej funkcie bolo ukončené).

Zároveň je to objektovo-orientovaný jazyk, ale pritom je značne odlišný od bežne používaných objektových jazykov. Namiesto dedičnosti na základe tried, používa prototypovú dedičnosť. Objekt dedí spoločné vlastnosti z objektu prototypu, ktorý je pripojený ku konštruktoru triedy.

Tieto vlastnosti pridávajú jazyku značnú flexibilitu, ale na druhej strane odlišnosti spôsobujú problémy a nepochopenie. Programátori vzhľadom na slovo „Java“ v názve jazyka a podobnú syntax, očakávajú podobné vlastnosti jazyka a pritom narážajú na nečakané problémy.

JavaScript je všade

Napriek všetkým problémom sa JavaScript stáva stále populárnejším. Hlavným dôvodom je samozrejmé to, že je štandardným jazykom pre skriptovanie vo webových prehliadačoch. Pričom s príchodom skupiny štandardov HTML5 sa jeho možnosti v tejto oblasti značne rozširujú. JavaScript sa stál základom pre stále rastúce množstvo webových aplikácií, ktoré poskytujú čoraz bohatšie používateľské rozhranie v mnohých prípadoch už porovnateľné s bežnými grafickými aplikáciami.

JavaScript ale začal prenikať aj do iných oblastí, často spolu s HTML a CSS. Tieto technológie sa používajú napríklad na vytváranie widgetov pre Dashboard v MacOS. Je tiež hlavným jazykom pre vytváranie aplikácií pre mobilný operačný systém WebOS1 a jedným zo štandardných jazykov pre Metro — nové používateľské rozhranie pre Microsoft Windows. Je v ňom napísané aj nové rozhranie pre spúšťanie aplikácií a prepínanie medzi úlohami v prostredí Gnome 3. Nesmieme zabudnúť ani na to, že je populárnym jazykom pre rozšírovanie aplikácií.

A v neposlednom ráde JavaScript preniká aj na server. Tam sa v poslednom čase stáva populárnou platforma node.js. Jej výnimočnou vlastnosťou je originálny prístup k vstupno-výstupným operáciám a paralelizmu. Všetok kód napísaný programátorom v JavaScripte beží v jednom vlákne, ale na druhej strane všetky vstupno-výstupné operácie sú asynchrónne a vykonávané paralelne. Kód programu sa potom skladá z callbackov — funkcií ktoré sú volané po dokončení určitej operácie. Výhodou tohto prístupu je to, že zbavuje od obrovských problémov spojených s prácou s viacerými vláknami. Na druhej strane je programovanie s intenzívnym využívaním callbackov pomerne neobvyklé, ale pre programátorov v JavaScripte je tento štýl bežný, keďže sa používa aj na klientskej strane.

Ako je vidieť, JavaScript sa postupne stáva jedným z najrozšírenejších programovacích jazykov. Jeho oblasť použitia už nie je obmedzená len na webové prehliadače, ale preniká aj na servery, desktopy a mobily. Takýmto spôsobom má šancu dostať sa do pozície univerzálneho jazyka pre aplikačné programovanie. Túto pozíciu sa neúspešne snažila obsadiť Java.


  1. Treba poznamenať, že budúcnosť WebOS je dosť neistá po tom, čo spoločnosť HP (súčasný majiteľ firmy Palm kde WebOS vznikol) oznámila o ukončení vývoja zariadení s týmto systémom. Zdrojové kódy WebOS ale majú byť zverejnené pod open-source licenciou.