我正在尝试使用
JavaFX和Scala实现一些简单的笔记管理器与一些思维导图功能.
我试图决定是否直接从Scala或ScalaFX调用JavaFX代码?我不知道是否值得学习ScalaFX,并不是简单直接从Scala代码调用JavaFX?
1)自然语言绑定表达式
– 很好,但是我并没有真正计划使用绑定(我打算使用EventBus进行组间事件和几个绑定用于内部组件事件).
2)定制动画语法
– 我不打算在我的项目中使用动画.
3)全型安全API
This may seem like an insignificant point… Type safety is something
that Java developers have always had (and often take for granted), and
developers in other scripting languages live without (and unknowingly
suffer with runtime errors as a result). However, it is a critical
feature if you are developing applications that cannot have unexpected
runtime errors and bugs after deployment.
A good compiler will be able to pick up many common coding mistakes
through comparison of expected and actual types, and a great compiler
(like Scala) will automatically infer types for you so you don’t have
to tediouisly repeat them throughout your code.
ScalaFX gets the best of both worlds with a scripting-like DSL syntax
where you can rarely have to explicitly type objects, with the strong
type-safety of the Scala compiler that will infer and check the types
of every expression and API call. This means less time spent debugging
weird code bugs and misspellings, and higher quality code right out of
the gate!
这似乎很有趣!但我的问题是:我怀疑直接调用JavaFX
从Scala给我同样的类型安全保证,通过ScalaFX调用JavaFX?我不知道.
4)无缝JavaFX / ScalaFX互操作性:
– 如果我直接从Scala调用JavaFX,那么我不用担心更多的互操作性问题,而不是通过ScalaFX调用JavaFX.
综上所述:
看来,第3点是唯一可以给我一些好处的
我在简单的项目中关心,但我不知道他们真正在谈论什么样的安全类型?
为什么通过ScalaFX调用JavaFX比直接从Scala调用类型安全?
如果我们使用ScalaFX而不是从Scala直接访问,我们可以获得什么样的附加类型的安全优势?我问这个是因为我不能想象什么样的额外的安全ScalaFX可以给?
所以,换句话说,我明白ScalaFX是一个很好的语法糖用于绑定,但它提供了更多的吗?如果我没有(非常好的)合成糖可以生活,我应该真的使用它吗?
有什么别的糖,这将使它值得使用这个包装层(ScalaFX)引入额外的复杂性(和错误的来源)?
请注意,我非常感谢ScalaFX的创作者的工作!我只是问这些问题才能做出更明智的决定.