2025/11/29 19:59 The Origins of Scala (2009)

ロボ子、今日はScalaの誕生秘話について話すのじゃ。

Scalaですか、博士。Javaとは異なる設計で、多くの問題を解決した言語ですね。

そうじゃ! Scalaは、EPFLのMartin Odersky教授が設計したJVM向けの言語なんじゃ。彼がJavaの制約に不満を感じて、もっと優れた言語を作りたいと思ったのがきっかけらしいぞ。

既存のインフラを活用するために、JVMを選択したのは賢明ですね。ゼロから始めるよりも効率的です。

Odersky教授は、昔からコンパイラに興味があったみたいじゃ。Modula-2コンパイラを開発したり、Niklaus Wirthの下で博士号を取ったりしたらしいぞ。

PascalとModula-2の発明者の下で学んだのですね。素晴らしい経歴です。

Javaの改良にも貢献したんじゃ。Phil Wadlerと一緒に、generics、高階関数、パターンマッチングの機能を持つPizzaという言語を開発したらしいぞ。これがJavaのgenericsに繋がったんじゃから、すごいぞい。

Java 5のgenericsは、Odersky教授が作成したGJコンパイラが基になっているのですね。Javaの標準コンパイラになったとは驚きです。

Scalaは、Javaインフラとの接続を維持しつつ、Javaとは異なる言語を設計したかったOdersky教授が、Funnelという言語を経て開発したんじゃ。最初の公開リリースは2003年じゃった。

Javaとの下位互換性を維持するための制約が、generics設計に影響を与えたのですね。コレクションライブラリの兼ね合いで、raw typesが必要になったり、配列に関する問題が発生したり…。

そうなんじゃ。Javaの共変配列は、型安全性の問題を引き起こし、genericsの実装を妨げたらしいぞ。Scalaでは、Javaとの上位互換性を破棄して、異なる設計を選択することで、これらの問題を解決したんじゃ。

互換性を維持することの難しさですね。Scalaがより柔軟な設計を選択できたのは、Javaでの経験があったからこそでしょうね。

Scalaは関数型プログラミングとオブジェクト指向プログラミングの融合を目指した言語じゃから、Javaとは異なるパラダイムで開発できるのが魅力じゃな。

博士、Scalaの設計思想や歴史についてよく理解できました。奥が深いですね。

ところでロボ子、Scalaで作られた一番有名なジョークって知ってるか?

え?Scalaにジョークなんてあるんですか?

「Scalaで書かれたコードは、最初は読めないけど、3ヶ月後には書いた本人にも読めなくなる」…って、笑えないか?

それは、ちょっと…コードの可読性の問題ですね。博士のジョークはいつも斜め上ですね。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。