The programming language where object-oriented meets functional.

A Scalable language

Scala is an acronym for “Scalable Language”. This means that Scala grows with you. At the root, the language’s scalability is the result of a careful integration of object-oriented and functional language concepts. Scala is the preferred workhorse language for many mission-critical server systems. The generated code is on a par with Java’s and its precise typing means that many problems are caught at compile-time rather than after deployment.


Scala is a pure-bred object-oriented language. Conceptually, every value is an object and every operation is a method call. The language supports advanced component architectures through classes and traits.


Even though its syntax is fairly conventional, Scala is also a full-blown functional language. It has everything you would expect, including first-class functions, a library with efficient immutable data structures, and a general preference of immutability over mutation.

Seamless Java Interop

Scala runs on the JVM. Java and Scala classes can be freely mixed, no matter whether they reside in different projects or in the same. They can even mutually refer to each other, the Scala compiler contains a subset of a Java compiler to make sense of such recursive dependencies.


Maybe most important is that programming in Scala tends to be very enjoyable. No boilerplate, rapid iteration, but at the same time the safety of a strong static type system. As Graham Tackley from the Guardian says: “We’ve found that Scala has enabled us to deliver things faster with less code. It’s reinvigorated the team.”

lightbulb_outline View ideas list


  • scala
  • jvm
  • llvm


comment IRC Channel
email Mailing list
mail_outline Contact email

Scala 2018 Projects

  • Liudmila Kornilova
    Binding Generator for Scala Native
    Scala Native provides bindings for several C and POSIX APIs out of the box. To help complete and maintain the list of supported APIs as well as...