まず、新しいOO言語が持つべき、いくつかの明白な譲れないものがあります。
- null安全
- 安全なキャスト
- オプショナル名前付き引数
- ジェネリクス
- デフォルトでイミュータブル
これらのテーマについてはすでに十分語られているので、今日はあまり説明する必要はないでしょう。
ここでは、私が個人的に新しいOO言語に望む、あまり目立たない選択肢をいくつか紹介します。
- クラスに基づく発見性
- 多重継承
- ミニマル構文
- 高階型
- 例外がない
- 統合されたクラスと型クラス
- 破壊せずにパターンマッチング
これら共通しているのは、言語を純粋にOO(「マルチパラダイム」ではない)に保つことですが、関数的な機能を型システムに統合し、OO的な方法で実装することです。