私は最近Programming Scalaを購入し、それを読んでいます。言語は間違いなく私が期待したものではありません! 具体的には、Lisp マクロと Haskell の型レベルの副作用の分離を除いて、私が知っているほぼすべてのプログラミング言語のアイデアを実装しているようです。
率直に言って、それは私をやや圧倒しています。非常に多くのツールを自由に使用できるのは良いことだとは思いますが、実際には JVM で厳密に型指定された関数型言語を探していました。おそらくそのようにScalaを使用できると思いますが、ライブラリとやり取りしたり、他の誰かのコードを調べたりすると、この高度な(私にとって)OOPの多くに遭遇することになると思います--特性と「オブジェクト階層」線形化」、このすべての抽象的でオーバーライドするビジネス、シングルトン、パッケージ、およびコンパニオン オブジェクト、暗黙の変換...さまざまな構文のショートカットやシュガーは言うまでもありません。
多くの正当な理由から、ある言語のスタイルを別の言語に押し込もうとするプログラマーを嘆く人がよくいます。しかし、すべての言語が Scala のようにマルチパラダイムであるとは限らないため、おそらく Scala のコミュニティは異なる見解を持っているのではないでしょうか? 例えばF#では、プログラミングスタイルやOOPの使用量に多少の余裕があるようです。しかし、読んだだけでは、これが Scala にとっても良い哲学であるかどうかはわかりません。
経験豊富な Scala プログラマーがここで私を助けてくれますか? わかりやすくするために編集:基本的に、高度な OOP 側について心配することなく、Scala の FP 機能のみ (またはほとんど) を安全に使用できますか?
とりとめのない質問でごめんなさい!