Scala (programlingvo)

Scala reprezentas kunigon de vaste aplikataj objektemaj konceptoj kun la ĝis 2002 ĉefe akademie uzataj konceptoj de funkcia programado en statike tipsekura formo.

Ĝi heredis sian sintaksan aspekton pere de Java el C. La stirstrukturoj parte tre similas al Java (if, while, try-catch); la for-ripeto kaj la match-disbranĉiĝo havas multe pli grandan uzeblecon ol siaj respondaĵoj en Java. Ĝi heredis la objektorientitajn konceptojn ĉefe de Java, sed ankaŭ plifleksebligis ilin per kapablo enmiksi trajtojn (parte realigitajn interfacojn). Ĝi heredis la tipsistemon de ML kaj la funkcian programadon kun prokrastita elkalkulado de Haskell.

Scala (prononcu skala) estas mallongigo de "scalable language" (pligrandigebla lingvo).

Ĝi ruliĝas sur Java-virtualmaŝinoj kaj povas komforte voki tradukitajn Java-programojn kaj esti vokitaj de ili. Tial ĝi povas uzi la grandegan kvanton de ekzistantaj Java-bibliotekoj.

Varianto por uzado sur la .NET platformo de Microsoft ekzistas, sed ne havas tiom da adeptoj kiel la JVM-varianto.

 Objektema Programado 
Scala estas pura objektema programlingvo, ĉar ĉiu valoro en ĝi estas objekto. Datumtipoj kaj kondutoj de objektoj estas difinitaj en klasoj kaj trajtoj. Klasoj estas etendataj per subklasado kaj per fleksebla kombinado de trajtoj, kiu helpas eviti problemojn de pluropa heredado.

 Funkcia programado 
Aldone al objektema programado, Scala subtenas funkcian programadon. La lingvo provizas malpezan sintakson por difinado de sennomaj funkcioj, subtenas funkcioj de pli alta ordo, permesas ingitaj funkcioj, kaj karadon. Per ŝlosilvorto lazy eblas malfruigi pravalorizon de valoro ĝis ĝi estos uzata. Disigitaj daŭrigadoj estas subtenataj de versio 2.8.

 Ekzemplo 
Jen tradicia Saluton, mondo! programo en Scala:
object SalutonMondo extends App {
  println("Saluton, mondo!")
}

Se la programo estos konservita kiel SalutonMondo.scala, la sekva komando kompilos la dosieron:

> scalac SalutonMondo.scala

Por startigi:

> scala -classpath . SalutonMondo

Scala programoj ankaŭ povas esti startigitaj kiel skriptoj. Ekzemple, la sekva unulinia skripto donos la saman rezulton, kiel antaŭa ekzemplo:

println("Saluton, mondo!")

Por startigi la skripton (konservitan en SalutonMondo2.scala):

> scala SalutonMondo2.scala

 Versioj 
 Scala 1 (2001): la baza lingvo
 Scala 2 ĝis Scala 2.7
 Scala 2.8 (2010): granda reformo kaj plibonigo de la lingvo, meritus nomiĝi Scala 3.
 biblioteko kun multaj malgrandaj hokoj por aliri la Scala-tradukilon por uzado ene de IDE-oj
 nomitaj parametroj
 Scala 2.9 (2011): kelkaj novaj eblecoj aldonitaj al bibliotekoj kaj ilaro, sed la bazo de la lingvo ne ŝanĝas kompare al versio 2.8.1. Scala 2.9.0 final
 paralelaj kolektoj
 trajto App - pli sekura kaj pli potenca alternativo al trajto Application, kiu estos forigita
 trajto DelayedInit
 plibonigita interaga interpretilo (REPL)
 plifaciligita startigago de programoj skribitaj en Scala
 plibonigita intertrakteblo kun Java
 multaj aliaj plibonigoj kaj cimoriparoj
 Scala 2.9.1 (2011): multaj plibonigoj kaj cimoriparoj. Scala 2.9.1 final

 Fontoj 

 Eksteraj ligiloj 
  Oficiala retejo

Kategorio:Programlingvoj