Scala is a general-purpose programming language principally targeting the Java Virtual Machine. Designed to express common programming patterns in a concise, elegant, and type-safe way, it fuses both imperative-programming and functional-programming styles. Its key features are:
Static typing
Advanced type system with type inference and declaration-site variance
Function types (including anonymous) which support lexical closures
Pattern-matching
Implicit parameters and conversions which support the typeclass and enrich-my-library patterns
Mixin composition
Full interoperability with Java
Powerful concurrency constructs
Advanced language constructs such as delimited continuations and an experimental macro system
steps, stairs, ladder