JavaFX と Scala を使用して、マインド マッピング機能を備えたシンプルなノート オーガナイザーを実装しようとしています。
JavaFX コードを Scala から直接呼び出すか、ScalaFX 経由で呼び出すかを決定しようとしています。ScalaFX を学ぶ価値があるかどうかはわかりませんが、Scala コードから JavaFX を直接呼び出す方が簡単ではないでしょうか?
ScalaFXの公式サイトでは、ScalaFX の 4 つの利点について言及しています。
1) 自然言語バインド式
-それはいいことですが、バインディングをあまり使用する予定はありません (GUI コンポーネント間イベントには EventBus を使用し、GUI コンポーネント内イベントにはいくつかのバインディングを使用するつもりです)。
2) カスタマイズされたアニメーション構文
-プロジェクトでアニメーションを使用する予定はありません。
3) 完全なタイプセーフ API
これは取るに足らない点のように思えるかもしれません… 型の安全性は、Java 開発者が常に持っていたもの (そして多くの場合、当たり前のことだと思っています) であり、他のスクリプト言語の開発者はそれがなくても生きています (その結果、無意識のうちに実行時エラーに悩まされています)。ただし、展開後に予期しないランタイム エラーやバグが発生しないアプリケーションを開発している場合、これは重要な機能です。
優れたコンパイラは、予想される型と実際の型を比較することで、多くの一般的なコーディングの間違いを見つけることができます。また、優れたコンパイラ (Scala など) は自動的に型を推測するので、コード全体でそれらを退屈に繰り返す必要はありません。
ScalaFX は、オブジェクトを明示的に型指定する必要がほとんどないスクリプトに似た DSL 構文と、すべての式と API 呼び出しの型を推測してチェックする Scala コンパイラの強力な型安全性により、両方の世界を最大限に活用します。これは、奇妙なコードのバグやスペルミスのデバッグに費やす時間を短縮し、すぐに高品質のコードを作成できることを意味します!
-これは面白そうですね!しかし、私の質問は次のとおりです。Scala から JavaFX を直接呼び出すと、ScalaFX を介して JavaFX を呼び出すのと同じタイプの安全性が保証されると思いますか? 知らない。
4) JavaFX/ScalaFX のシームレスな相互運用性:
-Scala から JavaFX を直接呼び出すと、ScalaFX 経由で JavaFX を呼び出す場合よりも、相互運用性の問題について心配する必要がなくなります。
要約すれば:
ポイント3は、単純なプロジェクトで私が気にかけている利点を私に与える唯一のもののようですが、彼らが実際に話しているタイプセーフの種類がわかりませんか?
型の安全性に関して、Scala から直接 JavaFX を呼び出すよりも、ScalaFX を介して JavaFX を呼び出すほうがよいのはなぜですか? Scala から直接アクセスする代わりに ScalaFX を使用すると、どのような追加の型安全性の利点が得られるでしょうか? ScalaFX がどのような種類の追加の型安全性を提供できるか本当に想像できないので、私はこれを尋ねています。
言い換えれば、ScalaFX がバインドのシンタックス シュガーとして優れていることは理解していますが、それ以上のものを提供しているのでしょうか? それが与える(非常に素晴らしい)シンタックシュガーなしで生きていけるなら、本当にそれを使うべきですか?
余分な複雑さ (およびバグの原因) を導入するこのラッパー層 (ScalaFX) を使用する価値のあるものは、砂糖以外にあるでしょうか?
ScalaFX の作成者の仕事に本当に感謝しています! より良い情報に基づいた決定を下せるようにするために、これらの質問をしているだけです。