Gecko je raspoređivačka mašina (engl. layout engine) - softver koji čita tekst HTML ili XML datoteke i u memoriji ga prikazuje u obliku DOM stabla. U okviru DOM-a elementi dokumenta se predstavljaju objektima koji imaju svoja svojstva i metode što omogućava programima da dinamički pristupe i izmene sadržaj, strukturu ili stil veb dokumenta. Gecko se koristi u mnogim aplikacijama Mozilla Fondacije i Mozilla Korporacije (najznačajnije Firefox pregledač veba uključujući njegovu mobilnu verziju i klijent elektronske pošte Thunderbird), kao i u mnogim drugim projektima softvera otvorenog koda. Gecko je slobodan i otvoren softver podležan uslovima Mozilla javne licence verzija 2.

Dizajniran je da podržava otvorene Internet standarde i koriste ga razne aplikacije da prikazuju veb stranice, a u nekim slučajevima upotrebljava ga i korisnički interfejs same aplikacije. Gecko nudi bogati API koji ga čini pogodnim za široku lepezu uloga u aplikacijama koje omogućuje Internet, kao što su pregledači veba, prikazivanje sadržaja i klijent/server.

Gecko je napisan u C++ programskom jeziku i funkcioniše na različitim operativnim sistemima uključujući BSDs, Linux, OS X, Solaris, OS/2, AIX, OpenVMS, i Windows. Njegov razvoj sada nadgleda Mozilla Fondacija i licenciran je pod verzijom 2 Mozilla Javne Licence.

Istorija уреди

Razvitak raspoređivačke mašine sada poznate kao Gecko je počeo u Netscape-u 1997. godine[тражи се извор], kada je kompanija kupila DigitalStyle. Postojeći Netscape pregledač, originalno napisan za Netscape Navigator 1.0 i unapredjen tokom godina, je bio spor, nije se uklapao dobro sa W3C standardima, imao je ograničenu podršku za dinamički HTML i nedostajale su mu funkcije poput inkrementalnog toka (kada raspoređivač premešta elemente na ekranu dok se novi podaci skidaju i dodaju na stranicu). Novi raspoređivač se razvijao uporedo sa starim sa namerom da se integriše u Netscape Communicator kada bude zreo i stabilan. Barem jedna velika revizija Netscape-a je bila očekivana da se izbaci sa starim raspoređivačem pre zamene.

Posle pokretanja Mozilla projekta 1998. godine, novi raspoređivač kod je izbačen sa licencom otvorenog koda. Originalno otkriven kao Raptor, ime je moralo da se promeni u NGLayout (Plan Nove Generacije) zbog problema sa zaštitnim znakom. Netscape je posle toga rebrendirao NGLayout kao Gecko. Mozilla Organizacija (preteča Mozilla Fondacije) je inicijalno nastavila da koisti NGLayout ime (Gecko je bio zastitni znak Nestcape-a), eventualno Gecko brend je pobedio.

U oktobru 1998. godine, Netscape je najavio da će njihov sledeći pretraživač koristiti Gecko (koji se još uvek zvao NGLayout u to vreme) umesto starog raspoređivača, što je zahtevalo da se veliki delovi aplikacije napišu ponovo. Iako je odluka bila popularna među zalagačima za web standarde, bila je većinom nepopularna među Netscape programerima, koji su bili nezadovoljni sa šest meseci koji su im bili dati za ponovno pisanje. To je takodje značilo da je većina posla uradjena na Netscape Communicator-u 5.0 (ukljucujuci razvoj na Mariner unapređenjima za stari raspoređivač) morala da se odbaci. Netscape 6, prva verzija koja je ukjlucivala Gecko, je bila izbacena u novembru 2000. (ime Netscape 5 nikada nije bilo korišćeno).

Kako se Gecko razvijanje nastavilo, druge aplikacije i ugrađivači su počeli da ga koriste. America Online, do ovog vremena Netscape-ova matična kompanija ga je eventualno prisvojila za korišćenje na CumpuServe 7.0 i AOL za Mac OS X (ovi proizvodi su prethodno ugrađivani u Internet Explorer). Međutim sa izuzetkom nekolicine beta verzija, Gecko nikada nije bio korišćen u glavnom Microsoft Windows AOL klijentu.

Dana 15. jula 2003. godine, AOL je otpustio preostale Gecko programere i Mozilla Fondacija (koja je formirana istog dana) postala je glavni nadzornik Gecko razvitka. Danas, Gecko je razvijan od strane zaposlenih u Mozilla korporaciji, zaposlenih kompanija koje doprinose Mozilla projektu i volontera.

Podržavanje standarda уреди

Od samog početka Gecko je bio dizajniran da podrzava standarde otvorenog Interneta. Neki od standarda koje Gecko podržava su:

  • CSS nivo 2.1 (delimična podrška za CSS3)
  • DOM nivo 1 i 2 (delimična podrška za DOM3 )
  • HTML4 (delimična podrška za HTML5 - pogledati poređenje raspoređivačkih mašina (HTML5))
  • JavaScript 1.8.5 (puna ECMAScript 5.1 podrska), implementiran u SpiderMonkey-u
  • MathML
  • RDF
  • XFroms (preko oficijelne ekstenzije)
  • XHTML 1.0
  • XML 1.0
  • XSLT i XPath, implementirani u TransforMiix-u

Gecko takođe delimično podržava SVG 1.1.

Da bi mogao da podržava veb stranice dizajnirane za starije verzije Netscape-a i Internet Explorer-a, Gecko podržava različite DOCTYPE deklaracije. Dokumenti sa modernim DOCTYPE-om se prikazuju u standardnom režimu, koji striktno prate W3C standarde. Dokumenti koji nemaju DOCTYPE ili stariji DOCTYPE se prikazuju u quirks modu, koji prikazuje neke od nestandardnih neobičnosti Netscape Communicator-a 4.x; međutim, neke od 4.x funkcija (kao sto su slojevi) nisu podržane.

Gecko takođe ima ograničenu podršku za neke od nestandardnih funkcija Internet Explorer-a, kao što su marquee element i document.all osobina (mada stranicama koje eksplicitno testiraju document.all će biti rečeno da nije podržan). Dok ovo povećava kompatibilnost sa mnogim dokumentima dizajniranim samo za Internet Explorer, neki puritanci tvrde da to šteti standardu.

Upotreba уреди

Gecko se uglavnom koristi u veb pregledačima, najraniji su bili Netscape 6 i Mozilla Suite (kasnije preimenovan u SeaMoneky). Takođe se koristi u drugim verzijama Mozilla veb pregledača kao što su Firefox i implementacije Internet Explorer klona koje je deo Wine-a. Mozilla ga takođe koristi u Thunderbird imejl klijentu i njihovom Firefox OS-u. Drugi veb pregledači koji koriste Gecko su K-Meleon, Lunascape, Pale Moon, Portable Firefox, Conkeror, Classilla, TenFourFox, HP Secure Web Browser, Oxygen i Sylera (za mobilne uređaje).


Drugi proizvodi koji koriste Gecko uključuju KConkeror, Oxygen, Nightingale, Instantbird i Google-ov softver za organizaciju slika Picasa (za Linux). DevHelp, GTK+/GNOME pretraživač za API dokumentaciju je koristio Gecko za predstavljanje dokumenata. Gecko je takođe korišćen od strane Sugar-a za OLPC XO-1 računar. Gecko se koristi kao kompletna implementacija XUL-a (XML jezik korisničkog interfejsa). Gecko trenutno definiše XUL specifikaciju.

Proizvodi koji su istorijski koristili Gecko uključuju Songbird, Epiphany (sada poznat kao Web i više ne koristi Gecko), Sunbird (kalendar), i drugi veb pregledači uključujući Swiftfox, Flock, Galeon, Camino, Minimo, Beonex Communicator, Kazehakase i MicroB. Posle Gecko-a 2.0, broj verzije je podignut na 5.0 da odgovara Firefox-u 5 i od tada je sinhronizovan sa verzijama Firefox-a i Thunderbird-a, da odražava činjenicu da nije više odvojena komponenta.

Kritike уреди

U proslosti Gecko je imao sporije usvajanje udela na tržištu zbog kompleksnosti Gecko koda, koji je ciljao da obezbedi mnogo više od HTML prikazivača za veb pregledače. Tehnički napori Mozile su se od tada pobrinuli za mnoge od ovih istorijskih slabosti.

Gecko takođe pruža svestran korisnički interfejs za prikazivanje baziran na XML-u, takozvani XUL koje je korišćen obimno u postanskim, newsgroup i drugim programima. Još jedan razlog za mnoge kompleksnosti Gecko-a je upotreba XPCOM-a, modela komponenata za vise platformi. Međutim, njegova upotreba je smanjena.

Na Windows-u i sličnim platformama Gecko zavisi od neslobodnih kompilatora. Prema tome, FOSS distribucije Linux-a ne mogu da sadrže Gecko paket korišćen u sloju za Windows kompatibilnost Wine.

Reference уреди

Spoljašnje veze уреди