Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko

Alois Paulin Analiza in primerjava tehnologij za razvoj spletnih aplikacij

Diplomska naloga

Maribor, september 2008 ANALIZA IN PRIMERJAVA TEHNOLOGIJ ZA RAZVOJ SPLETNIH APLIKACIJ

Ključne besede: internet, spletne tehnologije, informatika, RIA, Ajax, XML

UDK: 004.455:004.738.4(043.2)

Povzetek: Pri snovanju spletnih aplikacij je zahtevan poseben poudarek pri izboru tehnologij, na katerih bo aplikacija zgrajena. Razpoložljiv nabor je odvisen od tehničnih pogojev izvajalnega okolja na strani strežnika in odjemalca, osnovnih vsebinskih zahtev, ter nenazadnje od znanja razpoložljivih kadrov.

V našem delu smo ustvarili pregled nad tehnologijami za razvoj spletnih aplikacij, tako tistimi, ki so bile v uporabi v preteklosti, danes aktualnimi in tehnologijami, ki se razvijajo za prihodnost. Osredotočili smo se pri tem na tehnologije »odprtih standardov«, ki jih ponuja W3C. Tendence uporabe spletnih tehnologij gredo jasno v smer proizvajanja obilnih spletnih aplikacij (RIA), posledično smo izvedli primerjavo tehnoloških paketov, kot jih ponujajo različni proizvajalci za obvladovanje tega področja. Primerjali smo jih na podlagi kriterijev, ki vplivajo na odločitve za izbor tehnologij v praksi – torej tako iz vidika uporabnosti, kot tudi podprtosti tehnologije.

V praktični analizi smo izdelali RIA aplikacijo za poslovanje mladinske organizacije, ki gradi na tehnologijah odprtih standardov, pri tem pa prišli do sklepa, da te tehnologije niso še dovolj široko podprte.

ANALYSIS AND COMPARSION OF WEB TECHNOLOGIES

Keywords: internet, web technologies, informatics, RIA, Ajax, XML

Abstract: When it comes to developing web applications, the major concern regards the technologies, which are used to create a rich user experience. Our decision which one to chose

str. 2/84 depends on available infrastructure, both client‐ and server‐side, as well as on basic content‐ dependent needs and the know‐how of our human resources.

In our work we describe past, contemporary and avantgardistic web technologies, which are used for web development, focusing mainly on ”open‐standards” principles and tools. As the contemporary development of web technologies is clearly tending towards providing tools for creating “richer” content (RIA), we focused on comparing those kind of tools provided by different software houses. Our comparison based on criteria needed for decisions in real‐world scenarios and applications.

We developed an RIA application using open standards technologies for the content management of a youth organization. Doing this, we realized that open standards technologies are not yet supported broadly enough.

str. 3/84

str. 4/84

str. 5/84 Preambula

Spletne tehnologije me fascinirajo že od kar sem dobil internet, kar pa je bilo relativno pozno. Z računalnikom nisem »gor rastel«, kot je to danes navada, temveč sem ga dobil šele, ko sem bil star cca. 14 let in sem se vpisoval na srednjo šolo. Takrat je naš učitelj za matematiko mojemu očetu svetoval, da naj mi nabavi računalnik, saj da se to danes potrebuje za šolo. Tisti računalnik je imel takrat vrtoglavih 200mhz in luksuznih 64mb RAM, disk pa je bil velik pregrešnih 4Gb. Danes je to konfiguracija, kot jo ima moj telefon, le »disk« je za polovico manjši.

Ko sem se prvič srečal z internetom, se mu je pravilo še Yahoo. Takrat v njem nisem videl kaj prida smisla, tako kot tudi v računalniku na sploh ne, tako kot danes ne vidim pretiranega smisla v industrijskih strojih, katere pač ne znam uporabljati koristno. Internet je dobil veljavo v mojem svetu, ko sem v šoli spoznal, kako razburljiv je lahko ta medij za odraščajočo moško osebo (poleg manj častnih vsebin je internet nudil zlasti neomejen vir brezplačnih vrhunskih programov in zastonj glasbe). Kaj hitro sem ogulil parico hišnega telefona in nanjo z dvema »klamfama« priklopil kabel, katerega sem potegnil v svojo sobo. Temu je sledila še lična prozorna škatlica, imenovana modem – et voila: že je bil internet v moji sobi.

Seveda sta služila računalnik in internet vsemu drugemu, kot pa šolskim obveznostim, a sem se v lastni režiji na njih naučil več, kot pa mi je ves avstrijski srednješolski sistem lahko ponudil. Kaj kmalu sem želel, da se tudi sam predstavim svetu in začel sem graditi svojo spletno stran. Tem bolj sem gradil in izpiljeval svojo spletno ambasado, tem bolj sem se poglabljal v tehnologije, ki so bile za to potrebne. Priznavanje, ki sem ga bil deležen s strani sošolcev, mi je nudilo povratno vez za nadaljevanje te svoje kariere, ki se je stopnjevala v vedno bolj interaktivne in multimedialne vsebine. Tako sem že v srednji šoli osvojil veščine, ki sem jih v času študija nadgrajeval z znanjem. Predelal sem takorekoč vse, kar spada v repertoire »web‐freelancerjev« ‐ od spletnih strani, client‐side‐ scripting, obdelava slik, videa, zvoka, compositing, 2D in 3D animacija, Flash, DTP...

Edino programiranje je veščina, ki sem jo osvojil na faksu, ko sem v prvem letniku poslušal predmet Programiranje I pri prof. dr. Ojsteršku in pozneje še Programiranje II pri prof. dr. Heričkotu. Takrat sem tudi začel programirati v PHP, kar je bilo sicer daleč od logike nižjenivojskega C++ pri Prog. I in objektne Jave pri Prog. II, a je bil edini jezik, s katerim mi je uspelo povezati potrebe spleta z dinamično obdelavo podatkov in interakcijo uporabnika. Java mi je bila takrat prezahtevna, tudi predavanjem sem le z muko sledil. Snov, ki sem se jo naučil takrat za izpit, pa sem skapiral šele pozneje, ko sem naletel na C#.

V PHP sem sprogramiral svoj prvi veliki projekt, »m.comm«. m.comm je bil portal za študente Medijskih komunikacij. Pobudo zanj je podala takratna asistentka, Katja, ki je želela animirati

str. 6/84 študente k mreženju in aktivni participaciji. Vodja projekta naj bi bil sicer nekdo drug, moja naloga je bila mišljena kot naloga fizičarja pri projektu, kar mi pa nikakor ni ležalo. Projekt mi je takrat uspelo pridobiti popolnoma pod svojo kontrolo, kar pa je imelo za posledico to, da sem pri njem slej ko prej ostal sam. Uspelo mi je, da je portal kljub njegovem neuradnem statusu zaživel, študentje so ga začeli uporabljati, jaz pa sem dobil potrditev, da delam dobro. m.comm se je stalno razvijal, nanj sem vezal dosti seminarskih in ga unovčeval pri vajah. Do potankosti sem se naučil potrebnih tehnologij in si pridobil pomembne temelje za nadaljnjo izobraževanje na tem področju.

S časom sem se naveličal PHP‐ja, saj ni bilo več dosti, kar bi se lahko še naučil. Kaj več, kot pa da se učim in pridobivam praktične izkušnje, pa tudi nisem želel. Eno poletje sem se prijavil na poletno počitniško šolo Inštituta za informatiko, kjer smo se učili v C#. Istočasno me je čakal eden težjih izpitov, tako da sem se dopoldan učil programiranja, popoldan pa pozno v noč piflal za izpit. Na tej počitniški šoli sem spoznal mag. Boštjana Kežmaha, ki je v meni očitno videl nek potencial – verjetno v smislu grafičnega oblikovalca. Takrat sem ga nagovoril, če bi lahko dobil server na Inštitutu, da bi na njem začel graditi portal v C#, ki bi nasledil m.comm.

Tisto poletje me sonce kaj dosti ni videlo, kljub temu, da sem bil na morju. Programiral sem kar na terasi, nekaj metrov od mene pa so se na plaži sončili turisti. Jeseni je bil mcNet postavljen in odslej sem bil pristaš Microsoftovih tehnologij.

V tem obdobju sem bil deležen velike podpore s strani fakultete, oz. inštituta. Pozneje me je Boštjan pritegnil še v svoj laboratorij, kjer sem pomagal kot študent. Veliko mi ni bilo treba delati, saj sem naloge bodisi hitro opravil, bodisi jih ni bilo. Tako sem pretežno delal naprej na mcNetu in spoznaval nove tehnologije.

Kljub temu, da sem takrat že poznal CSS, se še nisem zavedal njegovega polnega potenciala, res pa je, da mi tudi ne bi kaj prida koristil, saj takratni alfa‐in‐omega brskalnik, IE, pač ni kaj dosti spoštoval te norme. Šele ko je MS objavil IE7 in z natečajem želel pritegniti oblikovalce k uporabi te tehnologije, sem spoznal, kaj vse se z CSS da. Podobno velja za XML, ki ga šele danes cenim in mi je bil med poslušanjem predavanj pri prof. Juriču zgolj nepotrebno znanje, ki sem ga kaj hitro zopet pozabil.

Med študijem sem se poglobil tudi v Flash, ki sem ga pred tem obvladal le iz vidika oblikovalca, a me je začel zanimati tudi iz razvijalskega vidika. Razmeroma slabo razvijalsko orodje (brez podpore za 'intellisense') pa mi te tehnologije ni naredilo kaj prida simpatično, saj sem bil že preveč razvajen luksuza, ki ga nudijo Microsoftove tehnologije. (Tako si tudi ne morem predstavljati več programiranja v PHP in me vedno znova preseneča, kako sme tako z veseljem programiral v UltraEditu.)

str. 7/84 Ko se je pojavil XAML, sem bil sprva navdušen nad potencialom, ki ga ta tehnologija obljublja, a se je navdušenje kaj hitro sprevrglo v razočaranje nad novo paradigmo programiranja, ki zamenja do sedaj navajene pristope tako iz oblikovalskega, kot tudi programerskega vidika.

Vmes sem za nekaj časa opustil programiranje, oblikovanje in vse ostale tehnologije, ki so me spremljale že od srednje šole in se znašel na študentskopolitični sceni kot novinar, pozneje funkcionar. Moja pozornost se je usmerila na DTP, znanost tiska, filozofijo pisav, sivine teksta in dilemo transformacije barv po posameznih spektrih, poleg obligatoričnih veščin iz psihologije bralca in medijskih žanrov.

V Mariboru, april 2008

str. 8/84 Kazalo

ANALIZA IN PRIMERJAVA TEHNOLOGIJ ZA RAZVOJ SPLETNIH APLIKACIJ ...... 2

ANALYSIS AND COMPARSION OF WEB TECHNOLOGIES ...... 2

Preambula ...... 6

1. Uvod ...... 11

2. Predstavitvene tehnologije ...... 12 2.1 Zgodovina brskalnikov ...... 12 2.2 HTML & XHTML ...... 15 2.3 Problemi Quirks‐mode ...... 18

3. CSS ...... 21 3.1 Zgodovina ...... 22 3.2 Paradigma/sintaksa ...... 23 3.3 »hasLayout?« ...... 25

4. XML ...... 26 4.1.1 Sintaksa ...... 27 4.1.2 Gramatika (shemata) ...... 28 4.1.3 Programatski dostop ...... 29 4.2 XSL, XQuery ...... 31 4.2.1 XSLT ...... 31 4.2.2 XLink, XPointer, XPath ...... 33 4.2.3 XQuery ...... 34 4.3 RSS ...... 35 4.3.1 Debata o nekompatibilnih standardih ...... 36 4.3.2 RSS v praktični uporabi ...... 37

5. Bogate spletne aplikacije (Rich Internet Applications) ...... 38 5.1 Uspeh RIA aplikacij ...... 40 5.1.1 Prostočasni in skupnostni‐portali ...... 40 5.1.2 Poslovne aplikacije ...... 44 5.2 Tehnologije ...... 45 5.2.1 Adobe Flex ...... 47 5.2.2 Microsoft Silverlight ...... 48 5.2.3 XUL ...... 49

str. 9/84 5.2.4 JavaFX ...... 49 5.2.5 Open Laszlo ...... 50 5.2.6 Curl ...... 50 5.2.7 Google Web Toolkit ...... 51 5.3 Sklep ...... 51 5.4 Povzetek in primerjava RIA tehnologij ...... 53

6. Avantgarde ...... 55 6.1 Webforms 2.0, XForms ...... 55 6.2 (X)HTML 5.0, XHTML 2.0 ...... 57 6.2.1 Shranjevanje podatkov pri uporabniku ...... 60 6.3 CSS3 ...... 61 6.3.1 Večstolpični razpored (Multi‐column layout) ...... 62 6.3.2 Modul za zamenjavo in generacijo vsebine (Generated and Replaced Content Module) . 62 6.3.3 Ozadja in okviri (Backgrounds and Borders Module) ...... 63 6.3.4 Funkcija calc() (modul Values and Units) ...... 63 6.3.5 Selektorji (modul Selectors) ...... 63 6.3.6 Sklep ...... 64

7. Portal MMSM ...... 65 7.1 Izhodiščne potrebe ...... 66 7.1.1 Arhitektura portala ...... 69 7.2 Tehnologije ...... 70 7.2.1 Anomalije implementacij standardov ...... 71 7.2.2 XSLT transformacije na strežniku in spletne storitve ...... 72 7.2.3 Grafi ...... 72 7.2.4 DateTime / ISO 8601...... 74 7.2.5 DOM dogodki ...... 75 7.2.6 JSON in spletne storitve ...... 76 7.2.7 Hrošč 98168 ...... 78

8. Zaključek ...... 80

9. Citirana dela ...... 82

str. 10/84 1. Uvod

Med namiznimi in spletnimi aplikacijami je dolgo časa vladala jasna meja, saj so bile prve brez dvoma obilnejše in zahtevnejše, slednje so bile namreč odvisne predvsem od razpoložljive pasovne širine. Pospešen fizičen razvoj omrežja je dovedel do praktične ukinitve faktorja pasovne širine, s čimer je spletna ponudba dobila možnost postati bogatejša, zlasti v smislu uporabniške izkušnje in količine podatkov.

Bliskovit razvoj skupnostnih portalov in portalov s multimedijsko vsebino, kot so YouTube, MySpace itd., je odkril tržno nišo razvojnih orodij in tehnoloških pristopov za kreiranje bogatih spletnih vsebin. Medtem ko je trg za razvoj informacijskih rešitev na namizju bolj ko ne jasno definiran in ima jasno definirane močne akterje, predstavlja trg za razvoj RIA aplikacij še sveže bojišče. V skladu s tem se je pojavila velika množica novih tehnologij, ki se potegujejo za prevlado na tem segmentu z močno perspektivo.

Naše delo se koncentrira predvsem na spletne tehnologije za izdelavo RIA aplikacij, ki spadajo v paket »odprtih standardov« ‐ večinoma tehnologije, ki jih je standardiziral konzorcij W3C (XML, XHTML, SVG, CSS, DOM, …). Ta pristop ni vedno najboljši, kot se bo pokazalo tekom vsebine, saj uživa včasih le delno podporo, včasih pa niti te ne. Bolj sofisticirana so posledično lastniška ogrodja komercialnih ponudnikov, kot so Flash, Silverlight in JavaFX, ki pa ne nudijo uporabniške izkušnje, kot jo nudijo »originalne« spletne aplikacije, no ‐ vsaj ne tiste tradicionalne.

Da razumemo stanje tehnologij danes, ne moremo mimo poznavanja zgodovine, ter s tem povezanih medsebojnih odnosov razvijalskih hiš, prav tako pa je nujno znanje o evoluciji spleta in njegovih tehnologij, kar opisujemo v prvih poglavjih. Poseben poudarek polagamo na XML tehnologije, ki predstavljajo osnovo tudi pri večini lastniških tehnologij (zlasti XML kot podatkovna struktura), ter na opisni jezik CSS.

Razvoj infrastrukture za računalniško komunikacijo je spremenil način, kako potrošniki uporabljajo in dojemajo splet – razvoj je potekal od komunikacijske platforme za naravno selektirano manjšino, v anarhističen medij zabavne industrije. Spremembam na trgu so razvijalci programja in industrijska združenja sledila različno hitro, kar je dovedlo do pat‐situacije dokaj enako močnih rešitev, ki smo jih priča pri tehnologijah za razvoj RIA aplikacij.

V našem delu smo izhajali iz potrebe mladinske organizacije, da svoje poslovanje sistematizira in odpre za javnost. Javnost naj bi dobila dostop do informacij o finančnem poslovanju, zapisnikih organov, ter obvestil o zasedenosti skupnih prostorov – vse to pa so podatki, ki so kot nalašč za kompleksno vizualno predstavitev in avtomatizirano delovno okolje.

str. 11/84 Naša aplikacija zahteva dinamično izdelovanje grafike (statistične informacije v obliki grafikonov, časovne informacije v obliki časovne tabele), ter intuitivnega prikaza formalnih podatkovnih struktur, kot jih najdemo pri zapisnikih sej in vabilih nanje. Za statistično obdelavo poslovanja (letna poročila, analize finančnih tokov, arhiv informacij udeleženih oseb) je vse skupaj potrebno shraniti na način, ki ni vezan na samo aplikacijo, temveč dopušča tudi poznejše spreminjanje in sodelovanje drugih poslovnih sistemov.

Našim zahtevam za shrambo podatkov najbolje odgovarja zapis in shramba v obliki XML dokumentov, obdelava le‐teh za potrebe statistike in vizualizacije pa je najbolj priročna preko sorodne tehnologije XSLT.

Fokus tega projekta je bil izdelati aplikacijo, ki ustreza omenjenim zahtevam, hkrati pa ustvariti pregled nad aktualnimi tehnologijami za izdelavo RIA aplikacij.

Tekom našega dela ustvarjamo pregled nad tehnologijami, kot so bile v uporabi v preteklosti, ki so trenutno v uporabi, ter pristopi, ki se načrtujejo za prihodnost. V drugem poglavju tako opisujemo zgodovinski razvoj spleta (WWW) in tehnologij, ki so se uporabljale na njegovem začetku, pri čemer se osredotočamo na tehnologijo HTML in njeno uporabo skozi čas. V tretjem poglavju se posvečamo tehnologiji za opis izgleda strani CSS, ki se je pojavila kot rešitev za problem, ki je nastal s pospešeno uporabo HTML kot opisni jezik za izgled spletnih strani. Četrto poglavje ustvarja poglobljen pregled nad tehnologijo XML, ki predstavlja pomemben model shranjevanja podatkov.

V petem poglavju velja naša pozornost zaokroženim tehnologijam za razvoj RIA aplikacij, kot jih ponujajo posamezni proizvajalci – izpostavili smo najpomembnejše alternative, ter nekaj manj vpadljivih. Šesto poglavje pa predstavlja pregled v prihodnost razvoja tehnologij odprtih standardov, kakršno kujejo različne interesne skupine na tem področju.

Osmo poglavje opisuje izgradnjo portala MMSM, ter zaključke, do katerih smo prišli ob uporabi tehnologij odprtih standardov za izdelavo RIA aplikacije v praksi.

2. Predstavitvene tehnologije

2.1 Zgodovina brskalnikov

Spletno oblikovanje je bil pojem, ki ga svet ni rabil, dokler se internet ni dovolj približal potrošnikom, kot tak pa se je pojavil šele sredi 90ih. HTML, kot osnova za ves nadaljnji razvoj vizualne plati spleta,

str. 12/84 ima svoje korenine v projektu ENQUIRE1 fizika Tima Berners‐Lee, ki ga je vzpostavil za interne potrebe raziskovalcev švicarskega CERNa v letu 1980 (1) (2).

B.‐L. je pozneje, leta 1989, skupaj z Robertom Cailiau predlagal WWW (WorldWideWeb). Tehnična infrastruktura, ki jo združuje pojem »internet«, je takrat obstajala že dlje časa, WWW je tako predstavljal v svojem bistvu združitev paradigem Hypertexta, TCP in DNS.

Kot spremljevalno tehnologijo k WWW je B.‐L. razvil prvi spletni brskalnik enakega imena – pozneje ga je preimenoval v »Nexus«. Brskalnik WorldWideWeb se je javnosti predstavil avgusta 1991, a ga je še istega leta po popularnosti prehitel brskalnik Viola, ki ga je razvil Tajvanec Pei‐Yuan Wei med študijem na University of California, Berkeley. Wei je bil pionirski »DesDev«2 na področju spletnih tehnologij – sam navaja, da se počuti umetnika (3). Viola je bil sprva projekt za razvoj računalniških igric (4), pozneje se je razvil v klon sistema HyperCard3 za X‐Windows4, v nadaljevanju pa se je priključil iniciativi WWW in postal prvi popularen brskalnik.

Viola ni le omembe vreden projekt iz vidika zgodovine brskalnikov, temveč je projekt, ki je doprinesel pomembne paradigme za nadaljnji razvoj spletnih predstavitvenih tehnologij. Tako je Viola že vsebovala mehanizem za vizualno oblikovanje elementov preko slogovnih datotek (stylesheet), katerih sintaksa močno spominja (oz. obratno) na CSS. Tudi paradigme izvajanja kode na strani odjemalca, katere je pozneje uporabil Netscape‐ov (danes) JavaScript je uvedla že Viola.

1 ENQUIRE (ime naj bi inspirirala knjiga »Enquire Within Upon Everything«) je uvajal paradigme, ki jih danes uporabljajo predvsem blogi in podobne aplikacije. Tako je že ta projekt uvedel paradigme »trackbacking‐a« in CMS (Content Management System), torej manipulacije vsebine preko spletne aplikacije. (25)

2 »Designer‐Developer« ‐ ta pojem označuje človeka, ki ima veščine tako na oblikovalskem, kot tudi razvijalskem področju in jih pri svojem delu uporablja hkrati. Medtem ko je takšno znanje še pred nedavnim nudilo močno prednost, današnje rešitve razvojnih orodij stremijo k temu, da ta dva področja čim enostavneje ločijo in s prepustijo oblikovalcu svobodo oblikovanja, razvijalcu pa razvoja. V praksi pa kljub vsemu oblikovalec nujno mora poznati principe razvoja na določeni platformi, kar pa presega zgolj oblikovalske lastnosti.

3 HyperCard je bilo zgodnje izvajalsko in razvijalsko okolje na Applovih računalnikih, podobno poznejšemu HTML. Razvijalci so sorazmerno preprosto kreirali programe, tako da so uporabniško izkustvu sestavljali v opisnem jeziku. Uporabniškemu vmesniku je bilo mogoče dodajati slike in interaktivne elemente, sistem pa je poznal tudi preprost način dostopa do podatkovne baze.

4 X‐Windows je popularen upravljalnik oken pri operacijskih sistemih. Danes na njem bazirajo pretežno grafični sistemi Linux‐ in drugih UniX operacijskih sistemov, kot so KDE, Gnome, Xfce,...

str. 13/84 Pravi uspeh WWW‐ja v komercialnem (torej ne več znanstvenem) smislu pa je prinesel šele brskalnik Mosaic avtorjev Marc‐a Andreessen in Eric‐a Bina, v sklopu NCSA5, v letu 1993. Glavna prednost Mosaica proti Violi je bila prisotnost na več operacijskih sistemih, tudi na popularni Amigi, Macintosh‐ u in MS‐Windows.

NCSA Mosaic je pomemben mejnik v razvoju brskalnikov in posledično spleta, saj so se iz tega projekta razvila oba pomembna brskalnika – Netscape Navigator in . Tako je Microsoft leta 1995 izdal MSIE‐1, ki je indirektno baziral na znanju Mosaica6, a tudi Netscape se je razvil iz znanja, ki ga je Andreessen prenesel ob svojem odhodu iz NCSA v podjetje Mosaic Communications Corp., pozneje Netscape Communications Corp. (5)

Prvi brskalniki so prinesli tudi pomemben doprinos k HTML: pozicioniranje slik znotraj teksta. Pred tem so se slike prikazovale v dodatnih oknih, upoštevati pa je treba, da tehnologija (tako hitrost prenosa podatkov, kot tudi fizične lastnosti prikazovalnih naprav) še ni spodbujala grafično kompleksnih kompozicij. Tako nas ne more presenetiti dejstvo, da je bil namen prvotnega HTML, kot ga je definiral Berners‐Lee, izključno semantične narave in se je šele pozneje razvil v predvsem vizualno tehnologijo.

Uradno standardiziran HTML – »HTML 2.07« se je vzpostavil šele leta 1995 v sklopu delovne skupine IETF8, leta 1997 sta sledila HTML 3.2 kot priporočilo W3C in HTML 4.0, 1999 pa še zadnja verzija HTML – 4.01. Na definicije in strukturo posameznih standardov sta močno vplivala oba močna brskalnika, MSIE in NN, kar je razlog za postopno preusmeritev HTML iz semantičnega jezika v predstavitveni jezik.

5 National Center for Supercomputing Applications je ustanova v okviru University of Illinois. NCSA je program, ki ga financirajo USA na zvezni ravni, njegova naloga pa je spodbujati raziskave in razvoj s področja kibernetske infrastrukture.

6 Nekateri viri sicer trdijo, da je prvi IE direktno baziral na kodi Mosaica, kar pa zavrača Erik Sink (http://www.ericsink.com/Browser_Wars.html), eden izmed avtorjev tehnologije Spyglass Mosaic, ki je bila uporabljena tudi v IE. Podjetje Spyglass je od NCSA pridobilo ekskluzivne pravice za uporabo imena Mosaic, zaradi česar se je Netscape moral preimenovati v Netscape Communications in ni smel ostati Mosaic Communications. Res pa je, da je prvi IE bil v bistvu Spyglass Mosaic, nadaljni pa so obdržali večino kode iz tega projekta. Šele MSIE 7, ki je izšel 2005/06, je prenehal uporabljati njegovo kodo.

7 Sufiks »2.0« ne predstavlja številke verzije, temveč je odgovor na konkurenčni razvoj predlogov HTML (avtorjev Berners‐Lee in Dan Conolly) ter HTML+ (avtorja Dave‐a Raggett)

8 Internet Engineering Task Force je mednarodna, odprta organizacija, ki zasleduje interese standardizacije spletnih tehnologij. Pozneje je področje standardizacije tehnologij v domeni WWW prevzel konzorcij W3C.

str. 14/84 2.2 HTML & XHTML

»Oče« HTML‐a je bil sprva SGML9, a je njegova divja, nestandardizirana uporaba dovedla do situacije, ko ni bilo več nujno, da je bil nek HTML‐dokument tudi skladen s pogoji, ki jih zastavlja SGML. HTML 2.0 si je prizadeval ponovno vpeljati skladnost z SGML, tako tudi vsi nadaljnji standardi.

Oba projekta, ki sta se razvila iz dediščine Mosaica – MSIE in NN, sta se spustila v pravcato vojno za prevlado spleta. Prvi nesporni voditelj je bil Netscape, ki je od konca leta 1995 do 1997 predstavljal non‐plus‐ultra z več kot 80% tržnim deležem, nakar ga je začel prehitevati v Windows 95 tesno integrirani MSIE, ki je svoj de‐facto monopol držal do prihoda Mozillinega Firefox‐a v letu 2004. (Kljub porastu popularnosti Firefox‐a in padcu tržnega deleža MSIE na račun manjših brskalnikov, se MSIE v letu 2008 še vedno drži na preko 75%. (6))

V praksi je vojna brskalnikov pomenila, da se je spletna stran sestavila za en brskalnik, zraven pa je oblikovalec pripisal kako in kje se najlepše prikaže. Dominanten brskalnik je bil načeloma MSIE, ker je bil v masovni uporabi v gospodinjstvih in na šolah; in kljub temu, da je NN/Gecko10 vedno veljal za »pridnejšega« glede standardov, MSIE pa je té splošno znano interpretiral sebi v prid, se je trg orientiral po zahtevah močnejšega. Tekom vojne so se razvile HTML‐označbe v izključni domeni posameznega brskalnika. Tako je Netscape izumil , , , in , IE pa in (7).

Odličen prikaz evolucije HTML specifikacij in njihove podpore glede na brskalnik nam nudi Brian Wilson na svojem spletnem mestu (8), ki nam nudi tudi vpogled, kako so brskalniki vplivali na samo specifikacijo. Tako je bil Netscape prvi, ki je z verzijo 1.0 (dec. 1994) uvedel »pregrešno« označbo, katera se je pojavila šele maja 1996 v osnutku HTML 3.2 (vredno je pripomniti, da se je osnutek HTML 2.0 uradno predlagal šele septembra 1995). Netscape je tudi vpeljal večino dodatnih

9 Standard Generalized Markup Language je abstraktni opisni jezik, od katerega derivirata tako HTML, kot tudi XML. Tehnologija bazira na paradigmi IBM‐ovega GML (poimenovan po inicialkah avtorjev Goldfarb, Mosher in Lorie). (27)

10 , sicer simpatičen, pisani kuščar, je ime za razporejevalni pogon, ki ga je uporabljal Netscape od verzije 6.0 naprej (nov. 2000). Znanje za razvoj Gecka je Netscape dobil leta 1997, ob nakupu podjetja DigitalStyle. Po propadu Netscape je Gecko prešel v odprto kodo, na njem pa danes bazira tudi Firefox. (26) razporejevalni pogon, ki poganja MSIE od verzije IE4 (okt. 1997) naprej, se imenuje /MSHTML.

str. 15/84 11 označb v verziji 1.0 oz. 2.0, ter in