Scala (programmeerimiskeel)

Scala on üldotstarbeline platvormist sõltumatu objektorienteeritud programmeerimiskeel, mis toetab funktsionaalprogrammeerimist ja tugevat staatilist tüübisüsteemi. Scala on disainitud kompaktselt parandamaks Java problemaatilisi omadusi.

Scala lähtekood kompileeritakse Java baitkoodiks, mis tähendab, et Scala käivitamisel käitatakse seda Java virtuaalmasinas. Sarnaselt Javaga on ka Scala objektorienteeritud ning kasutab loogeliste sulgude süntaksit, mis pärinevad C-programmeerimiskeelest. Scala eristub Javast teatud eriomaduste tõttu, mis on pärit teistest funktsionaalprogrammeerimiskeeltest, sh Scheme, Standard ML ja Haskell. Nendeks funktsionaalsusteks on karritamine ehk funktsiooni osaline rakendamine (ingl k currying), tüübijäreldus (ingl k type inference), muutumatud objektid (ingl k immutability), laisk väärtustamine (ingl k lazy evalutation) ja mustrisobitus (ingl k pattern matching). Scalas puudub aga Java programmeerimiskeelest tuttav eranditöötlus, mis on osutunud vastuoluliseks.

Nimi Scala on kohversõna sõnadest "skaleeritav" (ingl k scalable) ja "keel" (ingl k language), mis viitab, et see on disainitud kasutajate vajadustele vastavalt kohanduma ja kasvama.

Ajalugu 
Martin Odersky alustas Scala disainimist 2001. aastal Lausanne'is Šveitsi föderaalses tehnoloogiainstituudis (École Polytechnique Fédérale de Lausanne ehk EPFL). See arenes välja programmeerimiskeelest Funnel ja matemaatilisest modelleerimiskeelest Petri net. 

Scala avalikustati Java platvormil 2004. aasta esimeses pooles. Selle teine versioon (v2.0) tuli välja 2006. aasta märtsis.

17. jaanuaril 2011 võitis Scala arendusmeeskond Euroopa Teadusnõukogult teadustöö rahastamise viieks aastaks koguväärtuses üle 2,3 miljoni euro. 12. mail 2011. aastal lõi Odersky koos oma kaastöötajatega ettevõtte Typesafe AS, mille eesmärgiks oli Scala majanduslik toetamine ning edasiõppe ja teenuste võimaldamine. Samal aastal tegi ettevõte Greylock Partners Typesafe-i 3 miljoni dollari suuruse investeeringu. Hiljem sai firma nimeks Lightbend Inc.

Näited

“Hello World” 
Kuulsat Hello World programmi saab Scalas kirjutada järgmiselt:

 object HelloWorld extends App {
 	println("Hello, World!")
 }

Võrreldes Java Hello World programmiga, puudub Scalas selle programmi kirjutamiseks tarvilikkus deklareerida klass ning samuti pole antud koodis märgitud midagi staatiliseks, vaid selle asemel on kasutatud ühekordset objekti, mis luuakse märksõnaga object.

Kui programm on salvestatud faili HelloWorld.scala, saab selle käsurealt kompileerida järgmise käsuga:
 $ scalac HelloWorld.scala
Käivitada saab selle programmi, kui käitada käsurealt käsku
 $ scala HelloWorld

Scala kompileerimine ja käivitamine on analoogne Javaga, kusjuures Scala kompileerimise ja kasutamise mudel on identne Java omale, mis tähendab, et Scala ühildub Java kompileerimistööriistadega (näiteks Apache Ant).

“Hello World“ lühem versioon 
 println("Hello, World!")

Scala toetab interaktiivset käsureaprotsessorit ja skriptimist. Kui ülalmainitud koodirida salvestada faili HelloWorld2.scala, siis saab seda käsurealt käitada ilma mingisuguse eelneva kompileerimiseta käsuga

 $ scala HelloWorld2.scala

Skripte saab sisestada ka otse käsureale, lisades käsule parameetri –e:

 $ scala –e 'println("Hello, World!")'

Viited 

Programmeerimiskeeled