Scala 3 is an open-source, statically typed programming language that compiles to JVM bytecode, combining object-oriented and functional programming paradigms. Its core identity is defined by a sophisticated type system that includes traits, generics, union types, and a dependent object type system where types can depend on runtime values through path-dependent and singleton types.
The language distinguishes itself through several advanced type-level and metaprogramming capabilities. It features a contextual abstraction mechanism using given instances and using clauses for compile-time implicit resolution, inline metaprogramming with staged evaluation on typed abstract syntax trees, and match type computation for compile-time conditional type definitions. Scala 3 also enforces multiversal equality to prevent unintended type comparisons, supports opaque type aliasing that hides underlying representations while maintaining type safety, and employs a trait linearization model for deterministic method resolution in mixin composition.
Beyond its type system, Scala 3 provides a complete development toolchain including a compiler that translates source code into executable bytecode, a standard library, and a formal language specification. The language supports interactive evaluation through a REPL, script compilation and execution from the command line, and toolchain installation management. It also offers comprehensive educational resources such as structured language lessons, in-depth feature guides, video series, and recorded conference talks, along with migration guidance for moving codebases from Scala 2 to Scala 3.