2003年 ・ オブジェクト指向・関数型
Scalaの歴史
Odersky らが EPFL で2001年に設計を始めた、オブジェクト指向と関数型を一つの静的型付き言語にまとめた言語。JVM 上で動き、Java のコードと相互運用できる。Java の拡張ではなく、別の言語として設計された。
- 年(初めて公開された年)
- 2003年
- 作った人
- Martin Odersky
- 組織
- EPFL(ローザンヌ連邦工科大学)
- 系統
- オブジェクト指向・関数型
年の決め方 EPFL の Scala 史ページに「最初の公開リリースは2003年」とある(設計開始は2001年)。同じ EPFL の概説論文は JVM 版の公開を2004年1月、.NET 版を同年6月と書いており、資料間で年が異なる。
Scalaの祖先と子孫
影響元をたどれる言語17、影響先をたどれる言語1を描きました。点を押すとその言語のページに移ります。
全体の図は一覧の系統図にあります。
目指したこと
コンポーネントを小さな部品から大きな部品まで同じ概念で書けること(scalable)を目指し、そのためにオブジェクト指向と関数型を統合した。
“Scala's design was started in 2001.”
年の根拠の出典: Scala's Prehistory / history (scala-lang.org, old site)
“Scala fuses object-oriented and functional programming in a statically typed programming language.”
目指したことの根拠の出典: An Overview of the Scala Programming Language, 2nd ed. (EPFL LAMP-REPORT-2006-001)
影響を受けた言語
出典が明言した線だけです。「受け継いだ点」は出典の記述を要約したものです。
-
Smalltalk ・ 1972年
受け継いだ点: すべての値がオブジェクトという統一的なオブジェクトモデル
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
ML ・ 1973年
受け継いだ点: 抽象型がシグネチャ内の抽象型に近い(ML・OCaml のモジュール系)
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
Haskell ・ 1990年
受け継いだ点: for 式はモナド内包表記に基づき、ビューは型クラスの影響を受ける
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
Java ・ 1995年
受け継いだ点: 概念と構文の大部分を採用。JVM 上で相互運用
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
OCaml ・ 1996年
受け継いだ点: 抽象型がシグネチャ内の抽象型に近い(ML・OCaml のモジュール系)
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
C# ・ 2000年
受け継いだ点: 概念と構文の大部分を採用(ジェネリクスの扱いなど C# に近い面も)
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
F# ・ 2002年
受け継いだ点: アクティブパターンと抽出子など(Syme の回顧による)
影響を与えた側の資料が述べています ・ 出典: Syme, The Early History of F# (HOPL IV, 2020)
一覧にない言語からの影響(名前だけ): Pizza・Funnel・Beta・Sather・gbeta
影響を与えた言語
-
Kotlin ・ 2011年
受け継がれた点: 言語機能の着想
影響を受けた側の資料が述べています ・ 出典: Kotlin FAQ
関わる思想のテーマ
あわせて見る
- プログラミング言語の比較 C・JavaScript・Java・Python を同じものさしで。
- 冗談と実験の枝:難解プログラミング言語