*** Welcome to piglix ***

Scala programming language

Scala
Scala logo.png
Paradigm Multi-paradigm: functional, object-oriented, imperative, concurrent
Designed by Martin Odersky
Developer Programming Methods Laboratory of École Polytechnique Fédérale de Lausanne
First appeared January 20, 2004; 13 years ago (2004-01-20)
Stable release
2.12.1 / December 5, 2016; 2 months ago (2016-12-05)
Typing discipline static, strong, inferred, structural
Implementation language Scala
Platform JVM, JavaScript,LLVM (experimental)
License BSD 3-clause
Filename extensions .scala, .sc
Website www.scala-lang.org
Influenced by
Eiffel, Erlang, Haskell,Java,Lisp,Pizza,Standard ML,OCaml,Scheme,Smalltalk, Oz
Influenced
Ceylon, Fantom, F#, Kotlin, Lasso, Red

Scala (/ˈskɑːlɑː/ SKAH-lah) is a general-purpose programming language providing support for functional programming and a strong static type system. Designed to be concise, many of Scala's design decisions were designed to build from criticisms of Java.

Scala source code is intended to be compiled to Java bytecode, so that the resulting executable code runs on a Java virtual machine. Scala provides language interoperability with Java, so that libraries written in both languages may be referenced directly in Scala or Java code. Like Java, Scala is object-oriented, and uses a curly-brace syntax reminiscent of the C programming language. Unlike Java, Scala has many features of functional programming languages like Scheme, Standard ML and Haskell, including currying, type inference, immutability, lazy evaluation, and pattern matching. It also has an advanced type system supporting algebraic data types, covariance and contravariance, higher-order types (but not higher-rank types), and anonymous types. Other features of Scala not present in Java include operator overloading, optional parameters, named parameters, raw strings, and no checked exceptions.


...
Wikipedia

...