WebAssembly. JavaScript history.

Każdy temat fajnie odpowiada się, jeśli to jest historia. Zacznijmy więc trochę od historii skąd się wzięło WebAssembly.
Back in the days czyli WWW
W roku 1991 sir Tim Berners-Lee stwierdził, że nie chce mu się już biegać od komputera do komputera, aby dowiedzieć się nad czym pracują naukowcy w instytucie CERN. Dlatego zaproponował system, który miałby być rozwiązaniem tego problemu. Czyli system współdzielenia pomiędzy różnymi komputerami pewnych zasobów, w tym wypadku pracy naukowej naukowców.W ten sposób powstała pierwsza strona WWW, która jest dostępna pod tym linkiem jako monumentu historyczny dla tej pierwszej strony.
![]() |
Sir Tim Berners-Lee |
Pierwsze strony internetowe to tylko zawartość tekst, potem obrazki i ewentualnie jakieś kolorki, połączone hyper linkami prowadzącymi do kolejnych treści.
Jedną interakcje z taką stroną miało miejsce właśnie przez Hyper Linki.
Narodziny JavaScript

Z tych założeń powstał język JavaScript zaproponowany przez Brendana Eich i stworzony w zaledwie 10 dni.
Jedną z najważniejszych cech tego języka miała być jego czytelność dla człowieka na każdym etapie pracy z językiem, czyli również po stronie przeglądarki. To ograniczenie, ta cecha odbiła się negatywnie na wydajność języka. Ponieważ jest to język tekstowy, zrozumiały dla człowieka, to przeglądarka musi ten tekst jakoś zinterpretować. Czyli sparsować, stworzyć Abstract Syntax Tree i wygenerować kod, który będzie już w stanie się uruchomić, wykonać jakąś akcję
*Wiele obrazków jest zaczerpniętych z prezentacji Lin Clark.
Ten wykres pokazuje, że czas wykonania jest raczej długi.
Pluginy
Potrzeba zwiększenia interaktywności po stronie klienckiej była realizowana również przez pluginy. Pluginy pozwalały uruchamiać kod napisany w innych językach po stronie przeglądarki. Niestety miały bardzo dużą wadę, mianowicie trzeba było je dodatkowo zainstalować. Nie zawsze i wszędzie jest to możliwe np. w korporacjach. Instalowanie pluginów otwierało też naszą maszynę na dodatkowe niebezpieczeństwo. Złośliwe oprogramowanie.Większość pluginów odeszło już w zapomnienie. Słowo, którego nie należy wypowiadać w .Netowym świecie czyli Silverlight niebawem straci wsparcie. To jedna z ciekawszych technologii jaką Microsoft wypuścił, która szybko zdobyła serca programistów i umarła z niewiadomych powodów, po cichutku. Jednak kod pozostał.
Wojny przeglądarek
W roku 2008 rozpoczęła się wydajnościowe wojny przeglądarek.W wyniku tego procesu JavaScript otrzymał kompilatory JIT (Just in Time), a co za tym idzie silniki uruchomieniowe takie i jak V8, SpiderMonkey, Chakra i inne.
Silniki potrafią preoptymalizować i optymalizować kod, ‘rozgrzewać’ funkcje, tak aby uruchamiały się najszybciej jak to możliwe. Jeśli optymalizacja da rezultaty inne niż oczekiwane funkcje są degradowane, inne znów przygotowywane i tak w kółko. Niektóre silniki mają cztery poziomy optymalizacji. Na koniec mamy jeszcze Garbage Collection. Cały proces optymalizacji i sprzątania jest wykonywany ciągle w trakcie życia aplikacji.

Teraz kod jest uruchomiony na zasadzie: parsowanie, kompilacja, optymalizacja, reorganizacja wszystkich wywołań, uruchomienie, Garbage collection. Proces ten dzieje się cały czas w czasie uruchamiania kodu, czyli w czasie działania naszego programu. Im dłużej użytkownik używa aplikacji tym lepiej przeglądarka radzi sobie z przewidywaniem jakie funkcje zostaną następnie użyte.
JavaScript dziś
A tutaj inne spojrzenie. The Weird History of JavaScript.
Komentarze
Prześlij komentarz