Pakko se on todeta: nykyään JavaScriptissäkin täytyy elää kehitysympäristön ja kääntäjien kanssa. NodeJS on ollut aika hirmuinen muutos JS-maailmassa ja npm:stä on tullut aikamoinen standardikeino hallita asioita. Lisäksi täytyy asetella kääntäjiä luomaan sekä kehitys- että tuotantoversioita koodista, koska erillisiä tiedostoja nyt vaan on järkevää yhdistellä toisiinsa ja tuotannon puolella ne kannattaa tarjoilla minifioituna.
JavaScriptin "kääntämisen" pakko ei tule kuitenkaan pelkästään siitä, että tiedostot pitää saada yhteen ja minifioitua. Pakkoa syntyy myös siitä, että kehitys on kehittynyt ja ECMAScript6 aka ES2015 on lyöty lukkoon. Ja nykyään on tarjolla hieno työkalu nimeltä Babel, joka osaa vääntää tuota uutta standardien mukaista koodia ES5-yhteensopivaan muotoon. Nyt jonkin aikaa ES2015-koodia kirjoittaneena se tekee asioista paljon mukavempia: syntaksi on lyhempää ja siinä on vähemmän sokeritäytettä, esim. monin paikoin uusi dokumentaatio kannustaa olemaan käyttämättä puolipisteitä jokaisen rivin lopussa. Hyvä paikka tutustua uutuuksiin on es6-features.org
Merkittäviä seikkoja JavaScriptin maailmassa on myös sen laajuus: enää ei olla rajoittuneita vain selaimeen, vaan myös palvelinpuolella on kuhinaa. Node ja IO juuri yhdistyivät perustaen Node Foundationin hallinnoimaan projektia ja varmistamaan sen pitkän elinkaaren ja vakauden. Kaikki JS-kehittäjät eivät siis enää edes ole selaineksperttejä. Tämä jos mikä avartaa ja monipuolistaa kenttää. Ja on omiaan sekoittamaan asioita vähemmän seuraavan päätä varsinkin jos yrittää jollain naiivilla googlehaulla saada jotain selkoa menosta.
Mutta tässä on jotain aatoksia jäävuoren huipusta näin kesän 2015 meiningeillä. Vastaisuudessa iso asia on ES2015-tuen saapuminen selaimiin. Joitakin ominaisuuksia on jo ja muistaakseni Firefoxiin on tällä hetkellä toteutettu standardia eniten. Tietty tuki täytyy täräyttää erikseen päälle, koska kokeellisiahan ne on.
Mitenkäs teillä on maailmanmenon seurannan laita? Jäikö minulta huomioimatta tässä jotain, joka olisi olennaista todeta?
Npm:n ohella Bower on mielestäni tärkeä paketinhallinta selaindevaajalle. Sillä voi asentaa ja päivittää js-kirjastoja kuten npm:lläkin, paitsi että kyse on "tavallisista" selaimessa käytettävistä kirjastoista eikä Node-moduuleista. Bowerista on hyötyä vaikkei omalla projektilla olisi mitään tekemistä Node.js:n kanssa.
Chromesta julkaistiin juuri uusi beta (v44), joka luultavasti toi es6-tuen Firefoxin kanssa samalle tasolle.
Puolipisteitä käytän javascriptiä kirjoittaessa jatkossakin.
Chrome on verrattain kaukana Firefoxin takana: Firefoxissa on pian toteutettu ~70% ES6:sta kun Chromen tulevat versiot hituuttelevat vasta ~50% rajaa. Yleisellä tasolla Chrome on muutenkin tällä hetkellä ylisuosiossa / yliarvostettu ja tämä näkyy ikävästi mm. -webkit-prefixien yliviljelyssä ja muiden selaimien testaamisen unohtamisessa. Mutta ei siitä sen enempää. Selaimet on selaimia.
Bower taas on tässä ihan juuri saanut hieman kritiikkiä osakseen. Itse en ole boweria käyttänyt, joten en osaa sanoa juuta tahi jaata. npm on palvellut riittävästi.
Kehittämistyön ja julkaisun puolella haluaisin pian saada aikaiseksi kokeilla Brunchia. En ole kauheasti lämmennyt gruntille ja gulpille lähinnä siitä syystä, että niiden konffaamiset näyttäisivät vaativan hirveästi vaivaa. Brunchin conffaus näyttää päällisin puolin helpolta ja selkeältä. Sen ehkä saa jo kivasti pyörimään jokusessa tunnissa. Jos sitä vaikka jaksaisi päivittää yhden projektin käyttämään tuota.
Onko lopullinen speksi jossain saatavilla? Nopealla haulla löytyi vain luonnoksia.
Merri kirjoitti:
Nyt jonkin aikaa ES2015-koodia kirjoittaneena se tekee asioista paljon mukavempia: syntaksi on lyhempää ja siinä on vähemmän sokeritäytettä, esim. monin paikoin uusi dokumentaatio kannustaa olemaan käyttämättä puolipisteitä
jokaisen rivin lopussa.
Kielessä on tosiaan paljon hyviä parannuksia.
Äkkiseltään minusta näyttää kuitenkin siltä, että puolipisteiden suhteen samat gotchat ja monimutkaiset säännöt ovat tallella. Missasinko jotain, vai onko niiden poisjättäminen edelleen pelkkä muotikysymys?
Lopullistaminen on tavoitteena tässä kuussa. Babelin sivuilla on hyvää aloitusinfoa ja linkki viimeisimpään versioon draftista:
Babel - Learn ES2015 kirjoitti:
ECMAScript 6 is the upcoming version of the ECMAScript standard. This standard is targeting ratification in June 2015. ES2015 is a significant update to the language, and the first update to the language since ES5 was standardized in 2009. Implementation of these features in major JavaScript engines is underway now.
Puolipisteet ovat edelleen muotikysymys. ES6-projektit näyttäisivät kuitenkin usein olevan puolipisteettömiä. Koodin kompaktius puoltaa siirtymää siistimpään malliin. Sitten on toki vaikutteet CoffeeScriptistä, jolla on ollut oma vahva skenensä. CoffeeScript on kuitenkin nyt hiljoksiin kuolemassa kun ES2015 on niin selvästi tulossa. Mikä on hyvä, sillä en ainakaan itse pidä CoffeeScriptin syntaksista.
Merri kirjoitti:
Bower taas on tässä ihan juuri saanut hieman kritiikkiä osakseen. Itse en ole boweria käyttänyt, joten en osaa sanoa juuta tahi jaata. npm on palvellut riittävästi.
Melko heikkoa kritiikkiä tosin. Lähinnä "mä en tykkää" -mielipiteitä. Sitä paitsi kaikki tuo kritiikki on suoraan sovellettavissa myös npm:ään.
"Npm:n dependency-malli ei ole aina paras."
"Npm on hyödytön, jos sen keskuspalvelin on nurin."
Aihe on jo aika vanha, joten et voi enää vastata siihen.