Scala (Scalable Language) is a software programming language that mixes object-oriented methods with functional programming capabilities that support a more concise style of programming than other general-purpose languages like Java, reducing the amount of code developers have to write. Another benefit of the combined object-functional approach is that features that work well in small programs tend to scale up efficiently when run in larger environments.
First released publicly in 2004, Scala also incorporates some imperative, statement-oriented programming capabilities. In addition, it supports static typing, in which computations are formed as statements that change program state at compile time, an approach that can provide improved runtime efficiencies. It is typically implemented on a Java virtual machine (JVM), which opens up the language for mixed use with Java objects, classes and methods, as well as JVM runtime optimizations.
Scala also includes its own interpreter, which can be used to execute instructions directly, without previous compiling. Another key feature in Scala is a "parallel collections" library designed to help developers address parallel programming problems. Pattern matching is among the application areas in which such parallel capabilities have proved to be especially useful.
Scala was originally written by Martin Odersky, a professor at the Ecole Polytechnique Federale de Lausanne, in Switzerland. His previous work included creation of the Funnel language, which shared some traits with Scala but didn't employ JVMs as an execution engine. Odersky began work on Scala in 2001 and continues to play a lead role in its development; he also co-founded Scala development tools maker Typesafe Inc. in 2011 and is the San Francisco company's chairman and chief architect.
Updates to the Java language have added functional programming traits somewhat akin to Scala's. One prominent Scala user, LinkedIn Corp., indicated in early 2015 that it planned to reduce its reliance on the language and focus more on Java 8 and other languages. But Scala continues to be one of the major tools for building software infrastructure at a number of other high-profile companies, including Twitter Inc. and local-search app developer Foursquare Labs Inc.
Apache Spark, an open source data processing engine for batch processing, machine learning, data streaming and other types of analytics applications, is very significant example of Scala usage. Spark is written in Scala, and the language is central to its support for distributed data sets that are handled as collective software objects to help boost resiliency. However, Spark applications can be programmed in Java and the Python language in addition to Scala.