JS

JavaScript on yksi maailman eniten käytetyistä ohjelmointikielistä. Monet merkittävistä verkkopalveluista on rakennettu sen avulla, vaikka samassa projektissa olisi käytetty myös muita työkaluja.

JavaScript on yleisnimi monelle kielelle

Ensimmäinen versio JavaScriptistä julkaistiin vuonna 1995. Se oli tarkoitettu sivujen vuorovaikutteisuuden parantamiseen (esimerkiksi lomakkeiden tarkastamisessa selaimessa jo ennen niiden lähetystä palvelimelle). Kieli on vuosien varrella uudistunut monelta osin. Kielen standardoinnista vastaa Ecma International, joka on jo vuodesta 1961 alkaen edistänyt tieto- ja viestintäjärjestelmien standardointia.

JavaScriptin rakenne kehittyy koko ajan. Standardoinnista vastaa työryhmä, joka julkaisee keskimäärin vuosittain uuden version ohjelmointikielen kieliopista. Vuoden 2017 versio tunnetaan nimellä ECMA-262 (ECMAScript® 2017 Language Specification).

Selaintuki

Vaikka standardeissa on määritelty kielen rakenteet ja ominaisuudet, kaikki selaimet ja laitteet eivät tue kaikkia kielen ominaisuuksia. Eri selainten kehittäjillä on eri prioriteetit siitä että mitä asioita selainten valmistajat tahtovat tukea ensiksi.

Erilaiset työkalut ja verkkopalvelut suoraan selaimissa olevien toimintojen vertailemisessa. Can I use näyttää eri selainten eroavaisuudet taulukkomuodossa. Siitä on apua sekä projektien suunnittelijoille kuin myös palvelujen teknisille toteuttajille. Työkalut kehittynyt nopeaa vauhtia, joten mahdollisuudet tehdä uusia asioita paranevat jatkuvasti.

ECMAScript -standardin lisäksi selaimissa on monia muita rajapintoja jotka mahdollistavat monipuolisempien palveluiden kehittämisen. The World Wide Web Consortium (W3C) vastaa osan niistä standardoinnista. Selainvalmistajat ovat myös aktiivisesti kehittämässä uusia tekniikoita ja moni uusista työkaluista ovat jo testikäytössä ennen uusien standardien valmistumista.

Selaimien toimintatavoissa on eroja. Sen takia on kehitetty erilaisia työkaluja (kuten Babel ja TypeScript) jotka mahdollistavat JavaScriptin uusien ominaisuuksien käyttämisen myös osassa vanhemmista selaimista. Kielen kehittyminen on tuonut uusia mahdollisuuksia tehdä nopeampia ja paremmin toimivia ohjelmia ja verkkopalveluita.

Nykyään merkittävä osa JavaScript-pohjaisista työkaluista levitetään npm -nimisen palvelun kautta. Se mahdollistaa uusien ohjelmaversioiden nopean levityksen niitä tarvitseville käyttäjille.

Haasteet

JavaScript-pohjaisilla työkaluilla on rakennettu asioita yksittäisestä lomakkeen tarkastajasta aina mobiilisovelluksiin ja laajoihin palvelinpuolen järjestelmiin saakka. Kieltä voi nykyään käyttää myös joidenkin IoT -laitteiden ja robottien ohjaamiseen.

Laajat käyttömahdollisuudet tuovat mukanaan myös haasteita. Vaikka työkalut mahdollistavat paljon asioita, tulee entistä tärkeämmäksi miettiä että mitä oikeasti ollaan tekemässä. Merkittävä haaste on kolmannen osapuolen työkalujen jatkuva kehittyminen ja muuttuminen. Projektien suunnitteluvaiheessa kannattaa miettiä onko pitkään käytössä olevien järjestelmien ylläpitoon käytössä riittävästi aikaa. Maailman muuttumista on vaikea ennakoida, mutta siihen voi paremmin varautua miettimällä hyviä työtapoja erilaisiin tilanteisiin.

Usein käy myös niin että muiden kehittämien työkalujen kehitys hidastuu tai loppuu, syystä tai toisesta. Avoimen lähdekoodin maailmassa on mahdollista osallistua alkuperäisen projektin jatkokehittämiseen. Moni on antanut työkalunsa avoimesti muille käyttöön koska tietää miten paljon on itse hyötynyt muiden tekemistä apuvälineistä. Avoimuus teknologian kehityksessä mahdollistaa yhteisöllisen kehittämisen, jossa yleiskäyttöisen tekniikan kehitystä voidaan tehdä yhdessä.

Merkittävä motivaattori avoimeen kehitykseen on ymmärrys siitä että asiakas yleensä maksaa pääosin siitä että mitä palveluilla saadaan aikaan, ei itse yksittäisen työkalun lähdekoodista. Moni apuväline on tehty sen takia alusta asti avoimesti, koska yritykset tietävät että teknologian maailma muuttuu jatkuvasti niin nopeasti, että kukaan yritys ei voi olla kaikessa ajantasalla.

Yhteisön merkitys JavaScript-kehityksessä

Yhteisöjen merkitys on suuri sekä JavaScript-työkalujen kehittymisessä että niiden oppimisessa. Erilaiset tapahtumat ja verkkopalvelut auttavat ihmisiä oppimaan uusia taitoja. Yksi esimerkki yhteisöllisestä oppimateriaalien luomisesta on NodeSchool, jossa sadat ihmiset ovat luoneet kokoelman askel askeleelta eteneviä harjoituksia. Niiden avulla moni on lähivuosina kehittänyt osaamistaan uusiin asioihin.

Merkittävä osa avoimen lähdekoodin kehityksestä tapahtuu keskitetyissä verkkopalveluissa. Esimerkkejä yleisimmistä ovat mm. GitHub, GitLab ja Bitbucket. Monella näistä ulkomaisista palveluntarjoajista on myös maksullisia palveluja, mutta pääosa ominaisuuksista on vapaasti käytettävissä avoimen lähdekoodin projekteille. Samalla palvelut mahdollistavat hyvät apuvälineet uusien asioiden tekemiseen.

Avoin lähdekoodi yritysten näkökulmasta

Viestintä on merkittävä osa ohjelmistoprojektien toteutusta. Selkeän viestinnän merkitys korostuu hajautetussa sovelluskehityksessä, jossa moni sovelluksen kehittäjistä ja käyttäjistä on eri puolilla maailmaa. Verkkopalvelut (kuten GitHub) mahdollistavat sekä mahdollisten teknisten puutteiden raportoimisen JavaScript-kirjastojen alkuperäisille kehittäjille, sekä potentiaalisten korjausten tarjoamisen heille. Muiden tekemiä JavaScript-kirjastoja käyttävät yritykset voivat edistää itselleen bisnes-kriittisten työkalujen kehitystä sijoittamalla niiden jatkokehitykseen aikaa ja rahaa.

Merkittävä osa maailmassa olevasta avoimen lähdekoodin kehityksestä tapahtuu yritysten palkkaamien kehittäjien toimesta. Monessa tapauksessa yritykset ovat todenneet että yksittäisen yrityksen resurssit eivät riitä kaikkeen, joten yritysten teknologiavalintoja tukevien työkalujen kehitystä kannattaa tehdä avoimemmin. Merkittävä osa Internetistä pyörii avoimen lähdekoodin varassa, ja sen merkitys kasvaa jatkuvasti myös yritysten sisäisissä työkaluissa ja palveluissa.

Ei vastaus kaikkeen

Avoin lähdekoodi ei ole vastaus kaikkeen, mutta hyvin käytettynä se auttaa yritysten uudistumista. Tärkeintä on ymmärtää että mitkä toiminnot yrityksessä ovat liiketoiminnan kannalta keskeisimpiä. Ohjelmistojen pitkän ajan merkitys yrityksissä on usein suurta, mutta niiden elinkaari-ajattelua (Lifecycle management) ei usein ajatella riittävästi.

Kyse on isolta osin myös lähdekoodin omistajuudesta. Erilaiset lisenssit antavat erilaisia oikeuksia avoimen lähdekoodin käyttöön, mutta asettavat samalla erilaisia reunaehtoja sille miten sitä saa käyttää. Usein vaatimuksena on kolmannen osapuolen työkalujen kehittäjän nimen sisällyttäminen osaksi tuotteen tai palvelun dokumentaatiota.

Avoin lähdekoodi toiminnan tukena

Julkishallinto hyödyntää avointa lähdekoodia monella tavalla. Sitä on käytössä niin verkkojen ja palvelinten ylläpidossa, kuin merkittävänä osana erilaisia sovelluksia. Suomessa julkishallinto on myös päättänyt suosia avoimuutta uusien sovellusten kehityksessä. Esimerkkejä avoimena lähdekoodina julkaistuista julkishallinnon palveluista löytyy jo monia. Myös oppilaitokset ovat käyttäneet avointa lähdekoodia osana toimintansa mahdollistamista.

Avoin lähdekoodi on veronmaksajien ja julkishallinnon yhteinen etu, sillä se mahdollistaa rajallisten resurssien hyödyntämisen monipuolisemmin. Avoimuus vähentää myös riskiä joutumisesta yhden järjestelmätoimittajan varaan, koska hyvin avattua työkalua voi kehittää useampi kuin yksi yritys. Se helpottaa myös toimintaa monitoimittajaympäristössä, joissa osia palveluista ja niiden ominaisuuksista ostetaan eri toteuttajilta.

JavaScript-kehitys tarjoajayritykset

JavaScript-kehitystä tarjoavat yritykset ite wikissä

Aiheesta muualla

Kirjoittaja(t):
Daniel Schildt, Front-end developer