Я пытаюсь реализовать простой организатор заметок с некоторыми функциями отображения разума с использованием JavaFX и Scala.
Я пытаюсь решить, следует ли мне вызывать код JavaFX непосредственно из Scala или через ScalaFX? Я не знаю, стоит ли изучать ScalaFX и не проще ли просто вызвать JavaFX из кода Scala?
Официальный сайт ScalaFX упоминает 4 преимущества ScalaFX:
1) Признаки привязки естественного языка
-Это приятно, но я на самом деле не планирую использовать привязки (я намерен использовать EventBus для событий меж-gui-component и несколько привязок для событий внутри gui-component).
2) Синтаксис адаптированной анимации
-Я не планирую использовать анимации в своем проекте.
3) Полнотекстовые API-интерфейсы
Это может показаться незначительным моментом... Тип безопасности - это что-то что разработчики Java всегда (и часто воспринимают как должное), и разработчики на других языках сценариев живут без (и неосознанно в результате возникают ошибки времени выполнения). Однако это критический если вы разрабатываете приложения, которые не могут иметь неожиданных ошибки времени выполнения и ошибки после развертывания.
Хороший компилятор сможет забрать многие распространенные ошибки кодирования через сравнение ожидаемых и актуальных типов и отличный компилятор (например, Scala) автоматически выведет типы для вас, чтобы у вас не было чтобы повторить их во всем коде.
ScalaFX получает лучшее из обоих миров с синтаксисом DSL, подобным сценарию где вам редко приходится явно вводить объекты, с сильным тип-безопасности компилятора Scala, который выдает и проверяет типы каждого выражения и вызова API. Это означает, что требуется меньше времени на отладку странные ошибки кода и орфографические ошибки, а также более качественный код прямо из ворота!
-Это кажется интересным! Но мой вопрос: я подозреваю, что вызов JavaFX напрямую от Scala дает мне гарантии безопасности того же типа, что и вызов JavaFX через ScalaFX, или нет? Я не знаю.
4) Полная совместимость с JavaFX/ScalaFX:
-Если я вызываю JavaFX непосредственно из Scala, тогда мне больше не нужно больше беспокоиться о проблемах взаимодействия, чем при вызове JavaFX через ScalaFX.
Вкратце:
Кажется, что точка 3 является единственной, которая может принести мне некоторую выгоду что меня волнует в моем простом проекте, но я просто не знаю, о какой типе безопасности они действительно говорят?
Почему лучше использовать JavaFX через ScalaFX, чем непосредственно из Scala в отношении безопасности типов? Какие дополнительные преимущества в плане безопасности мы получаем, если мы используем ScalaFX вместо прямого доступа из Scala? Я спрашиваю об этом, потому что я не могу себе представить, какая дополнительная безопасность ScalaFX может дать?
Итак, другими словами, я понимаю, что ScalaFX - хороший синтаксический сахар для привязок, но он предлагает больше, чем? Должен ли я действительно использовать его, если я могу жить без (очень приятного) синтаксического сахара, который он дает?
Есть ли что-то еще, чем сахар, который бы стоил использовать этот оберточный слой (ScalaFX), который вводит дополнительную сложность (и источник ошибок)?
Обратите внимание, что я очень ценю работу создателей ScalaFX! Я только задаю эти вопросы, чтобы иметь возможность принять более обоснованное решение.