primerjava streŽniŠkih skriptnih jezikov · spletna stran [2]. dinamične spletne strani tako...
TRANSCRIPT
Marko Knehtl
PRIMERJAVA STREŽNIŠKIH SKRIPTNIH JEZIKOV
Diplomsko delo
Maribor, maj 2012
ii
PRIMERJAVA STREŽNIŠKIH SKRIPTNIH JEZIKOV
Diplomsko delo
Študent: Marko Knehtl
Študijski program: UN ŠP Medijske komunikacije
Smer: Vizualne komunikacije
Mentor: doc. dr. MARKO HÖLBL, univ. dipl. inž. rač. in inf.
Somentor: asist. JAKA POLUTNIK, univ. dipl. medij. kom.
iii
iv
ZAHVALA
Zahvaljujem se mentorju za vso
pomoč, nasvete in znanje, ki sem ga
pridobil. Prav tako se zahvaljujem
somentorju za pomoč pri izbiri teme
tega dela in pomoč pri začetkih.
Hvala staršem, ki so mi omogočili ta
študij in bližnjim prijateljem za
spodbudo.
v
PRIMERJAVA STREŽNIŠKIH SKRIPTNIH JEZIKOV
Ključne besede: dinamične spletne strani, PHP, JAVA, JSP, ASP.NET, Python, Django,
Ruby, Rails, MySQL, primerjava.
UDK: 004.738.5:004.43(043.2)
Povzetek:
V diplomskem delu je med seboj primerjanih pet strežniških skriptnih jezikov, ki se pogosto
uporabljajo pri programiranju dinamičnih spletnih strani. Med te jezike spadajo PHP,
JAVA, ASP.NET, Python in Ruby. Raziskano je ozadje vsakega jezika, s katerim smo za
preizkus ustvarili preprosto dinamično spletno stran. Ob tem so omenjene še ostale
komponente, ki so potrebne za delovanje dinamičnih spletnih strani. Sem spadajo strežniki,
podatkovne baze in programska opema za pisanje spletnih dokumentov. Za lažji pregled je
na koncu dodana primerjalna tabela jezikov, ki bo v pomoč uporabnikom pri izbiri pravega
jezika za njihovo delo.
vi
COMPARISON OF SERVER-SIDE SCRIPT LANGUAGES
Key words: dynamic web page, PHP, JAVA, ASP.NET, Python, Ruby, Rails, MySQL,
comparison
UDK: 004.738.5:004.43(043.2)
Abstract:
In our diploma we compare five server-side script languages, which are popular for
development of dynamic web pages. We compare languages
such as PHP, JAVA, ASP.NET, Python and Ruby.Studied the background of
each language, with which we created a simple test for dynamic web page. Beside
languages are described other components, which play important part in the world of
dynamic web pages. Those components are server, data bases and applications for
developing web documents.
At the end is the comparsion table for easiest review of languages, which will assist users in
selecting the right language for their work.
vii
KAZALO
1 UVOD .............................................................................................................................................. 9
2 DELOVANJE SPLETNIH STRANI ..................................................................................... 10 2.1 Statične spletne strani ...................................................................................................................... 10 2.2 Dinamične spletne strani ................................................................................................................. 11 2.3 Sistem delovanja dinamičnih spletnih strani .............................................................................. 13
3 KOMPONENTE DINAMIČNIH SPLETNIH STRANI ................................................... 15 3.1 Skriptni jeziki ..................................................................................................................................... 15 3.2 Strežnik ................................................................................................................................................ 16 3.2 Podatkovna baza ............................................................................................................................... 17
4 ANALIZA STREŽNIŠKIH SKRIPTNIH JEZIKOV ....................................................... 19 4.1 PHP ....................................................................................................................................................... 19 4.2 ASP.NET ............................................................................................................................................. 21 4.3 JAVA (JAVASERVER PAGES) ................................................................................................... 24 4.4 PYTHON ............................................................................................................................................. 26 4.5 RUBY ................................................................................................................................................... 28
5 PRIMERJAVA ........................................................................................................................... 30 5.1 Uporaba jezika PHP ......................................................................................................................... 30 5.3 Uporaba jezika JAVA ...................................................................................................................... 32 5.5 Uporaba jezika ASP.NET ............................................................................................................... 34 5.4 Uporaba jezika PYTHON ............................................................................................................... 37 5.5 Uporaba jezika Ruby ....................................................................................................................... 39
6 PRIMERJALNA TABELA STREŽNIŠKIH SKRIPTNIH JEZIKOV ........................ 42
7 ZAKLJUČEK ............................................................................................................................. 45
8 VIRI IN LITERATURA ........................................................................................................... 46
9 PRILOGE .................................................................................................................................... 51 9.1 CD z datotekami testnih spletnih strani ...................................................................................... 51
viii
KAZALO SLIK Slika 2.1: Prikaz delovanja statičnih spletnih strani. ______________________ 11
Slika 2.2: Grafični prikaz delovanja dinamičnih spletnih strani. ____________ 12
Slika 2.3: Prikaz delovanja MVC sistema. _____________________________ 14
Slika 4.1: Primer sintakse jezika PHP. ________________________________ 21
Slika 4.2: Primer sintakse jezika ASP.NET. ____________________________ 23
Slika 4.3: Primer sintakse jezika JSP. _________________________________ 25
Slika 4.4: Primer sintakse jezika Python. ______________________________ 27
Slika 4.5: Primer sintakse jezika Ruby. ________________________________ 29
Slika 5.1: Vstavljanje PHP kode v HTML dokument. ____________________ 31
Slika 5.2: Način vstavljanja in izpisa HTML kode v PHP kodi. _____________ 31
Slika 5.3: Izsek kode JSP Servleta. ___________________________________ 33
Slika 5.4: Vstavljanje JSP kode v HTML dokument. _____________________ 34
Slika 5.6: Primer uporabniškega vmesnika za upravljanje s podatkovno bazo v
IDE-ju. _________________________________________________
35
Slika 5.7: Primer tabele, ki jo je IDE ustvaril samodejno na podlagi narejene tabele v
podatkovni bazi. __________________________________________
36
Slika 5.8: Vstavljanje Python kode v HTML dokument. ___________________ 37
Slika 5.9: Primer iz datoteke urls.py, kjer funckija povezuje URL naslov z željeno
funkcijo. ________________________________________________
38
Slika 5.10: Izsek kode iz datoteke settings.py, ki prikazuje povezavo na podakovno
bazo. ____________________________________________________
38
Slika 5.11: Primer funkcije v "kontrolerju", ki izpiše trenutni čas. _____________ 40
Slika 5.12: Primer vstaljanja Ruby kode v HTML.erb dokumente. ____________ 40
KAZALO TABEL
Tabela 1: Primerjalna tabela__________________________________ 42
Primerjava strežniških skriptnih jezikov
9
1 UVOD
Internet je pomemben medij sedanjega časa in število spletnih strani že od samega začetka
narašča. Kot bomo videli v nadaljevanju, poznamo dva tipa spletnih strani, statične in
dinamične. Slednje so danes zaradi številnih prednosti ključnega pomena.
Poti za ustvarjanje dinamičnih spletnih strani je več. Izbiramo lahko med različnimi načini in
možnostmi, med katere spadajo CMS1 sistemi (spletne aplikacije, napisane s strežniškimi
skriptnimi jeziki) ali programiranje z različnimi strežniškimi skriptnimi jeziki.
Pri ustvarjanju spletnih strani se lahko hitro znajdemo pred težavo in odločitvijo, kateri
skriptni jezik izbrati za željen projekt. Pojavijo se vprašanja, kot na primer: kateri jezik je
uporabniku blizu glede na dosedanje izkušnje s programiranjem? S katerim jezikom
najhitreje ali najlažje doseči željen rezultat? Katero programsko opremo je potrebno imeti?
Je potrebno predznanje? Odgovore na zastavljena vprašanja bomo dobili skozi raziskovanje,
testiranje in primerjavo jezikov.
V primerjavo smo vključili pet strežniških skriptnih jezikov: PHP, JAVA, ASP.NET, Python
in Ruby. Nekateri od njih so bili prvotno namenjeni programiranju aplikacij, vendar lahko z
njimi ustvarjamo tudi spletne strani. Raziskali bomo vsak jezik posebej, ga na kratko
predstavili in z njim testno ustvarili preprosto dinamično spletno stran. Na podlagi rezultatov
in pridobljenih izkušenj bomo ustvarili primerjalno tabelo vseh petih jezikov.
1 Content management system
Primerjava strežniških skriptnih jezikov
10
2 DELOVANJE SPLETNIH STRANI
Po delovanju, uporabi in namenu lahko ločimo med dvema tipoma spletnih strani, in sicer
med statičnimi in dinamičnimi spletnimi stranmi, ki se med seboj precej razlikujeta. Ob
omenjenih tipih strani bomo v tem delu spoznali tudi dva sistema oz. načina delovanja
dinamičnih spletnih strani.
2.1 Statične spletne strani Glavna lastnost statičnih spletnih strani je, da vsebujejo HTML dokumente s statično,
določeno vsebino. Vsebina se ne spreminja, razen če jo ročno spremeni ustvarjalec ali
skrbnik. Posledično se zato vsakemu uporabniku prikažejo iste strani z istimi informacijami.
Te strani so osnovni tip spletnih strani [1].
Statične spletne strani ne potrebujejo podatkovnih baz, posebnih strežniških nastavitev in
ostalih komponent dinamičnih spletnih strani. Zaradi omenjenih lastnosti so uporabnejše za
manjše projekte. Če bi se s statičnimi stranmi lotili večjih projektov, bi posledično dobili
veliko količino dokumentov, kar bi vodilo v nepreglednost, podvajanje kode in k večji
porabi prostora na strežniku. Te težave se rešujejo z dinamičnimi spletnimi stranmi [1].
Delovanje statičnih spletnih strani je v primerjavi z dinamičnimi preprostejše. Vsebina strani
je shranjena v HTML dokumentih, ti pa so shranjeni na strežniku. Proces se začne, ko
uporabnik preko brskalnika zahteva določeno stran. Spletno stran lahko zahteva direktno
preko URL naslova ali preko hiperpovezav na spletnih straneh. Brskalnik in strežnik
uporabljata za komunikacijo internetni protokol HTTP. Ko strežnik prejme zahtevo
brskalnika, na disku poišče zahtevan HTML dokument in ga pošlje nazaj brskalniku skupaj
z dodatnimi datotekami, če so zahtevane (grafične, multimedijske datoteke). Ko brskalnik
prejme odgovor, prikaže uporabniku HTML dokument v obliki spletne strani [2].
Primerjava strežniških skriptnih jezikov
11
Slika 2.1: Prikaz delovanja statičnih spletnih strani [2].
Prednosti statičnih spletnih strani so, da jih je v osnovi lažje ustvarjati, saj velja HTML
sintaksa za enostavnejšo. Namenjena je prikazovanju elementov (obliki spletne strani) in ne
programiranju kot skriptni jeziki [3].
V brskalniku se lahko strani prikazujejo zelo hitro (če je grafična in multimedijska vsebina
primerno optimizirana), saj ne vsebujejo skript, ki bi se morale izvajati (tako kot pri
dinamičnih spletnih straneh). Ker ne vsebujejo interakcije s podatkovno bazo, so bolj
mobilne v smislu, da jih je enostavneje prenašati iz enega direktorja v drugega ali iz enega
strežnika na drugega [37].
Slabosti so, da je strani težje in zamudnejše posodabljati ter da ponujajo zelo malo možnosti
za interakcijo z uporabnikom v primerjavi z dinamičnimi spletnimi stranmi.
HTML dokumenti imajo svojo vlogo tudi pri dinamičnih spletnih straneh, kjer se
uporabljajo kot grafična predloga spletne strani.
2.2 Dinamične spletne strani Nasprotje statičnih spletnih strani so dinamične, katerih glavna lastnost je spreminjajoča se
vsebina strani. Vsebina se spreminja glede na parametre, ki so poslani strežniku s spletne
strani [2].
Za primer vzemimo spletno stran, ki vsebuje iskalnik. Uporabnik v iskalnik vnese želeno
geslo in ob kliku na primeren gumb se mu na spletni strani prikažejo rezultati v kontekstu z
iskanim geslom. To je le eden od primerov uporabe [2].
Zraven iskalnikov (Google, Yahoo) dinamične strani ponujajo uporabo različnih storitev, kot
na primer elektronsko pošto (GMail, Hotmail), socialna omrežja (Facebook, Twitter),
spletne igre (Travian), spletne trgovine (Amazon, eBay), internetno bančništvo in tako dalje.
Vsebina se lahko spreminja tudi ne glede na uporabnika. Kot primer vzemimo funkcijo
datuma ali časa, ki se lahko na spletni strani spreminja samodejno.
Primerjava strežniških skriptnih jezikov
12
Dinamične spletne strani potrebujejo za svoje delovanje in izvajanje strežniško aplikacijo in
vir podatkov (podatkovne baze, podatki iz drugih spletnih strani itd.). Zaradi tega je proces
delovanja dinamičnih spletnih strani zahtevnejši kot delovanje pri statičnih spletnih straneh.
Proces se začne, ko uporabnik pošlje določene parametre preko brskalnika strežniku.
Parametri so lahko izbrani na različne načine, npr. uporabnik izpolni obrazec in s pritiskom
na potrditveni gumb pošlje parametre strežniku. Ta prejme zahtevo, prepozna vsebino
dinamične spletne strani in zahtevo pošlje naprej strežniški aplikaciji. Ko strežniška
aplikacija sprejme zahtevo, procesira podatke in ustvari HTML dokument. Pri procesiranju
podatkov se lahko poveže tudi na podatkovno bazo, če je to potrebno. Ustvarjen HTML
dokument aplikacija pošlje nazaj strežniku, ta v brskalnik uporabnika, kjer se prikaže kot
spletna stran [2].
Dinamične spletne strani tako vedno poženejo skripto, ko morajo ustvariti spletno stran za
uporabnika [37].
Slika 2.2: Grafični prikaz delovanja dinamičnih spletnih strani [2].
Prednosti dinamičnih spletnih strani je več. V primerjavi s statičnimi ponujajo dinamične
več možnosti za grajenje interaktivnosti z uporabnikom. Enostavneje jih je posodabljati in
nove, sveže vsebine privabijo uporabnike nazaj na stran. Vsebina strani je pogosto shranjena
v podatkovni bazi in ne direktno v dokumentu, pri čemer se pridobi na prostoru in
preglednosti dokumenta, saj lahko ločimo vsebino, logiko in obliko strani v ločene
dokumente. Kot glavno prednost bi lahko podali, da dinamične spletne strani ponujajo več
funkcionalnosti uporabniku, saj ponujajo več kot le statično vsebino [4].
Slabosti so, da je zaradi kompleksnih jezikov za pisanje dinamične strani potrebnega več
znanja in časa. Kompleksne strani lahko delujejo počasneje, pojavijo pa se tudi težave z
varovanjem sistema in podatkov [5].
Primerjava strežniških skriptnih jezikov
13
Če primerjamo oba tipa strani, dinamične strani ponujajo dosti več od statičnih. Pri
implementaciji dinamičnih strani imamo dosti več prostora za razvijanje in nismo omejeni
samo na HTML jezik. Kljub vsemu pa oba tipa strani služita svojemu namenu. Če naročnik
želi enostavno spletno stran zgolj za predstavitev ali zaradi problema s stroški, bo prav prišla
statična spletna stran. Če so zahteve večje, pa so statične strani premalo in lahko ponudimo
stran z dinamično vsebino.
2.3 Sistem delovanja dinamičnih spletnih strani Kot rezultat naših testiranj jezikov lahko razdelimo sistem delovanja in organiziranosti
datotek spletnih strani v dve kategoriji:
1. Standardni sistem
Pod standardni sistem v našem primeru spadata jezika PHP in JAVA (JSP). Za ta sistem je
značilno, da se koda jezika prepleta s HTML kodo. Sistemska logika, dostop do podatkov in
oblika strani so združeni v istem dokumentu. Nekateri uporabniki imenujejo ta sistem tudi
"špageti koda", saj lahko pride pri velikih količinah kode do zmešnjave in nepreglednosti
[13].
Za lažjo razlago vzemimo za primer stran, napisano z jezikom PHP. Jezik PHP omogoča, da
en PHP dokument vsebuje vse sestavine, ki so potrebne za prikaz in vsebino strani (vsebuje
kodo za obliko strani, različne funkcije in povezavo na podatkovno bazo, s pomočjo katere
lahko dostopamo do podatkov na njej in z njimi dopolnimo vsebino strani).
2. MVC sistem
Logika in organiziranost datotek MVC sistema sta drugačni od standardnega načina. Sistem
je bil razvit leta 1980 v podjetju Xerox. Ključno je, da so komponente strani ločene v tri
dele:
- "Model" predstavlja informacije in podatke, s katerimi spletna stran upravlja.
- "View" predstavlja vidni del, ki se prikaže kot spletna stran v brskalniku uporabnika.
- "Controller" predstavlja gonilno silo sistema, saj je interakcija med komponentama
"Model" in "VIew" [13].
Primerjava strežniških skriptnih jezikov
14
Slika 2.3: Prikaz delovanja MVC sistema [36].
Postopek delovanja je sledeč:
1. Brskalnik pošlje zahtevo do komponente "Controller" na strežniku.
2. "Controller" komunicira s komponento "Model" (ta dostopa do baze).
3. "Controller" nato dostopa do komponente "View", kjer se ustvari HTML dokument.
4. HTML dokument se pošlje nazaj brskalniku, kjer se uporabniku prikaže kot spletna stran
[36].
Po treh opisanih komponentah so ločene in organizirane tudi datoteke spletne strani (vsaka
od treh omenjenih komponent se nahaja v svoji datoteki, ločeno od ostalih) kot različni tipi
funkcionalnosti. Pri izvajanju sistema se vsi ločeni deli med seboj povežejo in kot rezultat
dobimo spletno stran [36].
V MVC sistem spadata jezika Python in Ruby. Čeprav sta bila jezika PHP in JAVA prvotno
namenjena načinu ureditve po standardnem načinu, bi se ju z nekaj truda dalo prilagoditi in
približati MVC vzorcu, če bi uporabnik to želel [14].
Primerjava strežniških skriptnih jezikov
15
3 KOMPONENTE DINAMIČNIH SPLETNIH STRANI
V tem sklopu bomo natančneje spoznali vse potrebne komponente dinamičnih spletnih strani
in njihove lastnosti. Med te komponente spadajo skriptni jeziki, strežnik in podatkovna baza.
3.1 Skriptni jeziki Na splošno poznamo za programiranje dve vrsti jezikov, in sicer sistemske programske
jezike in skriptne jezike. Za sistemske programske jezike je značilno, da jih računalnik sam
po sebi ne razume, zato jih moramo za izvajanje preslikati v strojno kodo. "To za nas naredi
poseben program, ki mu pravimo prevajalnik [15]."
V poznih sedemdesetih letih pa se je razširil programski jezik BASIC, ki za svoje delovanje
ni več potreboval prevajalnika, ampak "interpreter". Delo "interpreterja" je, da vsako vrstico
sproti preslika v strojne ukaze, jih izvede, nato pa isto ponovi z naslednjo vrstico. Sistem se
je izkazal za zelo praktičnega, zato se je sčasoma pojavila cela vrsta skriptnih jezikov [15].
"Skriptni jeziki so jeziki, ki so po skladnji podobni višjim računalniškim jezikom, le da ti ne
potrebujejo prevajalnika. Poznamo tiste, ki se izvedejo takoj (se pravi v brskalniku) - to so
HTML, javascript, VBS ipd. -, ter tiste, ki se izvedejo v samem strežniku in se kot
dinamična spletna stran prikažejo v brskalniku v obliki navadne HTML kode. V to skupino
spadajo PHP, ASP, JSP in podobni [6]."
Prednost skriptnega jezika je, da so naši programi izvršljivi takoj in njihovo spreminjanje
poteka hitro [15].
"Programiranje v skriptnih jezikih se od navadnega programiranja razlikuje v pomembnem
dejstvu, da skriptni jeziki predvidevajo, da že obstaja množica uporabnih komponent, ki jih
nato lahko uporabimo v lastnih programih [7]."
Druga pomembna razlika je, da skriptni jeziki ne uporabljajo tipov kot sistemski programski
jeziki. To pomeni, da lahko eni spremenljivki priredimo vrednosti različnih tipov in jih ni
potrebno temu primerno deklarirati [7].
Na primer, če bi želeli spremenljivki v sistemskem programskem jeziku C++ prirediti
tekstovno vrednost, bi morali spremenljivko posebej deklarirati:
Primerjava strežniških skriptnih jezikov
16
String tekst = "To je tekst.";
Ista spremenljivka v jeziku PHP bi izgledala tako:
$tekst = "To je tekst.";
Spremenljivke ni potrebno posebej deklarirati (ji "povedati", da bo vsebovala tekst), saj je
večina skriptnih jezikov interpretiranih tako, da se prostor za spremenljivke rezervira med
samim izvajanjem programa. "Takšna uporaba spremenljivk povečuje ponovno uporabnost
in zelo olajšuje povezovanje komponent, saj jih lahko uporabimo na načine, ki prvotno niso
bili predvideni [7]."
Uporaba skriptnih jezikov in "interpreterja" ima tudi svoje slabosti. "Izvajanje programa
postane počasnejše, saj mora "interpreter" vsako vrstico znova prevesti, četudi jo ponavlja.
Tudi dostop do programskih spremenljivk je počasnejši [15]."
3.2 Strežnik "Strežniki so namenski računalniki, iz katerih črpamo podatke v internetu, medtem ko je
odjemalec računalnik, s katerim dostopamo v internet in je namenjen povezavi s strežniki
[6]."
Razlika med običajnim računalnikom in pravim strežnikom je v njuni zasnovi, saj je strežnik
veliko bolj zmogljiv zaradi kvalitetnejših komponent, ki jih vsebuje. Uporabnikom morajo
nenehno zagotavljati dostop do spletnih strani, zato je poskrbljeno za njihovo varnost (v
posebnem prostoru, kjer so nameščeni) in dodatne sistemske komponente (rezervni disk,
pomnilnik, procesor itd.). Pomembna razlika je tudi v hitrosti povezave, saj so strežniki v
svet povezani z dosti hitrejšimi povezavami, kot jih imamo v domačem gospodinjstvu
(strežnik s počasnejšo povezavo ni posebej uporaben, še posebej pri spletnih straneh z veliko
obiskovalci) [39].
Na strežniku se nahajajo vse datoteke, ki sestavljajo spletno stran. V primeru statičnih
spletnih strani so to v osnovi HTML dokumenti, v primeru dinamičnih spletnih strani pa so
vse datoteke prilagojene jeziku, s katerim so napisane. Te datoteke vsebujejo skripte, tekst,
Primerjava strežniških skriptnih jezikov
17
lahko tudi HTML kodo (primer: pri jeziku PHP so to datoteke s končnico .php). Na
strežniku se lahko nahajajo tudi vse ostale multimedijske datoteke, če so del spletne strani
(grafika, zvok ...) [2].
Dinamične spletne strani oz. strežniški skriptni jeziki potrebujejo za svoje delovanje še
poseben strežniški program - imenovan spletni strežnik, ki je prav tako nameščen na samem
strežniku [6].
"Preprosto rečeno, to je program, ki po protokolu HTTP usmerja in interpretira podatke, ki
jih dobi po svetovnem omrežju ali jih tja pošilja. Spletnih strežnikov je po svetu milijone in
prav v vsakem je en od strežniških programov [6].
Kot bomo videli pri testiranju jezikov, skoraj vsak jezik uporablja strežnik Apache. Vsak
jezik potrebuje tudi svojo različico strežnika. Posebnost je ASP.NET, ki uporablja svoj
strežnik IIS2. Ta strežnik deluje samo v okolju Microsoft Windows in je že del operacijskega
sistema [12].
Na strežniku je ob strežniškem programu pogosto nameščen še sistem za upravljanje s
podatkovno bazo in podatkovna baza.
3.2 Podatkovna baza "Ena od možnih definicij podatkovne baze je ta, da je to zbirka podatkov, ki jih na
sistematičen način hranimo v računalniku tako, da lahko iz njih s pomočjo računalniškega
programa dobimo ali izsejemo odgovor na zastavljeno poizvedbo. [8]"
Podatkovne baze so pomembnejši sestavni del dinamičnih spletnih strani, saj je v njih lahko
shranjena vsebina spletne strani. Vsebina je na ta način ločena od ostalih komponent spletne
strani (logike, oblike ...).
Do podatkov iz baze se lahko dostopa s pomočjo jezika SQL, ki je standardni jezik za
dostop do podatkovne baze, koda pa je zapisana v datotekah spletnih strani [41].
Z uporabo podatkovne baze lahko uporabnikom s pomočjo različnih obrazcev omogočimo,
da v podatkovno bazo shranjujejo podatke, jih oblikujejo ali brišejo. Na ta način uporabniki
sami vplivajo na vsebino spletne strani. Kot primer lahko vzamemo spletni blog. Te spletne
2 Internet Information Services
Primerjava strežniških skriptnih jezikov
18
strani omogočajo uporabnikom pisanje in shranjevanje želenih vsebin, ki jih lahko berejo ali
komentirajo ostali uporabniki.
Možnosti, ki si jih lahko privoščimo s povezavo podatkovne baze in skriptnim jezikom, je
ogromno [9].
Pri raziskovanju podatkovnih baz pogosto naletimo na kratico DBMS, ki pomeni "Database
Management System". To bi v našem jeziku pomenilo sistem za upravljanje s podatkovno
bazo (SUPB) [10].
SUPB je programska oprema, ki opravlja s podatki v podatkovni bazi in omogoča kreiranje,
vzdrževanje ter nadzor nad dostopom [42].
V naših testih skriptnih jezikov bomo uporabljali sistem MySQL, ki je brezplačen, deluje na
vseh operacijskih sistemih in je primeren za manjše projekte.
Primerjava strežniških skriptnih jezikov
19
4 ANALIZA STREŽNIŠKIH SKRIPTNIH JEZIKOV
V tem delu bomo predstavili teoretično ozadje vsakega izmed petih jezikov in ga na kratko
analizirali. Analiza je vključevala iskanje in preučevanje različnega gradiva o jezikih. Sem
spadajo knjige o jezikih, uradne spletne strani jezikov in dodatno gradivo, ki smo ga poiskali
na internetu, če je bilo potrebno.
Ker za nekatere jezike obstaja večje število knjig, smo med njimi (v katerih smo iskali
informacije) izbirali naključno.
Pogoji analize so bili pri vsakem jeziku drugačni, saj so se viri informacij od jezika do jezika
spreminjali. Primer: nekateri jeziki ponujajo več informacij v knjigah, drugi na internetu, kar
pomeni, da smo informacije pri določenih jezikih našli prej kot pri drugih.
Vsebina predstavitve je razdeljena na začetek, namembnost, delovanje in podporo jeziku.
4.1 PHP
Jezik je leta 1994 začel razvijati programer Rasmus Lerdorf. "Razvijati ga je začel iz jezika
Pearl, dodal je še nekaj jave in C-ja in nastal je PHP. Ponudil ga je javnosti kot odprto kodo
[6]."
S pomočjo nekaterih programerjev je jezik do danes šel skozi štiri velike in pomembnejše
posodobitve. Zadnja različica jezika je PHP 5.3.8. Največji preskok v delovanju je bil med
različico 4 in 5 [16].
Novembra leta 2007 je bil nameščen na več kot 21 milijonih domen po vsem svetu [5].
PHP je strežniški skriptni jezik, ki je bil ustvarjen posebej za internet. "Kratica PHP pomeni
"Hypertext Preprocessor" [6].
"Njegova prednost pred tekmeci pride do izraza pri pisanju krajših in srednje dolgih spletnih
strani, saj je kakovostno stran z njim mogoče napisati zelo hitro." [6]
Glede na to, da je jezik v prvi vrsti namenjen pisanju dinamičnih spletnih strani, lahko z
njim pišemo kakršne koli aplikacije, igre (govora je o preprostih brskalniških igrah, kot npr.
igra Travian) in druge namenske programe [6].
Primerjava strežniških skriptnih jezikov
20
Statistika uporabe strežniških jezikov, ki jo vodijo na spletni strani www.w3techs.com, kaže,
da jezik PHP uporablja 77.2 % vseh spletnih strani, ki so jih testirali [16].
Po raziskavi druge spletne strani jezik PHP uporablja približno 25 milijonov in pol spletnih
strani. Največ jih spada pod kategorijo "Podjetja" in "Tehnologije" [17].
Po preverjanju najbolj popularnih spletnih strani, ki uporabljajo jezik PHP, lahko kot primer
izpostavimo naslednje:
Wikipedia
Wordpress
Izpostavljene strani spadajo med 17 najbolje obiskanih strani leta 2011 po raziskovanju
Googla [44].
PHP kodo lahko dodajamo znotraj HTML strani in ta se bo izvršila vedno, ko se stran
naloži. Kodo je možno pisati tudi v samostojne PHP datoteke, ki ne vsebujejo HTML kode.
Vse datoteke (tudi HTML dokumenti), ki vsebujejo PHP kodo, morajo biti shranjene kot
PHP datoteke (s končnico .php), sicer PHP koda ne deluje. PHP koda se interpretira na
strežniku, ki ustvari HTML stran, ki se nato prikaže v uporabnikovem brskalniku.
Zahtevnejšim uporabnikom jezik nudi možnost objektnega programiranja. Če se odločimo
za objektno programiranje, pride do razlike v sintaksi jezika in organiziranosti dokumentov.
Jezik uporablja za delovanje strežnik Apache [5].
Povezava na podatkovne baze jeziku PHP ne predstavlja težav, saj je povezljiv na več
sistemov. Zraven MySQL-a (ki s PHP-jem deluje najbolje) se lahko PHP poveže še z
ostalimi sistemi, kot na primer z Oracle, FilePro, DB2, PostgreSQL in mnogimi ostalimi [5].
Sintaksa jezika PHP je podobna jeziku C. Spodnji primer prikazuje preprost izpis teksta s
pomočjo jezika PHP.
Primerjava strežniških skriptnih jezikov
21
Slika 4.1: Primer sintakse jezika PHP.
PHP je brezplačen in zadnjo različico si je vedno moč prenesti iz uradne spletne strani. Ta
spletna stran nudi uporabnikom vse informacije v zvezi z jezikom. Na strani so zbrane vse
funkcije in elementi jezika. Vse so opisane in testirane na primerih, kar je lahko
uporabnikom v veliko pomoč. Na temo programiranja s PHP jezikom obstaja tudi veliko
literature. Preiskali smo največjo spletno knjigarno, kjer smo našli preko 150 knjig v zvezi s
PHP jezikom.
4.2 ASP.NET
ASP.NET je produkt podjetja Microsoft in izhaja iz njegovega predhodnika ASP, kar
pomeni, da je ASP.NET novejša različica jezika ASP, vendar ni njegova nadgradnja. Je
nova, samostojna različica jezika [21].
ASP je izšel leta 1998 kot prvi Microsoftov strežniški skriptni pogon in jezik. Z jezikom
ASP lahko programiramo še danes, vendar se kot jezik več ne razvija [22].
Leta 2004 ga je nadomestil ASP.NET, ki je bil ustvarjen kot eden glavnih delov projekta
.NET Framework-a. .NET Framework je okolje za grajenje, uvajanje in delovanje spletnih
aplikacij in internetnih storitev [21].
ASP.NET je tehnologija, ki prinaša interaktivne spletne aplikacije za internet. Je set
Microsoftovih spletnih razvojnih orodij za dinamične spletne strani, spletne aplikacije in
spletne storitve. To pomeni, da njegova uporaba pride do izraza tako pri manjših spletnih
straneh kot tudi pri večjih spletnih projektih [20].
. <html>
. <head>
. <title>PHP Demo</title>
. </head>
. <body>
.
. <?php
. $tekst = "To se bo izpisalo";
. echo $tekst;
. ?>
.
. </body> </html>
Primerjava strežniških skriptnih jezikov
22
ASP.NET velja za zelo trdno storitev. Na lestvici pogostosti uporabe je na drugem mestu,
takoj za jezikom PHP[16].
Po preverjanju najbolj popularnih spletnih strani, ki uporabljajo jezik ASP.NET, lahko za
primer izpostavimo naslednje:
- CNN.com
- Weather.com
- Nytimes.com
- MSN.com
Te strani so izpostavljene zato, ker spadajo med najbolj popularne strani, ki uporabljajo
omenjen strežniški jezik po izbiri strani W3tech.com [45].
Ker je ASP.NET produkt podjetja Microsoft, je njegova povezava z različnimi operacijskimi
sistemi zelo omejena. Pogoj za razvoj jezika je samo okolje Microsoft Windows. Da lahko
ASP.NET stran deluje, mora uporabljati strežnik, ki se že nahaja v sistemu Microsoft
Windows, vendar ga je za delovanje potrebno aktivirati naknadno. Strežnik se imenuje IIS
[20].
Podatkovna baza, ki s sistemom deluje najbolje, je SQL Server, ki je prav tako produkt
podjetja Microsoft. ASP.NET ponuja možnost povezave tudi na druge podatkovne baze
[23].
Ena izmed posebnosti jezika je, da uporablja svoj IDE, ki se imenuje Visual Studio. Ker je
aplikacija plačljiva, je na voljo manj kompleksen IDE Visual Web Developer Express, ki je
brezplačen. V teoriji bi lahko uporabili tekstovni urejevalnik in pisali ASP.NET kodo v
HTML dokument, vendar je to povsem nepraktično, saj nam IDE ponuja lažji način
dela[20].
ASP.NET je razdeljen na tri razvojne modele (vsak model deluje po svoje):
- Web pages
- MVC
- Web forms
Primerjava strežniških skriptnih jezikov
23
Web pages je najenostavnejši ASP.NET model. Podoben je PHP-ju in klasičnemu ASP-ju.
Namenjen je preprostejšim spletnim stranem, ki potrebujejo enostavnejše dinamične
elemente spletnih strani.
Web forms je dogodkovni model in nadgradnja predhodnega modela Web pages. Posebnost
je, da lahko ločimo uporabniški vmesnik (izgled strani) in logiko aplikacije. Ta model je
bližje MVC modelu, vendar ne ponuja toliko funkcionalnosti kot sam MVC model.
MVC je najkompleksnejši model ASP.NET-a. Namenjen je kompleksnejšim spletnim
aplikacijam in deluje po sistemu MVC. Je nadgradnja Web forms [24].
V osnovi spada jezik med standardne sisteme, kjer njegove elemente vstavljamo v HTML
kodo, kot pri jeziku PHP. Leta 2007 so jezik razširili in mu dodali možnost MVC sistema.
Tako imamo pri tem jeziku izbiro standardnega in MVC sistema [24].
Sintakso jezika si lahko pred začetkom pisanja spletne strani preprosto izberemo. ASP.NET
ponuja jezika C# in VisualBasic. ASP.NET je objektno orientiran jezik [20].
Spodnji primer prikazuje preprost izpis teksta s pomočjo jezika ASP.NET.
Slika 4.2: Primer sintakse jezika ASP.NET.
Vse datoteke, potrebne za delovanje jezika in pisanje spletnih strani, je možno dobiti na
uradni spletni strani jezika.
Po iskanju literature v največji spletni knjigarni Amazon.com smo ugotovili, da je literature
bistveno manj kot pri jeziku PHP. Uradna spletna stran jezika ponuja pomoč, vendar ne tako
natančno kot pri PHP-ju.
. <html>
. <head>
. <title>ASP.NET demo</title>
. </head>
. <body>
.
. <% Response.Write("To se bo izpisalo!") %>
.
. </body> </html>
Primerjava strežniških skriptnih jezikov
24
4.3 JAVA (JAVASERVER PAGES)
Jezik je prvotno namenjen pisanju aplikacij in ne spletnih strani. Prva različica jezika Java
1.0 se je pojavila leta 1995 in je dosegla pravo malo revolucijo na področju programiranja.
Ta revolucija je zelo hitro spremenila splet v zelo interaktivno okolje [25].
Jezik je vplival na internet s pomočjo appletov. Applet je posebna vrsta Java aplikacije, ki je
namenjena temu, da se prenaša preko interneta in so avtomatsko izvršeni v brskalnikih, ki so
kompatibilni z Javo. To deluje tako, da če uporabnik klikne na povezavo, ki vključuje
applet, se bo ta avtomatsko prenesel in zagnal v brskalniku [27].
Appleti niso obstajali dolgo, saj so zamrli takoj, ko jih je Internet Explorer nehal podpirati.
To je tudi eden od razlogov, zakaj se je razvil JavaServer Pages. Uporabniki so lahko začeli
pisati JAVA aplikacije, ki se izvajajo na strežniku [2].
Java je samostojni programski jezik, ki se ga največ uporablja za aplikacije na internetu.
Tako je JAVA perminenten jezik interneta in je tako univerzalen jezik za spletne
programerje po vsem svetu [25].
JavaServer Pages (JSP) je jezik in tehnologija, ki omogoča pisanje dinamičnih spletnih
strani. Gre za vejo jezika JAVA [28].
Jezik je po uporabi na tretjem mestu, takoj za jezikoma PHP in ASP.NET [16].
Po preverjanju najbolj popularnih spletnih strani, ki uporabljajo jezik JAVA, lahko za
primer izpostavimo naslednje:
- eBay.com
- Java.com
- Linkedin.com
- Aol.com
Te strani so izpostavljene zato, ker spadajo med najbolj popularne strani, ki uporabljajo
omenjen strežniški jezik po izbiri strani W3tech.com [46].
Jezik je vedno bolj popularen v zadnjih letih, saj se je pojavil tudi v pametnih telefonih.
Priljubljen in razširjen telefonski operacijski sitem Android uporablja jezik Java za svoje
aplikacije [26].
Primerjava strežniških skriptnih jezikov
25
JSP strani so dokumenti, ki imajo v HTML kodi dodano še JAVA kodo.Datoteke z JSP kodo
so shranjene s končnico .jsp [2].
JSP je enostavni jezik, s pomočjo katerega je možno na hitro in enostavno narediti spletno
stran z dinamično vsebino [29].
Za delovanje je potrebna odprtokodna strežniška programska oprema Apache Tomcat, ki se
nahaja na uradni spletni strani strežnika in je brezplačna.
JSP deluje po vzoru dinamičnih spletnih strani, vendar je proces malo daljši. Ko uporabnik
pošlje zahtevo strežniku, ta spremeni JSP stran v servlet. Strežnik ga pošlje v servlet pogon,
kjer se servlet izvrši. Po procesu servlet vrne HTML stran nazaj v brskalnik uporabnika [2].
Servleti so JAVA razredi, ki delujejo na strežniku in procesirajo dinamične spletne strani. So
zelo uporabni, saj razširijo možnost strežnikov. Servlet lahko napišemo tudi sami in ga
povežemo z JSP stranjo [30].
JSP prihaja s posebno podatkovno bazo, imenovano HSQLDB, ki so jo razvili pri Javi. Je
preprosta podatkovna baza namenjena predvsem testiranju, izhaja pa iz MySQL-a. Jezik je
prav tako kompatibilen z ostalimi podatkovnimi bazami [2].
Za pisanje dinamičnih spletnih strani nam je lahko v pomoč IDE Net Beans, ki je namenjen
pisanju JAVA aplikacij. IDE je brezplačen. Sintaksa jezika je podobna jezikoma C in
C++[2].
Spodnji primer prikazuje preprost izpis teksta s pomočjo jezika JSP.
Slika 4.3: Primer sintakse jezika JSP.
Podpora za učenje jezika je zelo skromna. Sam jezik nima prav svoje uradne spletne strani,
kjer bi se lahko našla dodatna pomoč. Podobno je z literaturo. V spletni knjigarni
. <html>
. <head>
. <title>ASP.NET demo</title>
. </head>
. <body>
.
. <font size="10"><%="To je izpis" %></font>
.
. </body> </html>
Primerjava strežniških skriptnih jezikov
26
Amazon.com smo našli zelo malo knjig na temo JSP jezika. Natančneje - manj kot 30.
Večina knjig je bila starejših, saj so bile stare več kot deset let.
4.4 PYTHON
Jezik se je začel razvijati že leta 1980, dokončal in izdal pa ga je Guido van Rossum leta
1991. Danes je na voljo tretja različica jezika, Python 3.0, ki je izšla leta 2008 [31].
Leta 2007 in 2010 je jezik Python dobil nagrado za Programski jezik leta po lestvici TIOBE3
[47].
Python je programski jezik, ki je namenjen ustvarjanju tako preprostejših kot zahtevnejših
aplikacij, iger in tudi spletnih strani. Programer Michael Dawson ga je v svoji knjigi označil
kot popoln jezik za programerja začetnika, predvsem zaradi čiste in preproste sintakse, ki
omogoča pisanje različnih aplikacij v zelo kratkem času. Čeprav je jezik v prvem planu
namenjen programiranju aplikacij, lahko z njim pišemo tudi dinamične spletne strani [31].
Po pogostosti uporabe je Python na zadnjem mestu, saj ga uporablja zgolj 0,2 % vseh
spletnih strani [16].
Po preverjanju najbolj popularnih spletnih strani, ki uporabljajo jezik Python, lahko za
primer izpostavimo naslednje (iz seznama so strani izbrane naključno):
- Google.com
- Yahoo.com
- Youtube.com
Za ustvarjanje dinamičnih spletnih strani je potrebno dodatno namestiti framework, ki to
omogoča. Na internetu je na voljo dosti framework-ov za dinamične spletne strani. Mi bomo
uporabljali framework Django, ki velja za najbolj priljubljenega in kompleksnega [33].
Django za sprotno testiranje spletnih strani uporablja vgrajen strežnik. Če želimo spletno
stran objaviti v spletu, potrebujemo Apache strežnik in vtičnik, ki poveže jezik Python s
strežnikom. Django prihaja z vgrajeno podatkovno bazo SQLite, vendar nima težav pri
povezavi na druge podatkovne baze [33].
3 TIOBE je podjetje, ki je specializirano za preverjanje kvalitete programskih jezikov [48].
Primerjava strežniških skriptnih jezikov
27
Django deluje po sistemu MVC in ne dopušča druge možnosti. Kot je značilno za MVC
sistem, je spletna stran sestavljena iz različnih Python datotek (datoteke s končnico .py) [33].
Za razliko od nekaterih jezikov ima ta možnost biti objektno orientiran, kar je predvsem
dobrodošlo za nove uporabnike jezika.
Med posebnosti jezika spada tudi, da ga lahko integriramo z drugimi jeziki, kot npr. s C,
C++ ali celo z Java jezikom. To pomeni, da lahko združuje ali koristi določene prednosti teh
jezikov [31].
Sintaksa jezika je opisana kot zelo preprosta oz. preprostejša od jezikov JAVA, C ali C++.
Dokaz za to je, da je celotna koda kakšne aplikacije od tri- do petkrat krajša, kot bi bila v
kakšnem drugem jeziku. Kljub vsemu pa zajema vse, kar bi pričakovali od današnjega,
modernega programskega jezika [31].
Spodnji primer prikazuje preprost izpis teksta s pomočjo jezika Python. Zaradi MVC
sistema je delček kode napisan v posebni datoteki, ki vsebuje samo funkcije.
Slika 4.4: Primer sintakse jezika Python.
Jezik Python je brezplačen in je dostopen na uradni spletni strani jezika. Je odprtokoden. V
primerjavi z ostalimi opisanimi jeziki je podpore tako za jezik Python kot framework
Django na internetu in v literaturi najmanj. Za Django smo našteli šest knjig, medtem ko jih
je bilo za sam Pythonmalo več, vendar knjige v zvezi s samim jezikom niso v pomoč pri
programiranju dinamičnih spletnih strani. Django ima svojo spletno stran, kjer obstaja
dokumentacija za uporabo.
from django.http import HttpResponse
defindex(request):
return HttpResponse("To se bo izpisalo!")
Primerjava strežniških skriptnih jezikov
28
4.5 RUBY
Razvit je bil leta 1990 in prihaja iz Japonske izpod rok programerja Yukihiro Matsumoto
[36].
Trenutna različica jezika je 1.9, ki je izšla leta 2011. Framework za ustvarjanje spletnih
strani Ruby on Rails je izšel leta 2004. Ruby on Rails je prejemnik različnih nagrad, med
drugim je bil izbran kot framework "Web 2.0 aplikacij" [36].
Ruby je samostojni programski jezik, namenjen razvijanju in pisanju aplikacij.
Ena izmed glavnih posebnosti jezika je, da se od standardnih jezikov, kot so PHP, C++ in
podobnih, razlikuje ne samo po sintaksi, ampak tudi po kulturi, slovnici in sistemu.Velja, da
je jezik enostaven za uporabnika, ki predhodno ne pozna nobenega drugega jezika.
Uporabnik, ki ima kakršno koli predznanje kakega drugega jezika, je lahko ob učenju tega
zmeden. Bolj je podoben manj znanim jezikom, kot so LISP ali Smaltalk [36].
Med nekaj znanih imen, ki uporabljajo Ruby jezik, spadajo podjetja, kot so Microsoft,
Apple, Intel itd.
Po pogostosti uporabe je Ruby na predzadnjem mestu, vendar se njegova priljubljenost in
uporaba počasi večata [16].
Po preverjanju najbolj popularnih spletnih strani, ki uporabljajo jezik Ruby, lahko za primer
izpostavimo naslednje (iz seznama so strani izbrane naključno):
- Amazon.com
- Twitter.com
- Guitarhero.com
Ker je jezik vsestranski, lahko s pomočjo framework-a pišemo tudi dinamične spletne
strani. Framework se imenuje Ruby on Rails [13].
Gre za enostavni jezik, ki deluje po sistemu MVC. Ne omogoča uporabe drugega sistema
[36].
To pomeni, da je spletna stran sestavljena iz različnih datotek, ki sledijo vzoru MVC
sistema. Datoteke imajo končnico .ry. Ruby je odprtokoden in objektno orientiran jezik [13].
Primerjava strežniških skriptnih jezikov
29
Framework Django že vsebuje interni strežnik za testiranje spletnih aplikacij. Če želimo
spletno aplikacijo objaviti na strežniku, potrebujemo Apache strežnik s posebnim vtičnikom
za delovanje naše aplikacije [38].
Ruby on Rails vsebuje že podatkovno bazo SQLite. S pomočjo vtičnikov in dodatnih
nastavitev se lahko poveže tudi na ostale podatkovne baze [36].
Koda datotek spletne strani je kratka, pregledna in enostavna, sintaksa jezika pa velja za
unikatno [36].
Spodnji primer prikazuje preprosto funkcijo, napisano v komponenti "Controller", ki vodi do
datoteke "hello". Datoteka "hello" je navadna HTML datoteka.
Slika 4.5: Primer sintakse jezika Ruby.
Ruby in Ruby on Rails sta oba brezplačna, dobiti se ju da na njuni uradni spletni strani [36].
Podpora za uporabnike v literaturi je obetajoča, saj je vedno več knjig, ki učijo uporabljati
jezik. Ruby ima svojo spletno stran, kjer obstaja dokumentacija za uporabo.
class SaiController < ApplicationController def hello end end
Primerjava strežniških skriptnih jezikov
30
5 PRIMERJAVA
Primerjavo teoretično analiziranih strežniških skriptnih jezikov bomo izvedli tudi s
testiranjem vsakega jezika posebej. Naredili bomo enostavno spletno stran, ki bo vsebovala
preprost spletni obrazec za registracijo uporabnika. Uporabnik bo lahko vnesel podatke, kot
so ime, priimek in elektronski naslov. Vneseni podatki se bodo nato shranili v podatkovno
bazo in se po uspešnem vnosu tudi izpisali na naslednji strani.
Pri testu se bomo srečali s sintakso, delovanjem, namestitvijo, učenjem in s problemi
vsakega jezika posebej. Cilj testa je preveriti teoretično ozadje jezikov in spoznati jezike v
praksi. Rezultati nam bodo v pomoč pri izpolnjevanju primerjalnega jezika. Vsak jezik ima
svojo težavnostno stopnjo, sistem delovanja, lastnosti itd.
Ker test vsebuje povezavo na podatkovno bazo, je z jezikom potrebno namestiti še
podatkovno bazo. V našem testu bomo uporabljali bazni sistem MySQL, saj gre za razširjen
sistem, ki je brezplačen in ga podpirajo vsi jeziki.
5.1 Uporaba jezika PHP
Za delovanje jezika je potrebno namestiti strežnik Apache. Na spletu je ponujenih več
različnih paketov, ki vsebujejo strežnik, podatkovno bazo in različne dodatke (ti paketi so na
primer Wamp, Mamp, Xampp ...). V našem primeru smo uporabili paket Xampp.
Namestitev je zelo enostavna, saj poteka preko enostavnega uporabniškega vmesnika. Po
namestitvi lahko z nameščeno aplikacijo vklopimo strežnik in začnemo z delom.
Spletne strani s PHP kodo lahko pišemo v poljubnem tekstovnem urejevalniku. Pisanje
spletne strani v osnovi izgleda tako, da PHP funkcije in značke vstavljamo v HTML kodo.
Primerjava strežniških skriptnih jezikov
31
Slika 5.1: Vstavljanje PHP kode v HTML dokument.
Kot je prikazano na primeru, se začetek PHP kode označi z značko <?php in zaključi s ?> (ta
način spada med najpogostejše). Za isto nalogo obstajajo še drugi načini kot npr. oblika <?
php koda ?>.
Poleg načina pisanja PHP kode v HTML kodo obstaja tudi način, da pišemo PHP kodo v
ločeno datoteko in v to kodo vstavljamo HTML kodo. To omogočajo posebne funkcije
jezika, kot na primer funkcija echo ali print, kot lahko vidimo na spodnjem primeru.
Slika 5.2: Način vstavljanja in izpisa HTML kode v PHP kodi.
Način, ki ga prikazuje Slika 10 je lahko pri kompleksnejših izpisih HTML kode zahtevnejši,
saj je potrebno paziti na vse vsebujoče znake (nekateri HTML ali CSS ukazi vsebujejo
narekovaje, kar lahko zmede funkcijo echo in dobimo napačen izpis. Pri kompleksnih
spletnih straneh in neizkušenosti uporabnika lahko pride zaradi mešanja HTML in PHP kode
do zmede in slabše preglednosti. PHP zato omogoča, da lahko kodo spletne strani pišemo po
delih v različne datoteke (ni potrebno, da je celotna stran napisana v enem dokumentu). Te
različne dokumente lahko s posebnimi funkcijami združimo v novem dokumentu.
Vse datoteke s spletne strani se shranjujejo v posebno mapo na strežniku. To uporablja
spletni strežnik Apache za prikaz naše strani, kar pomeni, da moramo prav vse datoteke, ki
sestavljajo našo stran, shraniti v to mapo, da strežnik ve, s katerimi datotekami operira. Če
se ob klicanju želene datoteke ta ne nahaja v strežniški mapi, se stran ne prikaže in sistem
<body>
<h1>Vstavljanje php kode v HTML<h1>
<?php echo "Primer"; ?>
</body>
<?php
echo "<h1>Naslov poglovja</h1>";
echo "<p>Tekst</p>";
?>
Primerjava strežniških skriptnih jezikov
32
javi napako. Vse sestavne datoteke spletne strani moramo ustvariti sami (nekateri jeziki in
sistemi sami ustvarijo ključne dele strani).
Sintaksa jezika je razumljiva, berljiva in ko jo razumemo, je preprosta, saj funkcije
vsebujejo besede, iz katerih je razviden namen.Če je v naši kodi napaka, se stran ne prikaže.
Prikaže se besedilo, ki opozarja na napako ter navede vzrok in vrstico napake.
Postopek povezave na podatkovno bazo je lahko ob prvi uporabi precej surov in dolgotrajen,
saj je potrebno uporabiti več funkcij, da pridemo do želenega rezultata (izpis ali vnos v
bazo). Potrebno je ustvariti povezavo na bazo, SQL stavek in pripraviti spremenljivke za
vnos (v primeru vpisovanja v bazo) ali pripraviti pridobljen rezultat za izpis (če iz baze
pridobivamo podatke). Pri izpisu iz baze je potrebno ustvariti še funkcijo za izpis, ki bo
podatke prikazala na željen način.
V primerjavi z ostalimi štirimi jeziki lahko rečemo, da je jezik precej surov. To pomeni, da
moramo večino stvari napisati sami. Pisanje spletnih strani je s pomočjo jezika PHP tako
večkrat lahko zamudno, saj je potrebno napisati precej več kode kot pri nekaterih drugih
jezikih, ki ponujajo bližnjice. V tem primeru se moramo ob delovanju naše aplikacije
osredotočati še na implementacijo. Funkcije in elementi z imeni izražajo svoj namen, vendar
se ob nepoznavanju sintaksa hitro zaplete.
Za večje in kompleksnejše strani je potrebno imeti več znanja iz jezika PHP, prav iz
razloga, ker moramo vse napisati sami [36].
Za pisanje spletnih strani z jezikom PHP ne potrebujemo predznanja kakšnega drugega
jezika, saj je sintaksa dovolj razumljiva, da se je naučimo že ob učenju ali uporabi jezika.
Jezik PHP izhaja iz jezika C, kar lahko za uporabnike z znanjem jezika C predstavlja
podobnost [5].
Slabost jezika je čas, ki ga vložimo v pisanje spletnih strani. Z nekaterimi drugimi jeziki
lahko z manj časa dosežemo večje rezultate, z manj truda in z manj pisanjem kode.
5.3 Uporaba jezika JAVA
Začetki programiranja spletnih strani z jezikom JAVA so bili precej težavni, začelo se je že
pri namestitvi jezika. Namestiti je potrebno več različnih elementov, težje pa jih je bilo
povezati med seboj. Potrebno je namestiti jezik JAVA in strežnik Apache Tomcat.
Namestitev strežnika ne nudi namestitve preko uporabniškega vmesnika, zato ga je bilo
Primerjava strežniških skriptnih jezikov
33
potrebno namestiti s pomočjo ukaznega poziva. Po namestitvi je potrebno med seboj
povezati strežnik in jezik (kopiranje različnih datotek med seboj). Ker želimo jezik povezati
s podatkovno bazo MySQL, moramo namestiti še poseben vtičnik, ki to omogoča (prav tako
s pomočjo ukaznega poziva) [2].
Spletne strani JSP je možno pisati s pomočjo aplikacije (IDE) Net Beans, zato smo namestili
še tega (IDE med drugim poskrbi tudi za organiziranost datotek in vklop/izklop strežnika).
Pisanje spletne strani poteka tako, da se JSP elementi vstavljajo v HTML kodo. JSP in
HTML koda se prepletata, kar lahko vodi do nepreglednosti. V našem primeru smo vse
skupaj pisali v spletno stran HTML, čeprav je bolj priporočljivo napisati servlet in JSP stran
povezati z njim. Za ta način je potrebno naprednejše znanje jezika JAVA, saj servleti
uporabljajo sintakso JAVA jezika. Zaradi kompleksnosti in zahtevnosti servletov velja, da
naj bi JSP strani pisali grafiki, medtem ko servlete programerji [2].
Spodnja slika prikazuje izsek kode servleta.
Slika 5.3: Izsek kode JSP servleta [2].
Sintaksa jezika JSP je zahtevna in kompleksna. Čeprav obstaja precej JAVA knjižnic in
razredov, iz katerih lahko črpamo bližnjice, se je potrebno naučiti precej kode. V spletno
stran lahko vnašamo JSP elemente in tudi direktno JAVA kodo. JSP uporablja več različnih
za vstavljanje JSP kode v HTML dokument in vsak način ima svoj namen. To kompleksnost
potrjuje pet različnih načinov, kot vidimo na spodnji sliki.
import java.io.*:
import javax.servlet.*;
import javax.servlet.http.*;
String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastname");
response.serContentType("text/html;charset=UTP-8");
PrintWriter out = response.getWriter();
ouy.println(
"<html>\n"
+"<html>\n"
Primerjava strežniških skriptnih jezikov
34
Slika 5.4: Vstavljanje JSP kode v HTML dokument.
Težava je nastopila pri povezavi na podatkovno bazo. Potrebnih je več nastavitev, ukazi za
povezavo na bazo pa so sintaktično precej nejasni. Prav tako obstajajo različne možnosti
povezave, kar je dodatno zahtevno. Pomagati si je potrebno tudi s samo JAVO.
Vse datoteke, ki vsebujejo JSP kodo, so shranjene pod končnico .jsp. Datoteke, ki
sestavljajo našo spletno stran, se morajo za delovanje shraniti v posebno mapo na strežniku,
da lahko stran deluje.
Za konec testa lahko trdimo, da je JSP jezik, namenjen izkušenejšim uporabnikom in
programerjem, ki že imajo znanje iz jezika JAVA. JSP je nadgradnja jezika JAVA za pisanje
spletnih aplikacij. Brez servletov je pisanje spletnih strani z JSP jezikom težje in
zamudnejše. Jezik lahko v celoti izkoristimo, če prepletamo servlete in JSP strani, kar pa je
težje, saj je pisanje servletov zahtevno opravilo, namenjeno izkušenim programerjem [2].
Kot celota je jezik JAVA zelo zmogljiv, vendar je težji za učenje. Na uradni spletni strani je
zapisano, da uporabniki za pisanje JSP strani ne potrebujejo znanja jezika JAVA, kar po
našem testu ne drži. Za našo spletno stran smo potrebovali dosti več časa kot pri jeziku PHP
in tudi kode je bilo več.
5.5 Uporaba jezika ASP.NET
Namestitev jezika je zelo enostavna. Na spletni strani jezika je možno prenesti aplikacijo
"Microsoft visual studio express", ki je nujno potrebna za pisanje ASP.NET spletnih strani.
To je brezplačna različica glavne aplikacije Visual Studio. IDE je priporočljiv, saj zraven
podpore za pisanje strani vsebuje še strežnik in povezavo na bazo. Namestitev je preprosta,
<h1>primeri vstavljanja JSP kode</h1>
<% JSP funkcije %>
<%= JSP izrazi %>
<@ JSP direktive %>
<%-- JSP komentarji --%>
<%! JSP deklaracija %>
Primerjava strežniških skriptnih jezikov
35
saj poteka preko uporabniškega vmesnika. Če želimo uporabiti podatkovno bazo MySQL, je
potrebno namestiti še dodatek za podatkovno bazo MySQL Connector/Net.
ASP.NET za ustvarjanje strani deluje tako, da kodo skriptnega jezika vstavljamo v HTML
stran. Pri tem nam je v veliko pomoč IDE, saj kodo za nas ustvari avtomatsko. HTML koda
in koda jezika ASP.NET se med seboj prepletata in nista ločeni. Vse pisanje in ustvarjanje
spletnih strani je uporabniku zelo prijazno. IDE ponuja dva načina dela. Lahko pišemo
izvorno kodo strani, lahko pa se ukvarjamo z grafičnim vmesnikom v Design načinu, kjer
IDE sam generira kodo. Slednji način je enostavnejši in hitrejši. V spletno stran lahko
vstavljamo HTML elemente iz knjižnice, ki se grafično prikažejo v spletni strani. Vsakemu
HTML elementu lahko dodajamo vse lastnosti, in to ne da bi morali posebej poznati HTML
kodo.
Posebej enostaven je proces povezave na podatkovno bazo. Bazo in tabele je možno narediti
in jih upravljati v samem programu (ni potrebno delati baz z ukaznim pozivom). IDE
namreč ponuja grafični vmesnik za upravljanje z bazo. Ta način je še posebej primeren za
vse uporabnike, ki nimajo izkušenj s sistemi podatkovnih baz, saj je to še posebej enostavno.
Slika 5.6: Primer uporabniškega vmesnika za upravljanje s podatkovno bazo v IDE-ju.
Dodatno nas je presenetilo, ko smo želeli izpisati podatke iz baze. Vse, kar je potrebno
narediti, je, da se podatkovno bazo povleče iz knjižnice na stran in IDE avtomatsko naredi
tabele, povezavo itd. Cel postopek je v primerjavi z ostalimi jeziki najbolj preprost.
Primerjava strežniških skriptnih jezikov
36
Slika 5.7: Primer tabele, ki jo je IDE ustvaril samodejno na podlagi narejene tabele v
podatkovni bazi.
Z dodajanjem manjših nastavitev se tabeli avtomatsko dodajo na stran različne kontrole (za
vstavljanje v bazo, brisanje itd.).
Pri ustvarjanju enostavnih strani s pomočjo grafičnega vmesnika ni potrebno poznati HTML
ali druge kode. Če želimo programirati kompleksnejše stvari, nam ASP.NET ponuja
programiranje z jezikom C# in VisualBasic. Sintaksa obeh jezikov se precej razlikuje [20].
Pisanje spletnih strani brez omenjenega orodja bi bilo neprimerno težje. Vedno imamo
možnost vpogleda v kodo, ki jo je IDE ustvaril. Lahko jo tudi ročno spreminjamo. Sama
koda oz. sintaksa je precej jasna.
Ustvarjanje dinamičnih strani z jezikom ASP.NET je zaradi IDE okolja precej drugačno od
ostalih testiranih spletnih strani. Jezik nudi dosti bližnjic, ki omogočajo velike rezultate z
malo truda.
Po testu lahko označimo jezik kot primeren za začetnike, saj za ustvarjanje enostavnih
spletnih strani ne zahteva znanja kode, ki pa je kasneje priporočljiva. Kodo je bolje poznati,
saj nismo odvisni od avtomatizacije, ki je zelo priporočljiva in prijazna uporabniku.
V našem primeru smo uporabili standardni način pisanja strani. To pomeni, da se koda
jezika in HTML koda prepletata. Na izbiro imamo tudi MVC sistem, ki je kot nadgradnja
jezika.
S pomočjo jezika ASP.NET smo najhitreje prišli do želenega rezultata, preproste dinamične
spletne strani s podatkovno bazo.
Primerjava strežniških skriptnih jezikov
37
5.4 Uporaba jezika PYTHON
Namestitev in priprava vseh potrebnih stvari za začetek programiranja sta tudi pri tem jeziku
nekaj posebnega. Prvotno je potrebno namestiti jezik Python s pomočjo ukaznega poziva. Ta
način je lahko za manj vešče uporabnike težji.
Našo spletno aplikacijo bomo pisali s pomočjo frameworka Django, ki ga je potrebno
namestiti naslednjega. Namestitev frameworka je bila izmed vseh jezikov najzahtevnejša in
nam je vzela največ časa. Framework je bilo potrebno namestiti prav tako s pomočjo
uporabe ukaznega poziva.
Če želimo framework povezati s podatkovno bazo MySQL, potrebujemo še vtičnik. Tudi
namestitev vtičnika je bila zamudna, saj je bilo potrebno najti pravo pot in potrebnega je bilo
nekaj programerskega znanja.
Za upravljanje s sistemom Django in jezikom Python potrebujemo znanje in izkušnje z
delom ukaznega poziva, saj enostavnejšega uporabniškega vmesnika ni.
Naša aplikacija ali projekt je sestavljena iz posebnih map in datotek, ki jih framework
Django ustvari sam in so potrebne za delovanje spletne strani.
Strežnika za testiranje naše aplikacije ni potrebno nameščati, saj Django vsebuje strežnik, ki
služi za testiranje spletne strani.
Django uporablja sistem MVC, ki se razlikuje od standardnega. Koda dinamičnega dela
spletne strani je ločena od HTML datotek. Posebnost je, da se v HTML kodo ne vpisuje
večjih delov Python-ove kode, ampak zgolj rezultati funkcij iz drugih datotek.
Slika 5.8: Vstavljanje Python kode v HTML dokument.
Sistem nam na začetku ustvari tri pomembne datoteke, ki so srce naše spletne strani. Te
datoteke so urls.py, manage.py in settings.py.
<h1>primeri vstavljanja Python kode v
HTML stran</h1>
<p>Dragi {{ ime_uporabnika }},</p>
Primerjava strežniških skriptnih jezikov
38
Datoteka urls.py predstavlja most med URL naslovi (iz brskalnika) in našimi funkcijami.
Kot primer: če nekdo vpiše URL naslov z besedo Zdravo (http://www.nasastran.si/zdravo),
bomo v tej datoteki povezali zahtevek s funkcijo, ki se ob tej zahtevi izvrši.
Slika 5.9: Primer iz datoteke urls.py, kjer funckija povezuje URL naslov z željeno funkcijo.
Settings.py je datoteka, kjer so shranjene različne nastavitve naše strani. Med nastavitvami
je tudi povezava na podatkovno bazo, kjer so vsi podatki za povezavo na bazo. Povezava na
bazo se vzpostavi sama.
Slika 5.10: Izsek kode iz datoteke settings.py, ki prikazuje povezavo na podakovno bazo.
Datoteka manage.py vsebuje različne funkcije naše spletne strani. Za ločitev različnih
funkcij lahko sami ustvarimo Python datoteke (datoteke s končnico .py), kamor lahko
dodajamo funkcije. HTML datoteke oz. predloge se morajo nahajati v posebni mapi
"Templates". Te predloge vsebujejo HTML kodo in Python spremenljivke, ki služijo kot
rezultati naših funkcij. Rezultatom funkcij povemo, v katerem HTML dokumentu naj se
prikažejo.
Jezik ponuja nekaj bližnjic. Ko ustvarimo modele za podatkovno bazo, nam sistem ustvari
administratorsko spletno stran, kjer lahko na lažji način upravljamo s podatki iz baze,
uporabniki in nastavitvami spletnih strani. Stran deluje kot uporabniški vmesnik za
nastavitve naše spletne strani. Obstaja še več uporabnih bližnjic. Če želimo ustvariti HTML
tabelo, obstaja preprosta funkcija, ki sama naredi celotno HTML tabelo namesto nas.
urlpatterns = patterns('',
(r'^time/$', current_datetime),
(r'^time/plus/\d+/$', hours_ahead),
)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.',
'NAME': 'test',
'USER': 'admin',
'PASSWORD': 'admin',
Primerjava strežniških skriptnih jezikov
39
Sintaksa jezika je zelo preprosta, razumljiva in direktna. Funkcijo lahko zapišemo dosti
hitreje in z manj kode kot pri jezikih PHP, ASP.NET ali JAVA.
Jezik Python je dokaz, da se lahko pri MVC sistemu osredotočimo na samo aplikacijo,
medtem ko določena dela naredi sistem sam namesto nas.
Zaradi sistema ločenih datotek ne pride do nepreglednosti ali mešanja kode. Vse funkcije za
dinamično stran so lahko napisane v enem dokumentu, HTML vsebina v drugem dokumentu
in povezave med njimi v tretjem.
Predhodno ni potrebno poznati jezika Python, če želimo z njim pisati dinamične spletne
strani, saj se skozi delo naučimo preproste sintakse in delovanja. Jezik Python je primeren za
večje in manjše projekte, vendar bi zaradi težavne namestitve in iskanja virov za učenje
jezika hitreje naredili preprost projekt s pomočjo kakšnega drugega skriptnega jezika. Jezik
ocenjujejo kot primeren začetnikom. Za sam jezik lahko oceno potrdimo, med tem ko
uporaba jezika za ustvarjanje spletnih strani za začetnike ni primerna (prav tako težavna
namestitev in premalo virov za učenje). Zahtevna namestitev lahko vzame precej časa.
Ustvarjanje spletnih strani ni tako zamudno, ko je sistem nameščen in vse deluje. Za to
poskrbi veliko število bližnjic in MVC sistem.
5.5 Uporaba jezika Ruby
Namestitev je prijazna za uporabnike operacijskega sistema Microsoft Windows, saj obstaja
namestitvena datoteka, ki vsebuje jezik Ruby, framework Rails, podatkovno bazo MySQL
in vse dodatke. Namestitev je enostavna, saj poteka preko uporabniškega vmesnika.
Namestitev na drugih sistemih, kot recimo na operacijskem sistemu Mac OS, je malo daljša,
saj je potrebno vse komponente namestiti ročno z uporabo ukaznega poziva.
Vse dogajanje in upravljanje jezika ter frameworka je osredotočeno na ukazni poziv. Ukazi
za upravljanje so povsem enostavni in jasni, kar je prijazno začetnikom, ki uporabe
ukaznega poziva niso vešči.
Jezik deluje po sistemu MVC. Ko začnemo z novim projektom, nam frameworka vtomatsko
ustvari mape in datoteke, ki so sestavni del naše aplikacije. Map in različnih datotek, ki jih
sistem ustvari, je presenetljivo dosti.
Primerjava strežniških skriptnih jezikov
40
Med pomembne komponente in datoteke spadajo "kontrolerji", ki jim je namenjena tudi
posebna mapa, kamor jih shranjujemo. V "kontroler" datoteke lahko definiramo različne
funkcije naše spletne strani.
Slika 5.11: Primer funkcije v "kontrolerju", ki izpiše trenutni čas.
Te funkcije povežemo s datotekami "views" oziroma z mapo, kjer se nahajajo dokumenti s
HTML kodo (HTML predloge). Pomemben del so tudi modeli, ki upravljajo s podatki iz
podatkovne baze. Modele si lahko razlagamo kot "gate keeperje" med podatki in
kontrolerjem [36].
Posebna je povezava modelov s podatkovno bazo. Čeprav lahko ustvarimo model in tabelo v
podatkovni bazi posebej, nam jezik ponuja bližnjico. Ko naredimo model, nam sistem
avtomatsko naredi enako tabelo v naši podatkovni bazi. Modelu dodamo "kontroler" in
"view", nato pa s pomočjo posebnega ukaza Ruby ustvari spletno stran. Omenjena spletna
stran je osnovnega izgleda, ponuja pa izpis iz podatkovne baze. S tremi ukazi smo naredili
spletno stran z izpisom podatkov iz baze in možnostjo urejanja le-teh.
Tudi tukaj bi lahko vse naredili ročno, vendar je Ruby zasnovan tako, da nam pri tem
pomaga [36].
Posebni so tudi HTML dokumenti, ki imajo končnico html.erb, kar pomeni, da lahko
vključujejo Ruby kodo. Predstavljajo grafične predloge in priporočljivo je, da vsebujejo čim
manj Ruby kode, da ne pride do nepreglednosti.
Slika 5.12: Primer vstaljanja Ruby kode v HTML.erb dokumente.
Sintaksa jezika je v primerjavi z ostalimi jeziki precej enostavna. Podobna je Pythonu.
<p>primer vstavljanja ruby kode v HTML</p>
<% 3.times do%>
Zdravo! <br />
<% end %>
class SayController < ApplicationController
def hello
@time = Time.now
end end
Primerjava strežniških skriptnih jezikov
41
Funkcije, napisane z jezikom Ruby, vsebujejo manj kode kot pri ostalih jezikih. Ruby
ponuja dosti bližnjic, kar je manj naporno in pridobimo čas. Zaradi bližnjic se lahko
posvetimo samemu delovanju aplikacije in nam ni treba skrbeti, kako bomo določene stvari
implementirali (primer povezave na podatkovno bazo). Sistem MVC poskrbi za ločevanje
različnih delov strani. Kljub vsemu sam sistem na začetku naredi kopico različnih datotek,
kar lahko deluje nepregledno. Predhodno znanje jezika Ruby ni potrebno. Skozi učenje
jezika ustvarjanja spletnih strani se naučimo preproste sintakse in delovanja. Jezik Ruby je
primeren tako za večje kot manjše projekte.
Za izdelavo željene strani smo skupaj z namestitvijo potrebovali zelo malo časa. Za to so
poskrbele bližnjice in enostavnost jezika.
Primerjava strežniških skriptnih jezikov
42
6 PRIMERJALNA TABELA STREŽNIŠKIH SKRIPTNIH
JEZIKOV
Na podlagi teoretičnega ozadja jezikov in praktične uporabe smo naredili primerjalno tabelo
vseh petih jezikov.
Tabela 1: Primerjalna tabela
PHP
JAVA
ASP.NET
PYTHON
RUBY
Jezik namenjen samo
dinamičnim spletnim
stranem
DA
NE
DA
NE
NE
Izvor jezika
Pear, C,
JAVA
C, C++
C#,
VisualBasic
/
C
MVC
NE
NE
OPCIJSKO
DA
DA
Odprta koda
DA
DA
NE
DA
DA
Podpodročje ali
framework jezika, ki
se ukvarja s spletnimi
stranmi
/
JavaServer
pages (JSP)
/ Framework
Django in
ostali
Framework
Rails
Strežnik
Apache
Apache
Tomcat
IIS2
Apache (z
dodatkom)
Apache (z
dodatkom)
Delovanje strežnika na
operacijskih sistemih
Vsi
Vsi
Samo
Microsoft
Windows
Vsi
Vsi
Podatkovne
baze
Privzet sistem
podatkovne baze
MySQL
HSQLDB
SQL Server
SQLite
SQLite
Možnost povezave na
MySQL
DA
DA (potreben
vtičnik)
DA (potreben
vtičnik)
DA (potreben
vtičnik)
DA (potreben
vtičnik)
Primerjava strežniških skriptnih jezikov
43
Kompatibilnost z
ostalimi sistemi
podatkovnih baz
DA
DA
DA
DA
DA
Rezultati
testiranj
Težavnost namestitve*
1
2
1
2
1
Potrebno predznanje*
NE
DA (JAVA)
NE
NE
NE
Koda,
bližnjice
Vse moramo
napisati sami.
Vse moramo
napisati sami.
Možnost
avtomatskega
generiranja kode
Obstajajo
bližnjice.
Obstajajo
bližnjice.
IDE
NE
DA
DA
NE
NE
Čas potreben za
enostavno spletno
stran*
2
2
1
1
1
Podpora pri učenju in
pomoč*
Odlična
Slaba
Dobra
Slaba
Dobra
Primernost za
začetnika
DA
NE
DA
NE
DA
Legenda
Težavnost namestitve – ocenjuje, kako zahtevna je celotna namestitev jezika, strežnika in
dodatnih komponent, če so te potrebne.
1- Namestitev je lažja, saj poteka z uporabo prijaznega uporabniškega vmesnika.
2- Namestitev je težja, saj poteka ročno z uporabo ukaznega poziva.
Potrebno predznanje - ocenjuje, če je potrebno kakšno predznanje za ustvarjanje spletnih
strani s pomočjo skriptnega jezika. Ocena izhaja iz testiranja jezikov, kjer smo lahko videli,
da se je možno nekatere jezike naučiti sproti (predznanje ni bilo potrebno), medtem ko pri
drugih igra predznanje pomembno vlogo.
DA - potrebno je predznanje drugega jezika, saj je sam skriptni jezik premalo za učinkovito
ustvarjanje spletnih strani.
NE - predznanje ni potrebno, saj se sintakse in delovanja naučimo v poteku dela.
Primerjava strežniških skriptnih jezikov
44
Čas, potreben za enostavno spletno stran - ocenjuje čas, ki smo ga potrebovali, da smo s
pomočjo skriptnega jezika ustvarili enostavno spletno stran (stran z delujočo povezavo na
podatkovno bazo). Govorimo o poteklem času, ko smo spletne strani s skriptnimi jeziki
ustvarjali prvič (z učenjem).
1. Delujočo spletno stran smo v primerjavi z ostalimi jeziki ustvarili zelo hitro, saj sam jezik
ponuja dosti bližnjic in poskrbi za avtomatizacijo določenih stvari (povezava na podatkovno
bazo ...).
2. Za delujočo spletno stran smo porabili več časa, saj jeziki ne ponujajo določenih bližnjic in
je potrebno vse napisati ročno.
Podpora pri učenju in pomoč - podpora za učenje je ocenjena na podlagi števila knjig in
ostalih virov, ki so uporabniku v pomoč pri začetnem kot nadaljnjem programiranju s
pomočjo skriptnega jezika. Knjige smo iskali v največji spletni knjigarni Amazon.com.
Poleg knjig med vire sodi tudi podpora na uradni spletni strani jezika in nasploh različni viri
na internetu, ki jih je bilo možno najti, če smo jih potrebovali.
- Odlična ocena pomeni, da za podporo obstaja veliko število različnih knjig (več kot
100), da uradna spletna stran ponuja veliko informacij v zvezi z jezikom in da zraven
naštetega obstajajo še različne druge strani, ki so nam lahko v pomoč (strani,
namenjene učenju, veliko število video posnetkov za učenje ...).
- Dobra ocena pomeni, da za podporo obstaja povprečno število različnih knjig (v
našem primeru med 30 in 70), ki so nam lahko v pomoč. Prav tako lahko najdemo
dosti informacij na uradni spletni strani (žal ne vseh) in drugje po internetu (video
vsebin in dodatnih strani je manj, kot pri oceni odlično).
- Slaba ocena pomeni, da za podporo trenutno obstaja zelo malo različnih knjig (manj
kot 20) in prav tako virov na internetu, vključno z uradno spletno stranjo jezika.
Primernost za začetnika - to je zaključna ocena za vsak jezik, ki je podana na podlagi
rezultatov testiranja iz tabele, analize, uporabe jezika in izkušnje, ki nam jo je jezik ponudil,
saj smo se z večino tudi sami srečali prvič.
- DA - jezik bi na podlagi analize in testiranja priporočali začetnikom.
- NE - jezik je na podlagi testiranja primeren za uporabnika z določenimi
programerskimi izkušnjami.
Primerjava strežniških skriptnih jezikov
45
7 ZAKLJUČEK
V diplomski nalogi smo se podrobneje spoznali z dinamičnimi spletnimi stranmi, njihovim
delovanjem in z osnovo - strežnikovimi skriptnimi jeziki. Spoznali smo lastnosti jezikov in
njihovo delovanje. Pri spoznavanju jezikov smo analizirali literaturo, ki nam je bila na voljo.
Pri jezikih Python in JAVA smo pri analizi naleteli na težavo, saj sta v primerjavi z ostalimi
jeziki ponujala najmanj literature.
Vsakega izmed njih smo preizkusili na praktičnih primerih, kjer smo s pomočjo vsakega
izmed njih ustvarili preprosto dinamično spletno stran. Vsak jezik je bilo potrebno namestiti
skupaj z vsemi komponentami (če so te bile potrebne za delovanje), da smo lahko pričeli z
delom. Pot do željenega rezultata je bila pri vsakem jeziku drugačna. Pri nekaterih jezikih
smo do rezultata prišli zelo hitro in z malo truda, medtem ko je bilo pri drugih potrebnega
več dela. Vsak jezik nudi svoj način ustvarjanja spletnih strani, zato smo se morali naučiti
sintakse in delovanja za vsak jezik posebej. Ugotovili smo, da pri nobenem jeziku, razen pri
jeziku JAVA, ni bilo potrebnega predznanja (zaradi pomanjkanja predznanja je bilo delo
dodatno težje). Sintakse in načina pisanja strani smo se učili sproti med delom. Med delom
smo naleteli na nekaj problemov. Problemi so se pojavljali pri namestitvi jezikov, ki jih je
bilo potrebno nameščati z uporabo ukaznega poziva. Pri nekaterih jezikih je bila
problematična vzpostavitev povezave na podatkovno bazo MySQL, saj so potrebovali
dodatne vtičnike, katerih namestitev prav tako ni bila enostavna.
Sedaj je odvisno od uporabnika, za kateri jezik se bo odločil in kateremu bo prišel do dna.
Dokazali smo, da začetki niso težki. S pomočjo tabele, ki smo jo naredili, predvidevamo, da
bi uporabniku služila pri lažji izbiri pravilnega jezika za njegov projekt. Jeziki so si zelo
različni. Vsak jezik ima svoje pozitivne in negativne strani, do željenega cilja pa lahko
pridemo z vsakim na tak ali drugačen način.
Primerjava strežniških skriptnih jezikov
46
8 VIRI IN LITERATURA
[1] Static website, dostopno na: http://www.techterms.com/definition/staticwebsite, [27. 3.
2012].
[2] J. Murach, Murach's Java servlets and JSP 2nd Edition, USA: Mike Murach&
Associates, 2008.
[3] What is static website, dostopno na:
http://www.roseindia.net/services/webdesigning/corporatewebsitedesign/What-is-Static-
Website.shtml, [28. 3. 2012].
[4] Static Vs. dynamic websites, dostopno na: http://www.edinteractive.co.uk/article/?id=4,
[28. 3. 2012].
[5] L. Welling, PHP and MySQL Web Developement Fourth Edition, USA: Sams, 2009
[6] M. Štrancar, PHP in MySQL na spletnem strežniku Apache, Ljubljana: Založba
Pasadena, 2000.
[7] Budja, B. Skriptni jeziki. dostopno na:
http://www.s-sers.mb.edus.si/gradiva/w3/javascript/skript.html, [30. 3. 2012].
[8] Podatkovna baza, dostopno na:
http://164.8.132.54/RIL_VS/sedmo.html, [29. 3. 2012].
[9] PHP Tutorial - Databases in PHP, dostopno na:
http://www.htmlgoodies.com/beyond/php/article.php/3511346/PHP-Tutorial---Databases-in-
PHP-An-Introduction.htm, [13. 4. 2012].
Primerjava strežniških skriptnih jezikov
47
[10] Database management system, dostopno na:
dostohttp://www.webopedia.com/TERM/D/database_management_system_DBMS.html, [9.
4. 2012].
[11] Popular database Management Systems Overview, dostopno na:
http://dbconvert.com/overview.php, [9. 4. 2012].
[12] Introduction to Internet information services 7, dostopno na:
http://www.windowsnetworking.com/articles_tutorials/Introduction-Internet-Information-
Services.html, [13. 4. 2012].
[13] C. Carneiro, Beginning Rails 3, USA: Apress, 2010.
[14] Stump, J. Understanding MVC in PHP, dostopno na:
http://oreilly.com/php/archive/mvc-intro.html, [14. 4. 2012].
[15] Vrste programskih jezikov, dostono na: http://colos1.fri.uni-
lj.si/ERI/INFORMATIKA/PROGRAMIRANJE/vrste_progJezikov_prevajanje_tolmacenje.
html, [11. 5. 2012].
[16] W3Tech, dostopno na: http://w3techs.com/, [12. 4. 2012].
[17] PHP usage trends, dostopno na: http://trends.builtwith.com/framework/PHP, [9. 4.
2012].
[18] Kaj je odprtokodna programska oprema?, dostopno na:
http://www.coks.si/index.php5/Vse_o_Odprti_kodi, [2. 4. 2012].
[19] PHP Dowload site, dostopno na:
http://www.php.net/downloads.php, [2. 4. 2012].
[20] K. Cox, ASP.NET 3.5 for Dummies, Canada: Wiley Publishing, 2008
Primerjava strežniških skriptnih jezikov
48
[21] ASP.NET Tutorials, dostopno na: http://www.w3schools.com/aspnet/default.asp, [13.
4. 2012].
[22] ASP History&Information, dostopno na: http://www.xmluk.org/asp-history-
information.htm, [10. 4. 2012].
[23] Microsoft SQL Server vs. MySQL, dostopno na:
http://www.mssqltips.com/sqlservertip/1920/microsoft-sql-server-vs-mysql/, [12. 4. 2012].
[24] W.B. Sanders, ASP.NET 3.5 A Beginner's guide, USA: Mc Graw Hill, 2009.
[25] V. Chopra, Beginning JavaServer Pages, Canada: Wiley Publishing, 2005.
[26] What is Android?, dostopno na: http://developer.android.com/guide/basics/what-is-
android.html, [17. 4. 2012].
[27] Web Developement with JavaServer Pages Second Edition, UK: Manning, 2002.
[28] H. Bergsten, JavaServer Pages, USA: O'Reilly, 2000.
[29] JavaServer Pages Techology, dostopno na:
http://www.oracle.com/technetwork/java/javaee/jsp/index.html, [8. 4. 2012].
[30] Kaj je Servlets?, dostopno na:
http://www.presentia.si/baza-znanja-helpdesk/2008/kaj-je-servlets/, [6. 4. 2012].
[31] M. Dawson, Python Programming for the Absolute Beginner, USA: Course
Technology, 2003.
[32] Python programming language, dostopno na:
http://www.python.org/, [7. 4. 2012].
Primerjava strežniških skriptnih jezikov
49
[33] Web Frameworks for Python, dostopno na:
http://wiki.python.org/moin/WebFrameworks, [10. 4. 2012].
[34] Meet Django, dostopno na: https://www.djangoproject.com/, [3. 4. 2012].
[35] A. Holovaty, The Definitive Guide to Django, USA: Apress, 2008.
[36] S. Ruby, Agile Web Developement with Rails Second Edition, USA: Pragmatic
Bookshelf, 2006.
[37] The advantages of static web pages, dostopno na:
http://www.ehow.com/list_6498730_advantages-static-pages.html, [11. 5. 2012].
[38] Deploying ruby on rails is easy, dostopno na: http://rubyonrails.org/deploy, [13. 4.
2012].
[39] Spletno gostovanje za telebane, dostopno na: http://www.neo-serv.net/blog/tag/kaj-je-
streznik/, [11. 5. 2012].
[40] Strežnik - server, dostopno na: http://www.jepa.si/slovarcek/naprave/73-streznik-server,
[11. 5. 2012].
[41] SQL tutorial, dostopno na: http://www.w3schools.com/sql/default.asp, [11. 5. 2012].
[42] A. Sevčnikar, Podatkovne baze, dostopno na:
lpt.unimb.si/lpt/student/im3/files/uvod_v_pb.pdf, [12. 5. 2012].
[43] Usage statistics and market share of PHP, dostopno na:
http://w3techs.com/technologies/details/pl-php/all/all, [12. 5. 2012].
[44] The 17 most-visited sites ob 2011, dostopno na:
http://www.huffingtonpost.com/2011/06/24/most-visited-sites-
2011_n_883756.html#s297574&title=17__Youkucom, [12. 5. 2012].
Primerjava strežniških skriptnih jezikov
50
[45] Usage statistics and market share of ASP.NET, dostopno na:
http://w3techs.com/technologies/details/pl-aspnet/all/all, [12. 5. 2012].
[46] Usage statistics and market share of JAVA, dostopno na:
http://w3techs.com/technologies/details/pl-java/all/all, [12. 5. 2012].
[47] TIOBE Programming community index of May 2012, dostopno na:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html, [12. 5. 2012].
[48] TIOBE company, dostopno na:
http://www.tiobe.com/index.php/content/company/Home.html, [12. 5. 2012].
Primerjava strežniških skriptnih jezikov
51
9 PRILOGE
9.1 CD z datotekami testnih spletnih strani
Diplomski nalogi je priložen CD, na katerem se nahajajo datoteke spletnih strani, ki smo jih
naredili za testiranje jezikov.
Primerjava strežniških skriptnih jezikov
52
Primerjava strežniških skriptnih jezikov
53
Primerjava strežniških skriptnih jezikov
54