Pull to refresh

Comments 20

Спасибо, очень интересно. Уже некоторое время интересуюсь JavaFX, в планах статья про использование JavaFX из Scala, а вот WebView не удалось пока пощупать.

Я заметил у вас на скринах, что вы уже используете Java 8. Как ощущения от новой версии языка? Не страшно его использовать? Релиз ещё через почти через полгода. Хотя сейчас, наверное, там API уже не должен сильно меняться.
Особых проблем с Java 8 не обнаружили. Лямбда выражения очень нравятся. IDEA, которую мы используем отлично поддерживает синтаксис Java 8. Плюс в IDEA есть инструменты миграции. Но как упоминалось в статье, мы в основном пишем на Groovy и потестировали новую Java мы «по диагонали». Java 8 пользуемся так как JavaFX свежая требует только ее.
Из минусов — пришлось включить в поставку JRE, чтобы не озадачивать пользователей. Плюсы — новый GPU рендеринг графики, новая javafx и нет проблем с permgen.
Ясно. Очень здорово, везёт вам) у нас же матёрый энтерпрайз — кое-где ещё 1.5 используется(
А почему вы выбрали именно Groovy, а не, например, Scala или Clojure? Из-за схожести с Java синтаксисом?
> Из-за схожести с Java синтаксисом?
именно так. Мы используем Java+Groovy. Где нужен больший контроль и прозводительность — Java.
Нам было бы трудно прыгать туда-сюда. Плюс так сложилось исторически. Смотрели на другие языки JVM, но решили не дергаться.
Ну еще фактор, что я эксперт по Груви, и настоял :)
Еще есть схожий подход — пускать локальный вебсервер, логику реализовывать на php/perl/python/java, GUI на привычных js+html в окне браузера. Получаем кросс-платформенный продукт работающий на windows, mac, linux.

Чтобы не тревожить файрволы на винде, есть специальные браузеры (на основе firefox) и веб-серверы которые общаются друг с другом не через TCP а через named pipes, например этот stunnix.com/prod/aws/overview.shtml
Именно так мы и поступили. Сначала долго писали на свинге. Потом тыркнулись в JavaFX 1.3 для написания игр. Это было ошибкой — Oracle оставила эту ветку без поддержки и выпилила JFX Script, не дав даже элементарного конвертера. JFX 2.x позиционировался как Swing 2.0 и новое поколение UI для java. Прикрутили новый графический композитный toolkit (prism), который долго пиарили: типа акселерация и все дела. Реально же скроллы ворочаются также медленно как и раньше. Плюс совершенно уродский лукандфил у контролов.
Вобщем, мы радикально поменяли стратегию и попробовали Embedded Jetty + GWT + SmartGWT + IE ActiveX. Результаты превзошли ожидания! Сейчас пробуем Jetty + Vaadin + Chromium Embedded.

P.S. я реально не вижу преимуществ у JavaFX перед уже существующими веб-технологиями. Кроме того, вполне возможно, что при низкой востребованности Oracle примет очередное решение, выпилив его обратно из Java, как это произошло с 1.3.
Если вам элегантный вид контролов JavaFX кажется уродским, то боюсь, это скорее особенность вашего персонального эстетического вкуса. Уж не говоря про то, как легко JavaFX контролы стилизуются под ваши нужды средствами CSS/FXML. Да и сторонние LaF уже появляются. Вот, к примеру, modena. Modena будет вторым стандартным стилем который будет в JavaFX 8. Помимо уже известного caspian.

В любом случае, костыльный подход, основанный на локальном веб-сервере (да ещё и c непереносимыми никуда Active-X) и программирование десктоп приложения опираясь на несколько веб слоёв, которые ещё надо интегрировать с бизнес-логикой, имеет смысл только если у вас куча HTML/Javascript программистов и они тотально не способны обучиться писать на Java.
На заметку: юзал SmartGWT и ExtGWT (GXT). Второй (IMO)- на порядок структурирование и логичнее (правда платный).
Скажите а какой на сегодня статус у JavaFX? Я год назад им заинтересовался но вроде бы тогда народ поговаривал что не все в нем так стабильно как хотелось. Как с этим дела обстоят сейчас?
Могу ошибаться, но такой же как у Java 8. Статус бета.
Релиз через полгода. По слухам начало 2014.
Что не по мешало нам использовать JavaFX в релизе :)
1. Есть глюки с рендерингом GPU на Win — когда компьютер уходит в hibernate то будет черное окно. Воспроизводится не везде — на отдельных видиокартах.
2. Кое где вылезали глюки с лайаутом Menu. 3. Как писал вызовы из JS нужно было оборачивать runLater() хотя до этого все работало без таких оберток.
Но это мелкие баги. В основном все работает очень стабильно.
JavaFX давным давно не бета. Уже не первый год. Были версии JavaFX 2.0, JavaFX 2.1, JavaFX 2.2.
Просто сейчас она ещё не часть рантайма и ставится отдельно. Начиная с Java 8 она будет называться JavaFX 8 и станет частью стандартного Java рантайма (JRE) как swing.
Часть рантайма уже сейчас. По крайней мере свежие версии Oracle JDK 7 поставляются вместе с JavaFX 2.2.
М-м-м… Вроде она уже по умолчанию есть часть Oracle Java SE platform. Но чисто в голый JRE пока не входит.
Ну в JRE от оракла входит вроде как. А вот в OpenJDK, например, не входит, к сожалению. Про другие VM вообще без понятия.
Попытался найти когда включили в JRE. Действительно, вроде как начиная с Java 7u6 она стала уже полноценно включаться в JRE.
Sign up to leave a comment.