Introduction to Scala
Scala (Scalable Language) is a statically typed, multi-paradigm language that fuses object-oriented and functional programming.
1.1 What is Scala?
Scala (Scalable Language) is a statically typed, multi-paradigm language that fuses object-oriented and functional programming. It runs primarily on the JVM, and also compiles to JavaScript (Scala.js) and native code (Scala Native).
Everything is an object; every operation is a method call.
Functions are first-class values.
Immutable data and expressions-over-statements by default.
Powerful type inference and one of the most expressive type systems in industry.
Pattern matching, algebraic data types, type classes.
Seamless Java interop — use any Java library.
Concise syntax; Scala 3 offers optional brace-less (indentation-based) syntax.
1.2 History
Martin Odersky starts Scala at EPFL (Switzerland) First public release
Typesafe (later Lightbend) founded; Akka grows Scala 2.10/2.11: macros, implicit classes, string interpolation
Apache Spark (written in Scala) explodes in popularity Scala 2.13: redesigned collections
Scala 3.0 ("Dotty"): new type system foundations (DOT calculus), givens, enums, new macros Akka relicensed → Apache Pekko fork
Scala 3.3 LTS, 3.4–3.7: new features, scala-cli becomes the scala command, named tuples (3.7), capture checking research
1.3 Who uses Scala?
Twitter/X (historically), LinkedIn, Netflix, Airbnb, Spotify, Databricks (Spark), Disney+, The Guardian, Zalando, Morgan Stanley, Goldman Sachs, Coursera, Lichess, Kafka (originally written in Scala), Apache Flink APIs.
1.4 Why learn Scala?
Write concise, type-safe code that scales from scripts to distributed systems.
Industry-standard for big data (Spark, Kafka ecosystem).
Learn advanced FP (type classes, effects) on a mainstream platform.
Leverage the entire JVM ecosystem.