• Ei tuloksia

JavaScriptiin liittyvät käsitteet

In document JavaScript : ennen ja nyt (sivua 17-20)

TAULUKKO 6 Sovellusten kehitykseen kulunut kokonaisaika ja ohjelmakoodin

2.3 JavaScriptiin liittyvät käsitteet

JavaScript on monipuolinen ohjelmointikieli ja sen toimintaan liittyy useita eri käsitteitä. Käsitteiden ymmärtäminen auttaa ymmärtämään paremmin kielen käyttötarkoitusta ja sen toimintatapaa. Alaluvun tarkoitus on esitellä eri käsit-teitä ja niiden yhteyttä JavaScriptiin.

2.3.1 Asiakaspää

JavaScript on asiakaspään (Client-side) ohjelmointikieli, mikä tarkoittaa, että so-vellus ajetaan web-selaimessa. Asiakaspään ohjelmointikieltä kutsutaan myös front end -ohjelmointikieleksi. Asiakaspään ohjelmointikieli antaa välittömästi vastauksen käyttäjän toimiin ja muuttaa sivun ulkoasua ilman ylimääräistä si-vun latausta. Asiakaspään ohjelmakoodi mahdollistaa esimerkiksi dynaamisen web-sivun päivittämisen, animaatiot, lomakkeiden tarkistukset, sisällön pois-tamisen tai liikutpois-tamisen sekä muita vuorovaikutteisia toiminnallisuuksia (Swiech & Dinda, 2013). JavaScript ei ole ainoa asiakaspään ohjelmointikieli.

JavaScriptin lisäksi on olemassa esimerkiksi Java-sovelma. (McFarland, 2011.;

Wright, 2012.).

Asiakaspäässä ajettavat ohjelmat vähentävät palvelimen kuormitusta ja luovat paremman käyttäjäkokemuksen (Hales, 2012). Asiakaspäässä voidaan käyttää apuna myös CDN:ää (Content Delivery Network). CDN on tarkoitettu staattisen eli muuttumattoman sisällön varastoksi. Sen etu verrattuna tavallisiin palvelimiin ovat noin 20 % lyhyemmät latausajat, jotka perustuvat fyysisesti lähelle sijoitettuihin palvelimiin. Selaimen pyytäessä esimerkiksi

JavaScript-kirjastoa CDN tarjoaa kirjaston käyttäjää lähimpänä olevalta palvelimelta, joka voi parhaassa tapauksessa sijaita samassa maassa. (MacCaw, 2011.).

Halesin (2012) mukaan asiakaspään ohjelmointikieli tarjoaa seuraavat edut verrattuna palvelinpäähän:

 paremman käyttäjäkokemuksen

 verkon kaistaleveyden käytön tarve pienenee

 siirrettävyyden (offline-käyttö).

Asiakaspään ohjelmointikieleen liittyy myös monia tietoturvariskejä ja ongel-mia. Mikkosen ja Taivalsaaren (2007) mukaan tietoturvaongelmat ovat yleisiä tällaisissa sovelluksissa, koska nykyään 100 suosituimmasta web-sivustosta maailmassa 97 käyttää JavaScriptiä. JavaScriptin tietoturvaongelmat voivat joh-tua sen heikosta tyypityksestä ja mahdollisuudesta luoda uutta ohjelmakoodia ajon aikana. Web-selaimet sallivat yleensä ajon aikana tulleet JavaScript-virheet eivätkä lopeta ohjelman suoritusta virheistä huolimatta. Selain jatkaa toimivan JavaScriptin suorittamista ja antaa viallisesta ohjelmakoodista virheen selaimen konsolityökaluun. Tämä toimintamalli johtaa hienovaraisiin ongelmiin, joita on vaikea löytää testauksen aikana. (Ocariza, Pattabiraman & Zorn, 2011.; Mikko-nen & Taivalsaari, 2007.). Tutkimuksessa ei käsitellä tämän laajemmin Java-Scriptin käytöstä aiheutuvia tietoturvaongelmia. Tietoturvan testaus ja siihen tutustuminen vaatii laajoja testitapauksia ja tutkimuksia, jotka eivät tässä tut-kimuksessa ole mahdollisia rajallisten resurssien vuoksi.

2.3.2 Palvelinpää

Palvelinpään (Server-side) ohjelmointikielellä tarkoitetaan ohjelmointikieltä, joka ajetaan palvelimella (server). Palvelin on tietokone, joka jakaa tietoja muihin tie-tokoneisiin Internetin välityksellä (TechTerms.com, 2014a). Palvelinpään ohjel-mointikieltä kutsutaan myös back end -ohjelmointikieleksi. Palvelinpään tehtävä on pitää yllä esimerkiksi tietokanta ja liiketoimintalogiikkaa eli palvelun älyk-kyyttä sekä luoda liittymä muihin järjestelmiin (Kovanen, 2013). Kovanen (2013) on listannut tyypillisimmiksi palvelinpään ohjelmointikieliksi Javan, Pythonin, PHP:n ja Ruby on Railsin. Nämä ohjelmointikielet käyttävät yleensä apunaan palvelimen tietokantoja ja voivat lähettää esimerkiksi sähköpostiviestejä ympäri maailmaa. JavaScriptiä voidaan hyödyntää nykyään myös palvelinpäässä No-de.js:n avulla.

Halesin (2012) mukaan palvelinpään ohjelmointikielet tarjoavat seuraavat edut verrattuna asiakaspäähän:

 paremman tietoturvan

 laajennettavuuden (palvelinkoneita lisäämällä voidaan kasvattaa kuor-mitusta)

 tehokkaamman tehtävien käsittelyn.

Palvelinpään ohjelmointikielien yksi ongelma on, että selain joutuu lähettämään aina HTTP-pyynnön palvelimelle. Palvelin käsittelee pyynnön ja palauttaa vas-tauksen käyttäjän selaimelle. Tällainen toimintamalli pakottaa käyttäjän odot-tamaan aina latautuvan sivun tietoja. (McFarland, 2011.).

2.3.3 Komentosarjakieli

Komentosarjakieli (Scripting language) eli skriptikielen avulla kirjoitetaan komen-tosarjoja. Komentosarjakieli tarkoittaa kaikkia kieliä, joiden avulla voidaan suo-rittaa käyttöjärjestelmällä erityyppisiä toimintoja ilman ohjelman kääntämistä.

JavaScript luokitellaan asiakaspuolen komentosarjakieliin. Kieltä käytetään muokkaamaan, käsittelemään ja automatisoimaan toimivan järjestelmän tarjo-amia palveluja (Peltomäki & Nykänen, 2006). JavaScript-sovellus suoritetaan aina selaimessa tai muussa JavaScript-tulkin sisältävässä sovelluksessa (Pelto-mäki & Nykänen, 2006). JavaScriptillä tehty ohjelma ei ole yleensä itsenäinen sovellus, eikä sillä voida luoda uutta järjestelmää (Mäkelä, 2010). Morin ja Brown (1999) ovat todenneet, että useimmat ihmiset luokittelevat tyypillisim-miksi komentosarjakieliksi seuraavat kielet: AppleScript, Unix-komentokielet, Visual Basic, JavaScript, Perl ja Tcl/Tk.

2.3.4 Tyyppijärjestelmä

Tyyppijärjestelmän (Type system) avulla määritetään, kuinka ohjelmointikieli luo-kittelee arvot ja muuttujat tyyppeihin. Ohjelmointikielet voidaan luokitella kah-teen tyyppijärjestelmään: staattiseen tai dynaamiseen. JavaScript kuuluu dynaa-misesti tyypitettyihin ohjelmointikieliin. Tyyppijärjestelmän ollessa staattinen ohjelma suorittaa tyyppien semanttisen tarkistuksen ennen ajoa, joten objektien tyypit ovat tiedossa jo käännösvaiheessa. (Meijer & Drayton, 2004.). Dynaami-sesti tyypitetyssä ohjelmakoodissa objektien tyypit voivat muuttua ajon aikana.

Esimerkiksi JavaScriptissä ei koskaan määritellä muuttujalle tyyppiä, kuten C:ssä tehdään. Tässä tapauksessa muuttujaan voi sijoittaa millaista dataa tahan-sa ja tietotyyppi voi vaihtua ajon aikana. Vahvan staattisen tyypityksen etuna on, että ohjelmointikielen kääntäjä voi tunnistaa ohjelmointivirheet jo käännösaika-na. Liian tarkat tyyppisäännöt voivat kuitenkin laskea ohjelmistokehittäjän te-hokkuutta, motivaatiota ja keskittymistä pitkällä aikavälillä. Dynaaminen tyypi-tys tarjoaa joustavuutta, mutta siinä tyyppivirheet havaitaan vasta ajon aikana.

(Loui, 2008.). Tyyppijärjestelmää valittaessa Meijer ja Drayton (2004) antavat ohjeeksi käyttää staattista tyypitystä silloin, kun se on mahdollista ja dynaamis-ta silloin, kun se on dynaamis-tarpeen.

2.3.5 HTML

HTML (Hypertext Markup Language) on W3C:n ylläpitämä hypertekstidoku-menttien merkintäkieli, jonka avulla web-sivuilla kuvataan sisällön rakennetta.

HTML:ää voidaan käyttää esimerkiksi tekstin tai mediatiedostojen, kuten kuvi-en tai äänkuvi-en esittämisessä web-sivuilla. (Kastkuvi-en, 1995.). HTML-dokumkuvi-entteihin liitetyt JavaScript-tiedostot tarjoavat tärkeän tavan luoda dynaamista vuorovai-kutusta käyttäjän kanssa (Peltomäki & Nykänen, 2006). HTML tunnetaan erityi-sesti kielenä, jonka avulla web-sivut on ohjelmoitu (Kasten, 1995).

HTML-tiedostot muodostuvat sisäkkäisistä ja perättäisistä elementeistä.

Aloitustunnisteita kutsutaan myös tageiksi (tag). Elementit muodostuvat pareista, joissa on erikseen aloitustunniste ja vinoviivalla merkitty lopetustunniste sekä niiden väliin jäävä sisältö. Elementeillä voidaan esimerkiksi merkitä sivun ot-sikko kirjoittamalla HTML-tiedostoon <title>Hello World</title>. Aloitustun-nisteeseen voi lisäksi sisältyä attribuutteja, jotka määrittävät elementin ominai-suuksia tarkemmin kuin tunnisteen nimeämä elementti. Esimerkiksi <img src=”talo.png” /> on kuva-elementti, jolla on attribuutti src, jonka arvoksi asete-taan näytettävän kuvan osoite. (Bouvier, 1995.).

HTML:stä on kehitetty myös XHTML (Extensible Hypertext Markup Langu-age), joka eroaa HTML:stä tiukemmilla muotosäännöillään. Usein kuulee puhut-tavan HTML5:stä, joka on jatkuvasti muuttuva luonnos HTML-kielen uudeksi määrittelyksi ja sen osittaisia toteutuksia. HTML5 sisältää paljon uudistuksia ja sillä viitataan nykyisin moderneihin web-tekniikoihin. (Korpela, 2011.).

In document JavaScript : ennen ja nyt (sivua 17-20)