Uprkos nekim indikacijama tokom ove nedelje, Mozilla Foundation nije objavila svoju novu verziju Firefox pretraživača koja se još uvek javno testira u okviru Release Candidate 2. Kao što je Mike Schroepfer, potpredsednik za inženjering u Mozilla, rekao u petak za BetaNews, objavljivanje nove verzije Firefox se odvija na bazi kvaliteta, a ne vremenskih rokova. Ova organizacija će objaviti novu verziju pretraživača kada sve bude spremno.
Jedan od ključnih elemenata novog pretraživača, i verovatno najveća izmena, je novi JavaScript interpretator. Pošto sve više web sajtova koristi prednosti novog Asynchronous JavaScripta, to će JavaScript interpretator igrati sve veću i aktivniju ulogu, ne samo u radu pretraživača, već i u implementaciji web aplikacija.
S obzirom da najveći broj članova originalnog razvojnog tima JavaScripta sada radi za Mozilla - uključujući Brendana Eicha, kreatora JavaScripta - dizajneri Firefoxa 2.0 vide priliku za propagiranje komponente koja bi mogla da zameni HTML mehanizam renderovanja koji je danas najistaknutija i najuticajnija web komponenta.
Dizajneri su sada počeli da formalizuju dodatke JavaScript jeziku koji će biti prisutni u verziji 1.7 interpretatora, a ova verzija će stupiti na svetsku Web scenu onog dana kada se zvanično predstavi Firefox 2.0.
“Ako generalno pogledate Firefox, videćete da je JavaScript mehanizam jedan od zaista blistavih primera platforme”, kaže Schroepfer. “To je jedan od razloga zašto ga web dizajneri vole - zato što je brz za većinu operacija, zato što je je fleksibilan i zato što je jedan od najšire korišćenih JavaScript mehanizama”.
Kao što Schroepfer podseća, Firefox JavaScript mehanizam ne samo da izvršava ugrađene skripte na web stranicama (uključujući Ajax skripte), već takođe izvršava kod na klijentskoj strani za upotrebu u Firefox ekstenzijama koje su direktno ugrađene u pretraživač.
Iz tog razloga, nadogradnja interpretatora na verziju 1.7 će imati primarni značaj, pogotovo zato što JavaScript počinje da preuzima sve više programskih karakteristika novijih i fleksibilnijih jezika za skriptovanje kao što su Python i Ruby. “JavaScript 1.7 inplementira veliki broj novih osobina koje su inspirisane drugim popularnim jezicima, kao što su Python i Ruby”, kaže Schroepfer, “pa smo tako JavaScript jezik podigli na viši nivo”.
Python je verovatno najadaptibilniji jezik za skriptovanje opšte namene, mada ga Perl i PHP slede u stopu. Pošto JavaScript sve više preuzima Python karakteristike, Firefox dizajneri se neće zaustaviti samo na redefinisanju web stranica, već će pokušati da ugrade ove osobine u sam pretraživač.
“Mislim da smo se fokusirali na nadogradnju osnovne platforme”, kaže Schroepfer, “odnosno na to kako da postavimo odgovarajuće osnovne elemente u glavnu platformu kako bi Firefox učinili i odličnom razvojnom platformom i odličnom platformom za krajnje korisnike, a zatim kako da iskoristimo proširivost te platforme kroz ekstenzije što će dizajnerima omogućiti da pišu sopstvene alate kako bi napravili ove ogromne, distribuirane web aplikacije.”
Na programskom nivou, jedan primer izmena JavaScripta koji će dizajneri uočiti su dve nove osobine koje drugi programski jezici već koriste, a to su generatori i iteratori. Jedan primer pokazuje upotrebu iterativne petlje koja generiše prvih 100 brojeva poznate Fibonacci sekvence (koja se koristila kao referenrna tačka u vreme kada su “mikroračunari” bili sporiji).
U tipičnoj JavaScript konstrukciji, da bi petlja izveštavala o svom napredovanju u svakoj ponovnoj iteraciji morala je da se pokrene funkcija povratnog poziva koja je pomerala izvršavanje izvan klauzule petlje kako bi svaki put mogla da se izvrši instrukcija document.write.
Sa generatorima i iteratorima, varijabla može da objavi i dodeli funkciju koja sadrži reiterativnu petlju kao svoju “vrednost”. Ovde se varijabla ponaša više kao objekat. Klauzula petlje koja izračunava prve brojeve u sekvenci se nalazi izvan funkcije, tako da glavni deo programa ima kontrolu nad tim koliko puta se funkcija unosi.
Izvršavanje zakoračuje u funkciju za jedan krug - jednu iteraciju - pomoću sredstava metode .next, koja se ponaša kao iterator. Funkcija “zna” da se koristi za više iteracija, čak i pored toga što ne održava petlju. Ona prenosi izvršavanje nazad u glavni deo programa koji ima petlju, pomoću sredstava metode yield. To je generator.
Kao što je Schroepfer rekao za BetaNews, JavaScript 1.7 je kontrolna tačka na putu konačne implementacije JavaScript 2.0 zasnovanom na ECMAscript 4.0 koji je Netscape napravio 2003. za ECMA standarde i koji je inkorporiran u Macromedia (sada Adobe) ActionScript 2.0.
“Firefox 2.0 i JavaScript 1.7 su kontrolne tačke na toj putanji, gde smo dodali razne stvari poput obuhvatanja nizova, nekih Let izraza i izraza iteratora koje su ljudi koristili u Python sintaksi, kako bismo pojednostavili stvari poput petlje preko niza elemenata i primenili nešto na njih - što je sasvim uobičajena operacija na Webu.”
Schroepfer je dodao da, kao i svi Mozilla proizvodi, proizvodnja JavaScript 1.7 se obavlja otvoreno, u saradnji ne samo sa ECMA radnom grupom, već i sa glavnim implementatorima JavaScripta, uključujući Adobe, Google i Microsoft.
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272 |
||