See artikkel vajab toimetamist. (November 2018) |
See artikkel ootab keeletoimetamist. (November 2018) |
Scala on üldotstarbeline platvormist sõltumatu objektorienteeritud programmeerimiskeel, mis toetab funktsionaalset programmeerimist ja tugevat staatilist tüübisüsteemi. Scala on disainitud olema kompaktne[1] ja selle eesmärk on parandada Java probleemseid omadusi.[2]
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, kuigi Scala 3 toetab ka Pythoni-stiilis taandepõhist süntaksi.[3] Scala eristub Javast teatud eriomaduste tõttu, mis on pärit teistest funktsionaalprogrammeerimiskeeltest, sh Scheme, Standard ML ja Haskell. Nendeks funktsionaalsusteks on karrimine ehk funktsiooni osaline rakendamine (ingl k currying), tüübijäreldus (ingl k type inference), muutmatud objektid (ingl k immutability), laisk väärtustamine (ingl k lazy evalutation) ja mustrisobitus (ingl k pattern matching).[4] Scala väldib teatud vastuolulisi Java omadusi, näiteks erandite kohustuslik töötlus, kuigi Scala 3 puhul on see valikuliselt saadaval.[5][6]
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.[7]