Googlen suunnalta tulee uusi web-ohjelmointikieli. Se on virallisesti julkaistu tänään ja on vielä kehitysvaiheessa. Projektissa on mukana pari nimekästä ohjelmointikielten tutkijaa ja kehittäjää, joten Google ilmeisesti ottaa jotenkin vakavissaan tämän projektin.
En ota kantaa siihen, tarvitaanko uutta kieltä tai onko sellainen hyvä asia. Tämän uutukaisen tarkoitus olisi olla uusi ja parempi JavaScript web-sovellusten tekoon. Raportoin aiheesta vain putkalaisten iloksi, mutta tarkoitus ei ole yllyttää ketään käyttämään sitä. Saa siis katsella ym. sivulta lisää, jos kiinnostaa. Sivulla voi myös kokeilla lyhyitä ohjelmanpätkiä, jos oman ympäristön asennus ei huvita. (Tuo otsikon jee oli ehkä hieman sarkastinen, jos joku haluaa pitää kirjaa tällaisista tärkeistä asioista.)
Kieli näyttää melkon paljon JavaScriptiltä, jossa on kuitenkin mahdollista määritellä muuttujien tyypit. Se ei ole pakollista, ja tyyppivirheet ovat tämän kielen mielestä varoituksia aiheuttavia vikoja, ei varsinaisia virheitä. Lisäksi kielessä on luokkia, rajapintoja ja geneerisiä tyyppejä (se on siis hieman Javampi kuin JavaScript). Kieltä voi upottaa HTML-sivuihin, jos selain tukee sitä. Sitähän ne eivät tietenkään tee (paitsi varmaan Chrome joskus myöhemmin), joten sitä voi myös kääntää JavaScriptiksi tätä tarkoitusta varten. Lisäksi sitä olisi tarkoitus voida käyttää myös serveripuolella, tai niin tuo ym. sivu lupailee.
Lisäksi kielen kantavina ideoina on se, että sen pitäisi olla tehokkaammin suoritettavissa kuin JavaScriptin (väittävät, että se on suunniteltu virtuaalikoneessa tapahtuvat tehokkaan suorituksen kannalta), ja se, että kieli tukee erillisiä prosessin kaltaisia isolaatteja, joissa voi suorittaa koodia rinnakkaisesti ja jotka voivat kommunikoida keskenään vain viestejä lähettämällä.
Saa nähdä mitä tästä tulee. En aio kirjoitella aiheesta enempää enkä todellakaan yritä yllyttää ketään opettelemaan sitä nyt heti taikka myöhemmin. Saattaa olla, että huvikseni tutustun siihen paremmin itse, mutta tuskinpa se teitä kiinnostaa.
(JavaScriptin kehittäjä Brendan Eich kerkesi jo etukäteen haukkua tätä GScriptiksi, rinnastaen sen Microsoftin VBScriptiin. No, yksi pieni ero tulee mieleen: Dart on sentään toistaiseksi avointa lähdekoodia.)
Varmasti tuleekin olemaan tehokkaampi/nopeampi kuin muut käytössä olevat vaihtoehdot. Epäilemättä vie kuitenkin pienen ikuisuuden ennen kuin -- jos nyt ylipäätään -- tuo yleistyy mainstream selaimissa. Tosin menihän sillä JavaScriptilläkin jokunen tovi, kunnes se räjähti totaalisesti käsiin..
Mielenkiinnolla seuraan silti sivusta. Vaihtoehdot ovat loppujen lopuksi lähes aina plussaa.
Dartilla kirjotettu Hello World käännettynä JavaScriptiksi. 17259 riviä. https://gist.github.com/1277224
Jätän tämän vain tähän.
Itse asiassa Hello World käännettynä javascriptiksi 11 riviä.
Dart-kirjastot javascriptillä 17259 riviä.
CoffeeScript on (mielestäni) parempi: modernina Python/Ruby-tyylisenä erittäin mukava ja selkeä koodata vs. Dartin wanhahtava ja sekavampi tyyli.
Dartissa näyttäisi olevan ainoa voittava juttu tuo luvattu parempi suorituskyky. CoffeeScriptin suorituskyky on sama kuin Javascriptin.
JaskaP kirjoitti:
Dartissa näyttäisi olevan ainoa voittava juttu tuo luvattu parempi suorituskyky. CoffeeScriptin suorituskyky on sama kuin Javascriptin.
Samalla tavalla Dartin suorituskyky on "javascript", jos natiivin toteutuksen sijasta se käännetään ensin JS:ksi selaimessa ajettavaksi.
No katselin vähän mahdollisuuksia kokeilla kieltä käytännössä, koska uudet kielet ovat aina kiinnostavia, vaikka niissä ei ehkä sitä uutta kovin paljon olisikaan. Tässä mitä selvisi lyhyesti kerrottuna.
Sam Rubylta löytyy pieni kuvaus siitä, miten virtuaalikoneen rakentaminen sorsista sujuu, tai tässä tapauksessa ei suju. Jatkuu kommenteissa.
http://intertwingly.net/blog/2011/10/10/Building-Dart
tl;dr: Apuskripti asentaa helkutisti paketteja, ja sitten pitää rekisteröityä johonkin Googlen palveluun, ja sitten käännös ei onnistu. Ellei sitten tee kaikkea juuri oikein.
Chromen kehittäjien blogissa taas on seuraava lupaava lupaus.
"The Dart VM is not currently integrated in Chrome but we plan to explore this option."
http://blog.chromium.org/2011/10/dart-language-for-structured.html
Tällainen ajaa monen kielestä ehkä muuten kiinnostuneen tutkimaan myös sellaista vaihtoehtoa, että unohtaa koko jutun toistaiseksi.
MUOKS: Ylläolevan kommentin Dartin lisäämisestä Chromeen kirjoittikin näköjään Lars Bak, joka on Dart-tiimissä. Silti olisi kiva nähdä selvä lupaus siitä, milloinka kieli tulee Chrome-selaimeen, koska muuten se ei tunnu ihan täysin uskottavalta.
Google muuten kehittää editoria (Brightly) sille.
Mikäli Googlen tunnemme, niin kannattaa heti alussa hypätä kärryyn mukaan.
Pari perustelua väitteelle:
Suosittelen varsinkin nuoremmalle väelle.
Jään mielenkiinnolla seuraamaan kehitystä.
Vielä yksi viesti. Sain rakennettua erillisen virtuaalikoneen Google Code -sivustolla olevan ohjeen mukaan. Siellä Dart-projektin wikissä on ohje "Building the standalone VM" kohdassa. Ei ollut niin työlästä kuin koko projekti tuon yllä linkkaamani blogin mukaan. Ubuntussa tein.
Virtuaalikoneen voi upottaa C- ja C++-ohjelmiin. Mukana tullutta dart_api.h-tiedostoa ei tosin vielä ole turhaan dokumentoitu missään paikassa, minkä minä olisin löytänyt. Mutta on siellä kuvaavan nimisiä funktioiden prototyyppejä :)
Tämä tällä erää riittää aiheesta kirjoittelusta. Kerron paljon myöhemmin lisää, jos jonkun lelun jaksan väsätä kokeilumielessä. Annan jaksamiselle 15 % todennäköisyyden.
Aihe on jo aika vanha, joten et voi enää vastata siihen.