Vznik a historie JavaScriptu

AndreaAndrea

Vznik jazyka je spojen se společností Sun (dnes Oracle), ve které v roce 1992 vzniká jazyk Java. O tři roky později Sun začal protlačovat JavaApplety do prohlížečů, které umožňovali vkládat do webových stránek Java aplikace.

To dobou ve společnosti Netscape Communications programátor Brendan Eich ^1 vytvořil speciální jazyk pro prohlížeč Netscape. Prohlížeč podle něj měl mít svůj vlastní skriptovací jazyk, který mohl sloužit jako jednoduchý nástroj pro vytváření jednoduchých dynamických prvků do webových stránek. Jeho původní plán byl napsat „Scheme" pro prohlížeč. První verze JavaScriptu byla v roce 1995 přidána do Netscape Navigator 2.

Pojmenování jazyka

Když Brendan Eich poprvé vymyslel jazyk, dal mu krycí jméno Mocha ☕ a interně se v Netscape nazýval LiveScript.

Slovo "skript" bylo v tehdejší době populární pro označení malých programů. Tyto lehké "skripty" se měly první vkládat do webových stránek a vytvářet dynamické efekty, jako jsou animace, interaktivní nabídky, přehrávání videa a další. Přejmenování na JavaScript byl marketingový tah, jehož záměrem bylo tvářit se jako přijatelná alternativa k psaní těžkopádných aplikací v Javě. Stejně dobře se mohl jmenovat "WebJava".

Neprogramatorům často tyto dva jazyky pletou hlavu, především některým náborářům.

Java is to JavaScript as ham is to hamster.

Jeremy Keith, 2009

Jak si může někdo plést tyto dva zcela odlišné jazyky? Snadno, vzhledem k tomu, že samotný název byl marketingový trik. Jazyk byl původně navržen tak, aby cílil na programátory zajímající se o Javu, která byla tehdy populární a slovo „script“ mělo evokovat že jde o její odlehčenou verzi. Stejně tak se mohl jmenovat "WebJava", když přišel čas zveřejnění vyhrál nakonec "JavaScript". Java byla těžkopádná, ukecané a trvalo se ji naučit oproti tomu JavaScript měl být jednoduchý jazyk se strmou křivkou učení.

Má něco společného Java a JavaScript?

V podstatě ne. Oba jazyky měli za cíl přenositelnost, tedy vytvářet aplikace přenositelné mezi různými operačními systémy a architekturami.

Java se od počátku měla stát jazykem pro backend (programy běžícím na serveru). Oproti tomu měl být JavaScript jazykem, který se spouští na klientech nejčastěji v prohlížeči. V IT průmyslu se však minimálně v poslední dekádě ukazuje praktičtější, když programátoři mohou využívat při vývoji naplno jeden jazyk a tak se JavaScript dostal i na server, kde může běžet v prostředí Node.js. Dnes se karty obrátily a JavaScript je populárnější než Java. JavaScript má enormní ekosystem do kterého přispívají největší IT světa jako Google, Facebook, Microsoft apod. Hlavní rozdíly Javy a JavaScriptu spočívají už v základních vlastnostech:

  • Kompilovaný vs. interpretovaný. Jednou z výhod JavaScriptu při uvedení mělo být, že jde o interpretovaný skriptovací jazyk a měl být interpretován přímo prohlížečem. Java je kompilovaný jazyk a musí se kompilovat se do bytecode a po té se spouští ve virtuálním stroji. Procesu vykonávání javascriptu na klientu je věnován samostatný článek.

  • Statická vs. dynamická typová kontrola. Java používá statickou kontrolu typu, kde je typ proměnné kontrolován v době kompilace. JavaScript, stejně jako většina skriptovacích jazyků, používá dynamické typy, které se typy ověřují za běhu. Programátor nemusí specifikovat typ jakékoli proměnné, kterou vytvoří. Hlavní výhodou kontroly statického typu je, že chyby typu jsou zachyceny na začátku vývoje, a protože kompilátor přesně ví, jaké datové typy se používají, kód se obvykle spouští rychleji nebo používá méně paměti.

  • Objekty postavené na třídách vs. prototypech. Java využívá dědičnost tříd - hierarchický vztahy založený na třídách shora dolů, přičemž vlastnosti jsou definovány ve třídě a zděděny instancí této třídy. V JavaScriptu je dědičnost prototypová - všechny objekty mohou dědit přímo z objektů. Hierarchie se v JavaScriptu provádí přiřazením objektu jako prototypu s funkcí konstruktoru.

Syntaxe a paradigma

Nový multiplatformní jazyk měl být také syntaxí podobný jazyku C (tzv. C-like syntaxe). Používá tedy například chlupaté závorky { pro začátek bloku kódu a } pro ukončení bloku kódu. Středník pro ; k zakončení příkazu.

Brendan Eich se nejprve zabýval fyzikou, ale programování ho bavilo víc. Původně při návrhu vycházel z funkcionálního jazyku Scheme, často je JavaScript využíván jako objektově orientovaný jazyk. V JavaScriptu můžeme bohatě používat funkcionální i objektové paradigma.

Standard

V roce 1996 přišel Microsoft s vlastní implementací JavaScript pod názvem JScript. Dlouhou dobou se implementace jazyka v prohlížečích rozcházeli a W3C ani ISO nechtěli standard jazyku schválit. Vznikla formální skupina TC39, která je vrámci Ecma International odpovědná za udržování standardizace JavaScriptu. V roce 1998 standardizován jako ECMAScript.