:sparkles: PWA :sparkles:
Twarz autora bloga

Piotr Kowalski

Organizator WarsawJS Trener YouTuber

Historia języka JavaScript

Jako świadomy programista języka JavaScript, chciałem przedstawić wam historię tego języka. Wpis będzie również zawierał informację o powstaniu języka Java.

JavaScript logo
Logo JS-a zaproponowane przez Chrisa Willisa podczas konferencji JSConf EU 2011.

tl;dr

  • lata 70 zeszłego wieku

    Z uwagi na rosnące zapotrzebowanie producentów urządzeń, potrzebne było oprogramowania, które będzie w stanie działać na wszystkich typach urządzeń.

  • lata 90 zeszłego wieku

    Sun Microsystems stworzyło język Java (nazwa pochodzi od kawy produkowanej na wyspie Jawa), którego ideą był WORA - Write once, run anywhere.

  • Netscape Communications chciało wprowadzić do swojej przeglądarki dynamikę znaną z programów desktopowych.

  • Sun Microsystems chciało aby Netscape Communications wprowadziło do swojej przeglądarki Javę.

  • Netscape Communications nie zgodziło się. Chciało wprowadzić coś co trafi do szerszego grona odbiorców niż tylko programistom Javy.

  • kwiecień 1995

    W Netscape Communications zatrudnili programistę, który z języków: Java, Scheme i Self skonstruował nowy język o nazwie LiveScript.

  • Sun Microsystems, jako partner w biznesowej ofensywie na Microsoft nie był zadowolony z tego pomysłu i chciał unicestwić projekt LiveScript.

  • koniec roku 1995

    Firma Netscape Communications wpadła na pomysł zmiany nazwy na JavaScript, który jakoby miał mieć coś wspólnego z Javą.

  • Sun Microsystems zaakceptowało pomysł, ale przejęło prawa do marki udzielając licencji na używanie nazwy tylko firmie Netscape Communications.

  • czerwiec 1997

    Netscape Communications wraz z ECMA tworzy standard nowego języka - ECMAScript.

Od czego to się wszystko zaczęło?

W XVII w. na wyspę Jawa została sprowadzona przez Holendrów kawa gatunku Arabica (nazwana później Liberica, a potem Robusta).

W dniu 9 listopada 1981 roku powstała w Mountain View firma Silicon Graphics, założona przez James H. Clarka, która była amerykańskim producentem wysokiej jakości hardware-u (sprzętu komputerowego) oraz software-u.

W 1982 roku, 24 lutego powstała firma Sun Microsystems, zajmowała się podobnie jak Silicon Graphics produkcją oprogramowania.

W 1986 roku na uniwersytecie w Illinois w USA, powstała komórka zajmująca się rozwojem oraz wdrażaniem krajowego oprogramowania komputerowego.

Po co ta Java?

W 1990 firma Sun Microsystems powołała komórkę Sun Labs, która miała zajmować się nowymi technologiami webowymi, rozwijaniem nowego języka programowania oraz sieciami komputerowymi.

W tym samym czasie, w komórce ds. rozwoju nowego języka, James Gosling razem z grupą innych ludzi zajmowali się tworzeniem języka, który mógłby być uruchamiany na komputerach z dowolną konfiguracją sprzętową.

Programy napisane w C lub C++ mogły być uruchamiane tylko na urządzeniach z takim samym procesorem, aby wykorzystać w pełni potencjał maszyny. Nie nadawały się więc do nowych urządzeń, które miały inną konfigurację sprzętową. Dlatego też powstał projekt stworzenia nowego języka, który nadawałby się lepiej do oprogramowania użytkowego niż C i C++.

Początkowo język nazwano "Oak", ze względu na wielki dąb w pobliżu budynku w którym prowadzono prace. Ponieważ istniał już język o takiej nazwie należało znaleźć alternatywę. Po długich dyskusjach olśnienie przyszło podczas wyjścia do sklepu z kawą.

Java to nazwa kawy produkowanej na wyspie o takiej samej nazwie. Jest to też slangowe określenie kawy w USA.

Narodziny najpopularniejszej przeglądarki internetowej

Na początku lat 90. James H. Clark odszedł z Silicon Graphics.

W 1993 roku National Center for Supercomputing Applications wypuściła przeglądarką webową o nazwie NCSA Mosaic. Nie była to pierwsza przeglądarka na rynku, ale jako pierwsza pozwalała na wyświetlanie obrazków (wspierała tag <img>).

W tym samym roku James H. Clark poznał Marca Andreessena, z którym zamierzał podbić rynek przeglądarek.

W 1994 roku, w Mountain View, panowie razem zarejestrowali firmę Mosaic Communications. Zatrudnili autorów przeglądarki NCSA Mosaic w celu stworzenia nowej pod nazwą Mosaic Navigator, która miała nie mieć ani jednej linijki kodu z pierwotnej wersji.

(Wewnątrz projektu nową przeglądarkę nazywano "Mozilla", czyli "Mosaic killer". Celem nowo powstałej firmy, było stać się liderem na rynku przeglądarek.)

15 grudnia 1994 roku miała miejsce premiera pierwszej wersji przeglądarki Mosaic Netscape 1.0. Po kilku miesiącach udało się zdobyć ponad 70% rynku. Zyskanie takiej popularności przyniosło wspieranie tagu &lg;blink> (powodującego mruganiem tekstu) oraz elementów formularza.

(Aby uniknąć problemów z NSCA, nazwa przeglądarki została zmieniona na Netscape Navigator, a po kilku miesiącach - w tym samym roku - firma zmieniła nazwę na Netscape Communications.)

Narodziny języka LiveScript

Marc Andreessen stwierdził, że świat webu potrzebuje czegoś bardziej zaawansowanego, czegoś co będzie klejem dla obecnego HTMLa. Model przeglądarkowy utracił interaktywność. Dlatego Java była taka atrakcyjna, bo przywracała interaktywność w przeglądarce co pozwalało rywalizować z aplikacjami desktopowymi.

Początkowo firma chciała, aby dynamika była podobna do mechanizmu HyperCard, systemu rozwijanego przez Billa Atkinsona w Apple, który miał na celu ułatwienie programowania na platformę Macintosh. Dostępnych było mnóstwo przycisków, do których można było przypisać dowolne skrypty. Firma Netscape Communications chciał zrobić coś podobnego, ale na stronie internetowej.

W 1995 roku firma Netscape Communications zatrudniła kolejnego programistę z MicroUnity, który wcześniej pracował w Silicon Graphics, Brendana Eicha. Brendan na rozmowie rekrutacyjnej powiedział, że chciałby w przeglądarce Netscape Navigator osadzić interpreter języka programowania Scheme. Firmie bardzo to się spodobało, bo właśnie tego oczekiwali od nowego kandydata.

Po rozpoczęciu prac, firma zorientowała się jak wygląda język Scheme i zarządziła zmiany, w obawie że w obecnej formie nowy język będzie mało atrakcyjny. Firma zaproponowała, aby Brendan osadził język przypominający np. Visual Basic albo Javę - czyli języki już cieszące się popularnością.

Netscape Communications w porozumieniu z Sun Microsystems chciało dodać do swojej przeglądarki wsparcie dla języka Java, aby konkurować z Microsoft-em pod kątem nowych technologii. Netscape Communications zdecydowało, że język, który stworzą i dodadzą do swojej przeglądarki, będzie uzupełnieniem do języka Java o podobnej składni. Z miejsca wykluczało to więc osadzenia takich języków jak Python czy Perl. Aby bronić swojej idei wobec konkurencyjnych propozycji firma potrzebowała jednak prototypu.

Brendan zmiksował elementy trzech języków: Java - ponieważ powiedziano mu, że musi użyć tego języka oraz dwóch innych bardzo interesujących języków: Scheme (dialekt Lispa, skąd pochodzi pomysł first-class functions) oraz Self (język który bazował na Smaltalku, skąd zaczerpnięty został pomysł prototypów), które nie były znane na rynku programistów. Wykorzystywane były głównie przez twórców innych języków języków programowania. Taki wybór okazał się sporym zaskoczeniem.

Projekt został przeniesiony do Sun Labs firmy Sun Microsystems, aby od czasu do czasu móc wspierać rozwój projektu odnośnie języków Java i Self. Z jakiegoś powodu firma Sun Microsystems podjęła decyzję o zaprzestaniu rozwoju jednego z nich. Wybrali Self.

Brendan Eich stworzył w maju nowy język. Zrobił to w 10 dni.

W swojej opowieści Brendan dodaje, że razem ze swoim kolegą z pracy, Kippem Hickmanem, rywalizowali, który język da się lepiej osadzić w przeglądarce. Po kilku dniach przełożony obu developerów, Bil Joy, przekonał ich do porzucenia projektu umieszczenia Javy w przeglądarce, ze względu na problemy jakie pojawiły się przy osadzaniu wirtualnej maszyny. Nie była ona kompatybilna z maszyną firmy Sun Microsystems.

Pierwsza wersja nowego języka nazywała się Mocha, ale w wersji beta przeglądarki Netscape Navigator 2.0, która została opublikowana we wrześniu, nazwa została zmieniona na LiveScript.

Dnia 23 maja 1995 roku firma Sun Microsystems podczas konferencji SunWorld, ogłosiła powstanie nowego języka programowania Java.

Narodziny języka JavaScript

Nowy język Java wraz z przeglądarką Netscape Navigator, wzbudziły wiele emocji, dlatego też Sun Microsystems oraz Netscape Communications podjęły decyzję o współpracy przeciwko firmie Microsoft, w obawie że pojedynczo nie wytrzymają konkurencji.

Największym punktem spornym w tym układzie był LiveScript. Sun Microsystems chciało dodać Javę do przeglądarki Netscape Navigator oraz zakończyć pracę nad LiveScriptem. Firma Netscape Communications nie zgodziła się na taki zabieg ponieważ wierzyli, że uda im się stworzyć coś w rodzaju funkcjonalności HyperCard. Z powodu braku porozumienia współpraca prawie została zerwana.

Aby załagodzić stosunki nazwa została zmieniona na JavaScript. I tak w 3 wersji beta przeglądarki Netscape Navigator 2.0 LiveScript został zastąpiony nazwą JavaScript.

Ostateczny wybór wprowadził zamieszanie jako iż wiele osób myślało, że JavaScript jest efektem ubocznym powstania Javy, która cechowała się większą popularnością.

Wybór został scharakteryzowany jako chwyt marketingowy firmy Netscape Communications aby pochwalić się wynalezienie nowego webowego języka programowania.

Spór ucichł - zmiana nazwy pomogła. Z drobnym wyjątkiem - firma Sun Microsystems zastrzegła prawa własności do znaku towarowego. Najciekawsze jest to, że firma nie miała nic wspólnego z nazwą, a nawet próbowała zabić ten język. W drodze przysługi Sun Microsystems udzieliło firmie Netscape Communications licencji na używanie nazwy nowego języka programowania, co było o tyle satysfakcjonujące, że posiadali ją na wyłączność.

Na dzień 4 grudnia 1995 przypadają narodziny języka JavaScript tj. wtedy firma Netscape Communications wydała oficjalne oświadczenie (link poniżej) o nowym, otwartym, multi-platformowym języku.

Można powiedzieć, że stabilna wersja języka JavaScript z numerem 1.0 pojawiła się wraz z opublikowaniem przeglądarki Netscape Navigator 2.0, a miało to miejsce 18 września 1995 roku.

Narodziny języka JScript oraz ECMAScript

Microsoft przypatrywał się temu z boku. Postanowił, że skopiuje język pod inną nazwą. Nie mogli używać nazwy JavaScript - prawa do niej miała firma Sun Microsystems (z którą Microsoft nie miał dobrych stosunków). Swoją kopię silnika nazwali JScript.

Z kolei firma Netscape Communications - gdy zobaczyła, że konkurencja kopiuje jej język, i że może on zostać przejęty i rozszerzany przez kogoś innego - postanowiła stworzyć standard. Początkowo próbowała ustandaryzować swój język w organizacji W3C, ale niestety współpraca nie została nawiązana.

Dopiero organizacja ECMA (European Computer Manufacturers Association z siedzibą w Genewie) zdecydowała się nawiązać współpracę, dzięki temu firma Netscape Communications mogła wykupić u nich standard. Było to w czerwcu w 1997 roku. Była to długa droga dla firmy z Kaliforni, ale się udało.

Firma chciała ustandaryzować język, ale nie chciała nazywać go JavaScript, ponieważ tylko Netscape Communications mógł nazywać ten język JavaScript. Komitet starał się wymyślić inną nazwę. Koniec końców, został opublikowany dokument, który zawierał nazwę ECMAScript.

Podsumowanie

Historia naszego pięknego języka jest burzliwa, ale warto ją znać. Dobrą praktyką jest tworzenie tl;dr (too long; don't read), czyli krótkiego podsumowania. W 10 punktach zawarłem najważniejsze zwroty akcji o początkach tworzenia języka JavaScript.

Bibliografia