Scala, a modern multi-paradigm programming language, is designed to express common programming patterns in a concise, elegant, and type-safe way. It seamlessly integrates features of object-oriented and functional languages. Scala is an object-oriented language insofar as types and behaviors of objects are described by classes and traits. It is also a functional language in the sense that every function is a value. Scala provides a lightweight syntax for defining anonymous functions and supports higher-order functions.
Scala’s type system supports:
- Generic classes
- Variance annotations
- Upper and lower type bounds
- Inner classes and abstract type members as object members
- Compound types
- Explicitly typed self references
- Implicit parameters and conversions
- Polymorphic methods
Scala provides a unique combination of language mechanisms that make it straightforward to add new language constructs in the form of libraries. It interoperates with the popular Java Runtime Environment (JRE), has the same compilation model as Java, and allows access to thousands of existing high-quality libraries.
You can run Scala in your browser with ScalaFiddle by visiting https://scalafiddle.io
The Scala language and associated websites are cooperative projects of the Scala Center at EPFL, Lightbend, and the Scala community, with participation from many companies, organizations, and individuals.
The Scala Center focuses on education (especially online courses), documentation, open source community outreach, and tooling.
Scala was created by Prof. Martin Odersky. Martin and his research group at EPFL remain heavily involved with the language, including developing Dotty, a next-generation compiler for Scala.