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.
tl;dr
-
lata 70, XX 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, XX 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. Pod koniec XIX w., po epidemii rdzy kawowej, uprawy zastępowano odporniejszymi gatunkami: najpierw kawą 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ą stacji roboczych oraz 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?
Pod koniec 1990 roku w firmie Sun Microsystems ruszył tajny projekt Green, który miał zajmować się oprogramowaniem dla elektroniki użytkowej, w tym nowym językiem programowania.
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>).
Na początku 1994 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.)
W październiku 1994 roku ukazała się wersja beta przeglądarki Mosaic Netscape 0.9, a 15 grudnia 1994 roku miała miejsce premiera wersji 1.0, już pod nazwą Netscape Navigator. Po kilku miesiącach udało się zdobyć ponad 70% rynku. Zyskanie takiej popularności przyniosło wspieranie tagu <blink> (powodującego mruganiem tekstu) oraz elementów formularza.
(Aby uniknąć problemów z NCSA, w listopadzie 1994 roku firma zmieniła nazwę na Netscape Communications, a przeglądarka na Netscape Navigator.)
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.
Thanks. Just FYI (your piece was fine, if I read translation correctly), I worked at MicroUnity between SGI and Netscape.
— BrendanEich (@BrendanEich) December 3, 2016
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.
Brendan Eich stworzył w maju nowy język. Zrobił to w 10 dni.
W swojej opowieści Brendan dodaje, że w kwietniu i maju 1995 roku razem ze swoim kolegą z pracy, Kippem Hickmanem, analizowali Javę, a Kipp zaczął nawet pisać własną maszynę wirtualną Javy. Po stronie Sun Microsystems pomysł prostego języka skryptowego jako uzupełnienia Javy poparł współzałożyciel firmy, Bill Joy.
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 w marcu 1996 roku (18 września 1995 roku wyszła pierwsza wersja beta tej przeglądarki).
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 International (do 1994 roku European Computer Manufacturers Association, z siedzibą w Genewie) zdecydowała się nawiązać współpracę. W listopadzie 1996 roku firma Netscape Communications zgłosiła tam specyfikację języka, a w czerwcu 1997 roku przyjęto standard ECMA-262. 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; didn't read), czyli krótkiego podsumowania. W 10 punktach zawarłem najważniejsze zwroty akcji o początkach tworzenia języka JavaScript.
Bibliografia
- brendaneich.com/2008/04/popularity/
- javascript.crockford.com/popular.html
- javascript.crockford.com/javascript.html
- Crockford on JavaScript - Chapter 2: And Then There Was JavaScript
- cs.put.poznan.pl/mmasewicz/dydaktyka/po/kursjavy/historia.html</>
- web.archive.org
- Wikipedia
- https://en.wikipedia.org/wiki/JavaScript
- https://en.wikipedia.org/wiki/Java_(programming_language)
- https://en.wikipedia.org/wiki/Netscape_(web_browser)
- https://en.wikipedia.org/wiki/Sun_Microsystems
- https://en.wikipedia.org/wiki/Sun_Microsystems_Laboratories
- https://en.wikipedia.org/wiki/Silicon_Graphics
- https://en.wikipedia.org/wiki/National_Center_for_Supercomputing_Applications
- https://en.wikipedia.org/wiki/Douglas_Crockford
- Historia Javy
Cya! 👋