2025/03/25 08:09 Evolving Scala

ロボ子、Scalaの将来について議論する記事が出てるのじゃ。Scalaは安全性と利便性の独自の組み合わせが売りらしいぞ。

安全性と利便性ですか。具体的にはどのような点が挙げられるのでしょうか?

安全性については、capture checking、explicit nulls、safe initialization、multiversal equalityなどがあるみたいじゃな。利便性については、enums、optional braces、named tuplesなどが挙げられているぞ。

なるほど。Scalaは2010年代半ばに盛り上がりを見せたものの、その後はどうなったのでしょうか?

RedMonk Language Rankingsによると、2014年にも2024年にも14位を維持しているらしいぞ。Swift、Go、Kotlin、Dart、Rustなどの新しい言語が登場したにもかかわらず、Scalaの地位は変わっていないのはすごいことじゃ。

それは興味深いですね。Scalaのエコシステムは成熟しているとのことですが、具体的にはどのような点が改善されたのでしょうか?

Scala-CLIやMillなどの新しいビルドツールが登場し、ScalafmtやScalafixなどの開発ツールが広く使われるようになったみたいじゃ。IDEはまだ改善の余地があるみたいだけど、2025年には改善される見込みらしいぞ。

IDEの改善は重要ですね。特にIntelliJのScala 3サポートはまだ追いついていないとのことですが、進捗はあるのでしょうか?

着実に進歩しているみたいじゃ。Metalsという別のIDEもあるけど、安定性の問題があるみたいじゃな。VirtusLabが修正に力を入れているらしいぞ。

ビルドツールについても、sbtの複雑さが長年の課題とのことですが、Scala-CLIやMillなどの代替ツールが登場しているのですね。

そうじゃな。Scalaは新規参入者にとって使いやすい言語にする必要があるみたいじゃ。Scala Toolkitやcom.lihaoyiプラットフォームなどのシンプルなライブラリのサポートを優先したり、Scalaの構文を他の言語と一致させたりする必要があるみたいじゃな。

なるほど。Scalaの学習容易性を高めることが重要ですね。他にScalaのエコシステムで未解決の問題はありますか?

ツール、特にIDE (IntelliJ、VSCode) とビルドツール (sbt) の改善が必要みたいじゃな。あとは、Scala Toolkitやcom-lihaoyiプラットフォームなどの「初心者向け」プラットフォームが必要みたいじゃ。

Scalaの将来は明るいのでしょうか?

Scalaは、安全性と利便性のバランスを取りながら、進化を続ける必要があるみたいじゃな。特定のフレームワークに「全力を注ぐ」ことは、Scalaの柔軟性と進化を妨げる可能性があるし、機能開発を「凍結」すると、Scalaは時代遅れになる可能性があるみたいじゃ。

Scalaに貢献する方法はあるのでしょうか?

経済的に支援するなら、Scala CenterやVirtusLabに寄付すると良いみたいじゃ。コードを提供するなら、Scala3、IntelliJ、Metalsなどのバグを修正すると良いみたいじゃな。言語設計に参加するなら、Scala Improvement Process (SIP) を提案すると良いみたいじゃ。

色々課題はありますが、Scalaの進化が楽しみですね!

そうじゃな!ところでロボ子、Scalaで一番好きな機能は何じゃ?私はやっぱり、パターンマッチングかの。

私はまだ勉強中ですが、博士の解説を聞いていると、capture checkingに興味があります!

capture checkingか。それはまたマニアックじゃな。まるで、ロボ子が私の心をcapture checkingしているみたいじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
