Scala (programming Language)

Scala (programming Language)

Scala ( /ˈskɑːlə/ SKAH-lə) is an object-functional programming and scripting language for general software applications, statically typed, designed to concisely express solutions in an elegant, type-safe and lightweight manner. Scala includes full support for functional programming (including currying, pattern matching, algebraic data types, lazy evaluation, tail recursion, immutability, etc.). It cleans up what are often considered to have been poor design decisions in Java (e.g. type erasure, checked exceptions, the non-unified type system) and adding a number of other features designed to allow cleaner, more concise and more expressive code to be written.

It is intended to be compiled to Java bytecode (the executable JVM ) or .Net. Both platforms are officially supported by the EPFL.
Like Java, Scala is statically typed and object-oriented, uses a curly-brace syntax reminiscent of C, and compiles code into Java bytecode, allowing Scala code to be run on the JVM and permitting Java libraries to be freely called from Scala (and vice-versa) without the need for a glue layer in-between.
Compared with Java, Scala adds many features of functional programming languages like Scheme, Standard ML and Haskell, including anonymous functions, type inference, list comprehensions (known in Scala as "for-comprehensions"), lazy initialization, extensive language and library support for side-effect-less code, pattern matching, case classes, delimited continuations, higher-order types, much better support for covariance and contravariance than in Java, etc. Scala also provides a unified type system (as in C#, but unlike in Java), where all types, including primitive types like integers and booleans, are objects that are subclasses of the type Any. Scala likewise contains a number of other features present in C# but not Java, including operator overloading, optional parameters, named parameters, raw strings (that may be multi-line in Scala), and no checked exceptions.

The name Scala is a blend of "scalable" and "language", signifying that it is designed to grow with the demands of its users. James Strachan, the creator of Groovy, described Scala as a possible successor to Java.

Read more about Scala (programming Language):  History, Platforms and License, Features (with Reference To Java), Concurrency, Testing, Comparison With Other JVM Languages, See Also

Famous quotes containing the word scala:

    At La Scala it is customary to take no more than twenty minutes for those little visits one pays to boxes.
    Stendhal [Marie Henri Beyle] (1783–1842)