Kiinnostuin tänään Scalasta. Olen aiemmin ohittanut sen olankohautuksella, koska se pohjautuu Java VM:ään. On tullut sellainen olo, että mitä tuota nyt opiskelemaan, kun saman voi tehdä Javallakin jos haluaa.
Nyt kuitenkin lukaisin läpi Programming in Scala Chapter 1:n ja Chapter 2:n. Niistä käy hyvin ilmi Scalan idea. Otetaan Javan syntaksista pois kaikki turha tauhka, jota ohjelmoijat yleensä joutuvat näpyttelemään. Lisätään Pythonista tuttuja funktionaalisia ominaisuuksia ja muita apuvälineitä, joilla koodaamisesta tulee tehokkampaa.
Lopputulos on mielenkiintoinen hybridi objektiorientoituneiden ja funktionaalisten kielten välillä, joka on täysin yhteensopiva olemassaolevien Java VM -ympäristöjen ja kirjastojen kanssa.
Tyyppisysteemikin on eräänlainen välimuoto staattisen ja dynaamisen tyypityksen väliltä. Muuttujilla ja parametreillä on kyllä tyypit, mutta kielen syntaksi osaa päätellä ne monissa tapauksissa automaattisesti. Ohjelmakoodi ei siis täyty turhista toistuvista tyyppimääreistä C:n ja Javan tapaan. Tämä muistuttaa hieman Pythonia, joka myöskin tyypittää muuttujat automaattisesti ensimmäisen arvon asettamisen yhteydessä.
Oma kiinnostukseni Scalaan liittyy siihen, että monia skaalautuvia järjestelmiä, kuten Hadoop, Voldemort ja Terracotta on toteutettu Javalla. Yritän tavallisesti pysyä erossa Javasta, koska se on mielestäni ohjelmoijalle turhauttava ja epäproduktiivinen ympäristö, mutta Scala saattaisi olla mielenkiintoinen tapa hyödyntää näitä olemassaolevia infrastruktuureja.