# Scala

> general-purpose programming language

**Wikidata**: [Q460584](https://www.wikidata.org/wiki/Q460584)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Scala_(programming_language))  
**Source**: https://4ort.xyz/entity/scala

## Summary

Scala is a software application influenced by: ML, Java, Smalltalk, Standard ML, OCaml, Common Lisp + 2 more[1]. This influence reflects the diverse roots of the language. Scala's development drew upon a range of existing programming languages[1].The awards won by Scala include the Programming Languages Software Award[2]. This award recognizes Scala's contributions to the field of programming languages[2]. It is a notable achievement for a software application like Scala to receive such an award[2].Scala's recognition through the Programming Languages Software Award highlights its impact on the programming community[2]. The language's design and functionality have been shaped by its influences, including ML, Java, and others[1].Overall, Scala is a software application with a unique set of influences and a notable award to its name, the Programming Languages Software Award[2], influenced by a range of programming languages[1].

## Summary
Scala is a general-purpose, multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It integrates features of object-oriented and functional programming and runs on the Java Virtual Machine (JVM). Created by Martin Odersky, it was first publicly released in 2003.

## Key Facts
- **Full Name:** Scala programming language.
- **Inception:** January 20, 2004.
- **First Public Release:** Version 1.0 on March 9, 2003.
- **Creator:** Designed by Martin Odersky.
- **Developer:** Martin Odersky and the Swiss Federal Institute of Technology in Lausanne (EPFL).
- **License:** Apache Software License 2.0.
- **Paradigms:** Multi-paradigm, supporting concurrent, functional, imperative, and object-oriented programming.
- **Typing Discipline:** Static, strong, inferred, and structural typing.
- **Platform:** Java Virtual Machine (JVM), JavaScript (Scala.js), and Native (Scala Native).
- **File Extensions:** `.scala`, `.sc`.
- **Influenced By:** Java, ML, Standard ML, OCaml, Smalltalk, Common Lisp, Oz, Pizza, and others.
- **Latest Stable Version (per source):** 3.7.4 (released 2025-11-11). Note: Source also lists 2.13.16 (released 2025-01-15) for the 2.x series.
- **Notable Awards:** Programming Languages Software Award (2019).

## FAQs
### Q: What programming paradigms does Scala support?
A: Scala is a multi-paradigm language that supports functional programming, object-oriented programming, imperative programming, and concurrent computing. This allows developers to use a combination of styles.

### Q: Who created Scala and when was it released?
A: Scala was designed by Martin Odersky. The first public release was version 1.0 in 2003, with an official inception date of January 20, 2004.

### Q: What platforms can Scala run on?
A: Scala primarily runs on the Java Virtual Machine (JVM), producing Java bytecode. It also has backends for JavaScript (Scala.js) and native code (Scala Native).

### Q: What are the key influences on Scala's design?
A: Scala was influenced by several languages, including Java, ML, Standard ML, OCaml, Smalltalk, Common Lisp, Oz, and Pizza.

## Why It Matters
Scala matters because it was one of the first languages to successfully integrate full object-oriented and functional programming capabilities on the JVM, addressing the verbosity of Java while maintaining interoperability. It has had a significant impact on the software industry, particularly in distributed computing and big data processing. Its static type system with inference allows for robust, safe code that is also concise. The language continues to evolve with Scala 3 (Dotty), which simplifies the language and improves ergonomics. Its receipt of the SIGPLAN Programming Languages Software Award in 2019 underscores its importance in the academic and industrial landscape.

## Notable For
- **Multi-paradigm Integration:** Seamlessly blends object-oriented and functional programming in one language.
- **JVM Compatibility:** Compiles to Java bytecode, allowing full interoperability with Java libraries.
- **Expressive Type System:** Features static typing with type inference, reducing boilerplate while maintaining safety.
- **Scalability:** The name Scala is a portmanteau of "scalable" and "language," designed to grow with the demands of its users.
- **Active Development:** Has seen continuous evolution from Scala 2 to Scala 3 (Dotty), with ongoing releases like the 3.7.x and 2.13.x series.
- **Cross-Platform Support:** Extends beyond the JVM to JavaScript and Native environments.
- **Industry Recognition:** Awarded the 2019 Programming Languages Software Award by SIGPLAN.

## Body
### Origins and Development
Scala was designed by **Martin Odersky** at the **Swiss Federal Institute of Technology in Lausanne** (EPFL). The project began internally, with version 1.0 released on March 9, 2003. The official inception date is recorded as January 20, 2004. Development has continued actively, with two main parallel lines: the classic 2.x series (most recent version 2.13.16, released Jan 15, 2025) and the modern 3.x series (most recent version 3.7.4, released Nov 11, 2025). The language is open-source, distributed under the **Apache Software License 2.0**.

### Language Design and Paradigms
Scala is classified as a **multi-paradigm programming language**, a **functional programming language**, an **object-based language**, and a **JVM language**. Its design draws from **Java**, **ML**, **Standard ML**, **OCaml**, **Smalltalk**, **Common Lisp**, **Oz**, and **Pizza**.

- **Functional Programming:** It treats functions as first-class citizens and supports immutable data structures.
- **Object-Oriented Programming:** Every value is an object, and every operation is a method call.
- **Concurrency:** It supports concurrent computing models.

### Technical Specifications
- **Typing Discipline:** Scala employs **static typing**, **strong typing**, **inference typing**, and **structural typing**.
- **Platforms:** The primary platform is the **Java virtual machine**. The ecosystem also includes **Scala.js** (compiling to JavaScript) and **Scala Native**.
- **File Extensions:** Source files use the extensions `.scala` or `.sc`.
- **Media Type:** The unofficial MIME type is `text/x-scala`.

### Ecosystem and Community
Scala has a robust ecosystem supported by various tools and community platforms:
- **Build Tools & Repositories:** The source code is hosted on GitHub (`scala/scala` and `scala/scala3`).
- **Package Managers:** Available via Homebrew (`scala`, `scala@2.12`, `scala@2.11`), AUR (`scala`, `scala-docs`), and various Linux distro packages (Fedora, Ubuntu, Debian, OpenSUSE, Arch, Gentoo, FreeBSD, OpenBSD, NetBSD, MacPorts).
- **Documentation:** Official documentation and APIs are available at `scala-lang.org`. An official blog is maintained at `scala-lang.org/blog/`.
- **Online Demo:** The official online playground is **Scastie** (`scastie.scala-lang.org`).
- **Social & Community:** Active communities exist on Reddit (`r/scala`), Stack Overflow (`scala` tag), Twitter (`@scala_lang`), Mastodon (`scala_lang@fosstodon.org`), and GitHub (Topic: `scala`).

### Awards and Recognition
In 2019, Scala received the **Programming Languages Software Award** from SIGPLAN, recognizing its impact and software quality.

## References

1. [Programming Languages Software Award](https://www.sigplan.org/Awards/Software/#2019_Scala)
2. Integrated Authority File
3. Library of Congress Subject Headings
4. SUDOC
5. [Source](https://www.scala-lang.org/news/2.12.8)
6. [The scala Open Source Project on Open Hub: Languages Page. Open Hub](https://www.openhub.net/p/scala/analyses/latest/languages_summary)
7. [Release 2.11.6. 2015](https://github.com/scala/scala/releases/tag/v2.11.6)
8. [Scala 2.12.0 is now available!](http://scala-lang.org/news/2.12.0)
9. [Release 2.12.0. 2016](https://github.com/scala/scala/releases/tag/v2.12.0)
10. [Scala 2.12.1 is now available!](http://www.scala-lang.org/news/2.12.1)
11. [Release 2.12.1. 2016](https://github.com/scala/scala/releases/tag/v2.12.1)
12. [Source](http://www.scala-lang.org/news/releases-1Q17.html)
13. [Release 2.12.2. 2017](https://github.com/scala/scala/releases/tag/v2.12.2)
14. [scala: The Scala programming language](https://github.com/scala/scala/releases/tag/v2.12.4)
15. [Source](https://github.com/scala/scala/releases/tag/v2.12.5)
16. [Release 2.12.6. 2018](https://github.com/scala/scala/releases/tag/v2.12.6)
17. [Release 2.12.3. 2017](https://github.com/scala/scala/releases/tag/v2.12.3)
18. [Release 2.11.12. 2017](https://github.com/scala/scala/releases/tag/v2.11.12)
19. [Release 2.11.11. 2017](https://github.com/scala/scala/releases/tag/v2.11.11)
20. [Release 2.11.8. 2016](https://github.com/scala/scala/releases/tag/v2.11.8)
21. [Release 2.11.7. 2015](https://github.com/scala/scala/releases/tag/v2.11.7)
22. [Release 2.11.5. 2015](https://github.com/scala/scala/releases/tag/v2.11.5)
23. [Release 2.11.4. 2014](https://github.com/scala/scala/releases/tag/v2.11.4)
24. [Release 2.11.2. 2014](https://github.com/scala/scala/releases/tag/v2.11.2)
25. [Release 2.11.1. 2014](https://github.com/scala/scala/releases/tag/v2.11.1)
26. [Release 2.11.0. 2014](https://github.com/scala/scala/releases/tag/v2.11.0)
27. [Release 2.10.7. 2017](https://github.com/scala/scala/releases/tag/v2.10.7)
28. [Release 2.10.6. 2015](https://github.com/scala/scala/releases/tag/v2.10.6)
29. [Release 2.10.5. 2015](https://github.com/scala/scala/releases/tag/v2.10.5)
30. [Release 2.10.4. 2017](https://github.com/scala/scala/releases/tag/v2.10.4)
31. [Release 2.12.7. 2018](https://github.com/scala/scala/releases/tag/v2.12.7)
32. [Release 2.12.8. 2018](https://github.com/scala/scala/releases/tag/v2.12.8)
33. [Release 2.13.0. 2019](https://github.com/scala/scala/releases/tag/v2.13.0)
34. [Release 2.12.9. 2019](https://github.com/scala/scala/releases/tag/v2.12.9)
35. [Release 2.12.10. 2019](https://github.com/scala/scala/releases/tag/v2.12.10)
36. [Release 2.13.1. 2019](https://github.com/scala/scala/releases/tag/v2.13.1)
37. [Release 2.12.11. 2020](https://github.com/scala/scala/releases/tag/v2.12.11)
38. [Release 2.13.2. 2020](https://github.com/scala/scala/releases/tag/v2.13.2)
39. [Release 2.13.3. 2020](https://github.com/scala/scala/releases/tag/v2.13.3)
40. [Release 2.12.12. 2020](https://github.com/scala/scala/releases/tag/v2.12.12)
41. [Release 2.13.4. 2020](https://github.com/scala/scala/releases/tag/v2.13.4)
42. [Release 2.12.13. 2021](https://github.com/scala/scala/releases/tag/v2.12.13)
43. [Release Scala 2.13.5](https://github.com/scala/scala/releases/tag/v2.13.5)
44. [Source](https://github.com/lampepfl/dotty/releases/tag/3.0.0)
45. [Source](https://github.com/lampepfl/dotty/releases/tag/3.0.0-RC3)
46. [Source](https://github.com/lampepfl/dotty/releases/tag/3.0.1)
47. [Source](https://github.com/lampepfl/dotty/releases/tag/3.0.2)
48. [Source](https://github.com/lampepfl/dotty/releases/tag/3.1.0-RC2)
49. [Source](https://github.com/lampepfl/dotty/releases/tag/3.1.0)
50. [Source](https://github.com/lampepfl/dotty/releases/tag/3.1.1-RC1)