Javaskript pokretač (eng. JavaScript engine) ili Džavaskript pokretač je program ili biblioteka koja izvršava Javaskript kod. Javaskript pokretač može da bude tradicionalni interpreter ili može da koristi dinamičko prevođenje (eng. just-in-time compilation) do bajtkoda.[1] Iako postoji više upotreba za Javaskript pokretač, najčešće se koristi u veb pregledačima. [2]

Istorija уреди

Pre drugog rata pregledača 2008—2009., Javaskript pokretači (takođe nazvan Javaskript interpreter ili Javaskript implementacija) su prosto bili interpreteri koji su čitali i izvršavali Javaskript izvorni kod.

Prvi Javaskript pokretač je napravio Brendan Ajh u Korporaciji Netskejp Komunikacije za Netskejp Navigator veb pregledač. Pokretač, kodnog imena SpajderManki, je implementiran u C++. Od tada je ažuriran (u JavaSkript 1.5) da se prilagodi ECMA-262 izdanju 3. Rino pokretač, napravljen primarno od strane Norisa Bojda (takođe u Netskejpu) je Javaskript implementacija u Javi. Poput SpajderMankija, Rino je kompatibilan sa ECMA-262 izdanjem 3. Primene tehnogije uključuju Nitro od Epl-a, Safari 4, V8 od Gugl kroum-a i TrejsManki od Mozile fajerfoks 3.5.

Najčešće domaće okruženje za Javaskript je veb pregledač. Veb pregledači uglavnom koriste javni aplikacioni programski interfejs (API) da naprave „domaće objekte" odgovorne za predstavljanje Objektnog modela dokumenta (DOM) u Javaskriptu.

Procena performansi уреди

Tipičan veliki veb pregledač ima grafički pokretač i nezavisni Javaskript pokretač, što dopušta, lakše testiranje, ponovnu implementaciju ili korišćenje u drugim projektima. Na primer, Karakan se koristi sa Presom; Nitro sa Veb kitom; SpajderManki sa Gekom; KJS sa KHTML; Rino po početnim postavkama nema pokretač rasporeda (layout engine). Druge kombinacije su takođe moguće, na primer, V8 sa Blinkom u Gugl Kroumu. Javaskript pokretač daje developerima pristup funkcionalnostima (mreže, rukovanje DOM-om, eksterni događaji, HTML5 video, platno i skladištenje podataka ) potrebnim za kontrolu veb pregledača.

Trka Javaskript pokretača: 2008. i 2009. уреди

Tokom ovog perioda bila je trka od strane developera pregledača da se razvije još brži Javaskript pokretač kao odgovor na rastuće korišćenje Javaskript programskih okvira i Ajaks-a, pošto na korisničko iskustvo direktno utiče mogućnost pregledača da izvršava kod klijentske strane. Tokom 2008, Gugl Kroum je hvaljen za njegove Javaskript performanse, ali ostali pregledači su ubrzo dobili nove Javaskript pokretače koji su bili brži. Kasnije, Kroum je pobedio u trkama boljih performansi. Njegove snage su performanse aplikacija i brzina procesiranja Javaskripta, obe su nezavisno potvrđene od strane više veb sajtova da je najbrži među većim pregledačima tog vremena.[3][4][5] Sa napretkom Skvrlfiša od Veb kita i Moziline TrejsManki virtualne mašine, brzina kojom Kroum izvršava Javaskript se smatra sporijom. [6][7][8][9] Gugl je odgovorio sa V8 koga su razvijali Danci i poboljšao je Javaskript performanse u Gugl Kroum 2.

Dana 2. juna 2008., Veb kit razvojni tim je najavio Skvrlfiš,[10] tada novi Javaskript pokretač koji veoma poboljšava brzine kojima Safari interpretira skripte.[11] Pokretač je bio jedna od novih odlika Safari 4 i izašao je za developere 11. juna 2008.; konačni Javaskript pokretač se zvao Nitro.

Januara 2009., pokretač tada poznat kao Skvrlfiš Ekstrim (SFX) je omogućen za Mac OS X na x86-64 arhitekturama jer prolazi sve testove na toj Epl-ovoj platformi.[12] Izašao 30. Juna 2009, Fajerfoks 3.5 uključuje optimizacionu tehniku koja nudi „poboljšanja performansi u razmerama od 20 do 40 puta" prilikom poređenja sa Fajerfoks 3 u nekim slučajevima.[13]

Trka Javaskript pokretača: 2010. уреди

Početkom 2010, norveški veb pregledač Opera je zamenila već stareći Futark sa bržim Karakanom, koji je u ranom testiranju bio brži 2.5 puta. Drugi učesnici su bili, Epl-ov pregledač Safari Nitro (pokretač ranije poznat kao Skvrlfiš) i novi Fajerfoksov JegerManki (nastala mešavinom Nitroa sa starijim pokretačom TrejsManki).[2] Majkrosoft je zaostajao, nedostajao im je posvećen pokretač Javaskripta i imali su najsporiji od svih velikih pregledača. JegerManki je počeo testiranje u javno izbačenom Fајеrfoksu 4.0 beti u leto 2010.[14] Safari 5, takođe izbačen u leto 2010., imao je 30 posto brži nastup Javaskripta od Safari 4 (koji je koristio pokretač Nitro).[15]

Trka Javaskript pokretača: 2011 уреди

U 2011., Fajerfoks 4 i Internet Eksplorer 9 su izbačeni sa njihovim Javaskript softverom.

Javaskript pokretači уреди

Aktivni projekti уреди

  • Rino, od strane Mozila Fondacije (енгл. Mozilla Foundation), softver otvorenog koda, razvijen u Javi.
  • SpajderManki, prvi Javaskript pokretač, na kome je bio baziran Netskejp Navigator a danas i Fajerfoks.
  • V8 - softver otvorenog koda, razvijen od strane Gugla u Danskoj, deo Gugl Krouma.
  • JavaSkriptJezgro - softver otvorenog koda, reklamiran kao Nitro a razvijen od strane Epl-a za Safari.
  • KJS - KDE-ov ECMASkript/JavaSkript pokretač prvobitno razvijen od strane Hari Portena za KDE-ov projekat, Konqueror veb pregledač.
  • Čakra (JSkript9), za Internet Eksplorer.[16][17]
  • Čakra (JavaSkript) za Majkrosoft Edž.
  • dyn.js, softver otvorenog koda, napisan od strane Daglasa Kamposa i saradnika.[18]
  • Nešhorn, softver otvorenog koda kao deo OpenJDKa, napisan od strane grupe za Orakl Java jezike i alate (енгл. Oracle Java Languages and Tool Group).[19]
  • Juce, C++ okvir za aplikaciju, sadrži specijalno dizajnirani umetnuti interpreter koji koristi deo JavaSkript sintakse.
  • Duktejp,[20] softver otvorenog koda, uključiv, lak za integrisanje u C projektima, licenciran od strane MIT, Javaskript pokretač sa fokusom na prenosivost i upotrebom male količine prostora.
  • MuJS,[21] softver otvorenog koda, uključiv i proširiv interpreter razvijen za MuPDF.
  • Higs, softver otvorenog koda, JIT kompajler napisan u jeziku D.[22]
  • iv, ECMASkript Lekser / Parser / Interpreter / VM / metod JIT napisan u jeziku C++.[23]

Neaktivni projekti уреди

  • Tamarin, od strane Adobi sistems korporacije.
  • Karakan, od strane Opera Softver korporacije, koristio se u Opera veb pregledaču do verzije 10.50 nakon čega se prešlo na V8 sa Operom 14.00 (koja je puštena u rad 2013-te godine).[24][25]
  • Futark, od strane Opera Softver korporacije, korišćen Opera veb pregledačem od verzije 9.50 do 10.10 dok se nije zamenio Karakan-om u Operi 10.50 (koja je puštena u rad u martu 2010-te godine).
  • Narcisus softver otvorenog koda, napisan od strane Brendana Ajha, koji je takođe napisao SpajderManki.

Implementacije уреди

JavaSkript je dijalekat ECMASkripte koja je podržana od strane mnogih aplikacija, pogotovo veb pregledača. Dijalekti ponekad uključuju ekstenzije u jeziku ili u standarnoj biblioteci i srodnim aplikacionim programskim interfejsovima (API) kao što je WWW Konzorcijum (енгл. World Wide Web Consortium) specifikovao Objektni Model Dokumenta (енгл. Document Object Model). Ovo podrazumeva da aplikacija napisana na jednom dijalektu može biti kompatibilna sa drugom, osim ukoliko su aplikacije napisane da koriste samo zajednički podskup podržavajućih karakteristika i API-ja („srž“).

Dijalekat i implementacija su posebni: dijalekat jezika je važna varijanta tog jezika, dok je implementacija jezika (ili dijalekta) izvršava program napisan na tom jeziku (ili dijalektu).

Naziv aplikacije Dijalekat i poslednja verzija Verzija ECMASkripte
Gugl Kroum, V8 pokretač JavaSkript ECMA-262, izdanje 5
Mozila Fajerfoks, Geko pokretač rasporeda (енгл. layout engine), SpajderManki, i Rino JavaSkript 1.8.5 ECMA-262, izdanje 5
Safari, Nitro pokretač JavaSkript ECMA-262, izdanje 5.1
Opera veb pregledač ECMASkript sa elementima JavaSkript 1.5
i JSkript ekstenzijama[26]
ECMA-262, izdanje 5.1
KHTML pokretač rasporeda (енгл. layout engine), KDE-ov Konqueror JavaSkript 1.5 ECMA-262, izdanje 3
Adobe Acrobat JavaSkript 1.5 ECMA-262, izdanje 3
OpenLaszlo JavaSkript 1.4 ECMA-262, izdanje 3
Max/MSP JavaSkript 1.5 ECMA-262, izdanje 3
ANT Galio 3 JavaSkript 1.5 sa RMAI ekstenzijama ECMA-262, izdanje 3

Reference уреди

  1. ^ Looper, Jen (21. 9. 2015). „A Guide to JavaScript Engines for Idiots”. Telerik Developer Network. Приступљено 17. 3. 2016. 
  2. ^ а б Shankland, Stephen (2. 3. 2010). „Opera 10.5 brings new JavaScript engine”. CNET. CBS Interactive. Архивирано из оригинала 03. 10. 2013. г. Приступљено 30. 1. 2012. 
  3. ^ Shankland, Stephen (2. 9. 2008). „Speed test: Google Chrome beats Firefox, IE, Safari”. CNET Business Tech. CBS Interactive. Архивирано из оригинала 01. 05. 2012. г. Приступљено 28. 6. 2010. 
  4. ^ „Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome”. PC Games Hardware. Computec Media AG. Архивирано из оригинала 02. 05. 2012. г. Приступљено 28. 6. 2010. 
  5. ^ „Lifehacker Speed Tests: Safari 4, Chrome 2”. Lifehacker. Архивирано из оригинала 14. 02. 2021. г. Приступљено 28. 6. 2010. 
  6. ^ Shankland, Stephen (31. 10. 2008). „Third Chrome beta another notch faster”. CNET. CBS Interactive. Приступљено 28. 6. 2010. 
  7. ^ Shankland, Stephen (19. 9. 2008). „Step aside, Chrome, for Squirrelfish Extreme”. CNET. CBS Interactive. Архивирано из оригинала 25. 09. 2012. г. Приступљено 29. 6. 2010. 
  8. ^ „SquirrelFish Extreme: Fastest JavaScript Engine Yet”. satine.org. Приступљено 29. 6. 2010. 
  9. ^ Shankland, Stephen (3. 9. 2008). „Firefox counters Google's browser speed test”. CNET Business Tech. CBS Interactive. Архивирано из оригинала 01. 05. 2012. г. Приступљено 29. 6. 2010. 
  10. ^ Garen, Geoffrey (2. 6. 2008). „Announcing SquirrelFish”. Архивирано из оригинала 12. 05. 2020. г. Приступљено 11. 6. 2008. 
  11. ^ Lipskas, Vygantas (11. 6. 2008). „Apple Safari 4”. Архивирано из оригинала 01. 05. 2012. г. Приступљено 11. 6. 2008. 
  12. ^ Changeset 40439 – WebKit
  13. ^ Paul, Ryan (22. 8. 2008). „Firefox to get massive JavaScript performance boost”. arstechnica.com. Ars Technica © 2010 Condé Nast Digital. Приступљено 28. 6. 2010. 
  14. ^ „Firefox 4 Vision: fast, powerful, and empowering”. 
  15. ^ http://www.prnewswire.com/news-releases/apple-releases-safari-5-95817479.html Safari 5 Released
  16. ^ Oiaga, Marius (20. 3. 2010), „Internet Explorer 9 Beta Next – New IE9 Builds Every 8 Weeks”, softpedia.com, SoftNews NET SRL, Архивирано из оригинала 05. 01. 2012. г., Приступљено 28. 6. 2010 
  17. ^ „Targeting Edge vs. Legacy Engines in JsRT APIs”. Microsoft.com. Приступљено 10. 9. 2015. 
  18. ^ Schuster, Werner (2. 10. 2011), InvokeDynamic and JavaScript - New Compiler Dyn.js, Oracle Nashorn and Rhino, InfoQ 
  19. ^ J. Laskey (19. 7. 2011), Adventures in JSR-292 or How To Be A Duck Without Really Trying (PDF), Oracle, Архивирано из оригинала (PDF) 03. 06. 2016. г., Приступљено 13. 05. 2016 
  20. ^ Duktape
  21. ^ MuJS: an embeddable JavaScript interpreter
  22. ^ „Higgs JavaScript Virtual Machine”. Приступљено 15. 11. 2015. 
  23. ^ „Constellation/iv”. Приступљено 15. 11. 2015. 
  24. ^ Dev.Opera — Blog
  25. ^ Dev.Opera — Blog
  26. ^ „Web specifications support in Opera Presto”. Opera.com. Opera Software ASA. Архивирано из оригинала 04. 06. 2012. г. Приступљено 28. 6. 2010. 

Spoljašnje veze уреди