Javaskript pokretač
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.
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[уреди | уреди извор]
- ^ Looper, Jen (21. 9. 2015). „A Guide to JavaScript Engines for Idiots”. Telerik Developer Network. Приступљено 17. 3. 2016.
- ^ а б Shankland, Stephen (2. 3. 2010). „Opera 10.5 brings new JavaScript engine”. CNET. CBS Interactive. Приступљено 30. 1. 2012.
- ^ Shankland, Stephen (2. 9. 2008). „Speed test: Google Chrome beats Firefox, IE, Safari”. CNET Business Tech. CBS Interactive. Приступљено 28. 6. 2010.
- ^ „Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome”. PC Games Hardware. Computec Media AG. Приступљено 28. 6. 2010.
- ^ „Lifehacker Speed Tests: Safari 4, Chrome 2”. Lifehacker. Приступљено 28. 6. 2010.
- ^ Shankland, Stephen (31. 10. 2008). „Third Chrome beta another notch faster”. CNET. CBS Interactive. Приступљено 28. 6. 2010.
- ^ Shankland, Stephen (19. 9. 2008). „Step aside, Chrome, for Squirrelfish Extreme”. CNET. CBS Interactive. Приступљено 29. 6. 2010.
- ^ „SquirrelFish Extreme: Fastest JavaScript Engine Yet”. satine.org. Приступљено 29. 6. 2010.
- ^ Shankland, Stephen (3. 9. 2008). „Firefox counters Google's browser speed test”. CNET Business Tech. CBS Interactive. Приступљено 29. 6. 2010.
- ^ Garen, Geoffrey (2. 6. 2008). „Announcing SquirrelFish”. Приступљено 11. 6. 2008.
- ^ Lipskas, Vygantas (11. 6. 2008). „Apple Safari 4”. Архивирано из оригинала на датум 01. 05. 2012. Приступљено 11. 6. 2008.
- ^ Changeset 40439 – WebKit
- ^ Paul, Ryan (22. 8. 2008). „Firefox to get massive JavaScript performance boost”. arstechnica.com. Ars Technica © 2010 Condé Nast Digital. Приступљено 28. 6. 2010.
- ^ „Firefox 4 Vision: fast, powerful, and empowering”.
- ^ http://www.prnewswire.com/news-releases/apple-releases-safari-5-95817479.html Safari 5 Released
- ^ Oiaga, Marius (20. 3. 2010), „Internet Explorer 9 Beta Next – New IE9 Builds Every 8 Weeks”, softpedia.com, SoftNews NET SRL, Приступљено 28. 6. 2010
- ^ „Targeting Edge vs. Legacy Engines in JsRT APIs”. Microsoft.com. Приступљено 10. 9. 2015.
- ^ Schuster, Werner (2. 10. 2011), InvokeDynamic and JavaScript - New Compiler Dyn.js, Oracle Nashorn and Rhino, InfoQ
- ^ 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
- ^ Duktape
- ^ MuJS: an embeddable JavaScript interpreter
- ^ „Higgs JavaScript Virtual Machine”. Приступљено 15. 11. 2015.
- ^ „Constellation/iv”. Приступљено 15. 11. 2015.
- ^ Dev.Opera — Blog
- ^ Dev.Opera — Blog
- ^ „Web specifications support in Opera Presto”. Opera.com. Opera Software ASA. Архивирано из оригинала на датум 04. 06. 2012. Приступљено 28. 6. 2010.
Spoljašnje veze[уреди | уреди извор]
- Are We Fast Yet? - Dnevno upoređivanje najnovijih Javaskript pokretača za Mozila Fajerfoks, Gugl Kroum i Epl Safari.
- Peacekeeper – Test brzine veb pregledača
- SunSpider – Test brzine Javaskripta
- Speed-Battle – Test brzine Javaskripta
- Descripter – Drugačiji Javaskript pokretač otvorenog kod na Java platformi