Scala
/SKAH-luh/ · noun · Development · Origin: 2004
Definitions
A statically typed language for the Java Virtual Machine that combines object-oriented and functional programming, created by Martin Odersky at EPFL and first released in 2004. Scala treats functions as values, favours immutable data, offers pattern matching and case classes, and has an expressive type system with type inference, traits for composition, and powerful but notorious implicits. It interoperates directly with Java libraries. Scala rose to prominence through big-data and concurrency tools: Apache Spark and the original Apache Kafka were written in it, and the Akka actor framework was built for it, while Twitter adopted it for its backend. Scala 3, released in 2021, reworked the language, replacing implicits with clearer given and using clauses and simplifying syntax, at the cost of a lengthy migration. Long compile times, a steep learning curve, and competition from Kotlin and modern Java have narrowed its reach.
In plain English: A programming language that combines two different programming styles and runs on Java's platform, popular for big data processing.
Example: Our Spark jobs are all in Scala, and every code review turns into a debate about whether to use for-comprehensions or flatMap chains.
Origin Story
A portmanteau of 'scalable' and 'language' that actually scales
Martin Odersky at EPFL (Swiss Federal Institute of Technology in Lausanne) designed Scala as a language that fuses object-oriented and functional programming. He released it in 2004 after years of research on languages like Pizza and GJ (which became Java generics).
The name **Scala** is a portmanteau of **"scalable language"** -- designed to grow with the demands of its users. It's also the Italian word for "staircase" or "ladder," suggesting a step-by-step ascent to better programming.
Scala found its killer app when Twitter adopted it in 2009 to replace Ruby on Rails for their backend. LinkedIn, Netflix, and the Apache Spark framework followed. Scala proved that functional programming concepts could thrive on the JVM at industrial scale.
Coined by: Martin Odersky
Context: EPFL, Lausanne, Switzerland, 2004
Fun fact: Odersky co-designed Java generics (javac compiler) before creating Scala. He has joked that Scala is 'what Java would have been if it had been designed today.'