LINUX.ORG.RU

JavaFX 2.0

 , , , , , ,


0

3

После разработки, длившейся больше года, вышла вторая версия платформы для создания интернет-приложений JavaFX. Эта технология имеет давнишнюю историю: будучи созданной в 2007 году под названием «F3», успела претерпеть несколько релизов, а также поменять название и хозяев. Сегодняшний JavaFX - достойный ответ Oracle таким технологиям как Adobe AIR и Microsoft Silverlight. Это подразумевает быструю и эффективную 2D- и 3D-графику, использующую аппаратное ускорение; векторную анимацию, построенную на принципах keyframe и tweening; эргономичный набор виджетов; запуск как в браузере, так и через Java Web Start; возможность инсталляции в качестве desktop-приложения; возможность использовать современные мощные языки программирования.

Ключевым моментом версии 2.0 является то, что вся функциональность JavaFX доступна теперь в виде обычных Java API. Если раньше единственным языком для JavaFX являлся FXScript, то теперь платформа JavaFX открыта для всего спектра JVM-языков: Java, Scala, Groovy, JRuby, Jython, Clojure, Mirah, Fantom и другие; почетное место в списке занимает Visage - достойный наследник FXScript. Авторы JavaFX надеются, что этим списком будут удовлетворены сторонники даже самых экзотических тенденций в программировании. Остальные важные моменты релиза 2.0 вкратце перечислены ниже; подробнее ознакомиться с ними можно по ссылке.

  • FXML - новый гибкий формат декларативного описания интерфейсов и векторной графики, поддерживающий встраивание сценариев на вышеперечисленных языках. Этот основывающийся на XML формат призван заменить JSON-подобный FXD;
  • Prism - новая графическая подсистема для современных GPU, дающая многократный прирост производительности графики;
  • Новая, базирующаяся на GStreamer, медиа-подсистема. Поддерживаются VP6, MP3, эквализация и воспроизведение с малой задержкой (low latency);
  • Более 50 готовых компонентов для создания пользовательских интерфейсов, включая различные элементы форм, layout-менеджеры, графики и диаграммы. Поддерживается CSS3 для задания стилей;
  • Встроенный веб-компонент, базирующийся на WebKit и поддерживающий HTML и JavaScript, а также манипуляцию DOM-моделью;
  • Переработанный Java plugin, поддерживающий Prism и реализующий предзагрузку (preloading);
  • Новая архитектура и реализация объектных свойств;
  • Переработанная и оптимизированная подсистема анимации.

О выходе JavaFX 2.0 было объявлено вчера на конференции JavaOne'2011 в Сан-Франциско. Разработчики пообещали в скором времени открыть исходные тексты всей платформы JavaFX в рамках проекта OpenJDK. Помимо этого, были озвучены небезынтересные идеи касательно будущей Java 9, такие как реификация, оптимизация хвостовых вызовов, продолжения (continuations) и метаобъектный протокол (MOP).

В данный момент доступна стабильная версия под Windows, Developer Preview под Mac OS и альфа версия под Linux. Стабильная Linux версия ожидается в 2012.

>>> Подробности

★★

Проверено: maxcom ()

От себя отмечу, что большое количество разработчиков считает Scala наиболее перспективным ЯП для JavaFX, и называют их «идеальной парой». SteveOnJava анонсировал свой новый проект ScalaFX - Scala DSL для декларативного задания GUI, графики и анимации. В кулуарах также было сказано, что JavaFX сейчас позиционируется создателями как клиентская технология для enterprise-приложений, а не только как мультимедиа-платформа.

Всем, кто волнуется за судьбу Java-продуктов в Oracle - отбросьте сомнения :) наследие Sun находится в надежных руках, оракловцы ребята дельные и работящие. Многие из них просто обаятельные, общительные и очень остроумные. Фриско - волшебный город, мечтал побывать в нем со времен своей хиппарской молодости :)

Kuka ★★ ()

Да, вот еще забыл. Попутно вышла первая бета «официального JavaFX IDE» - NetBeans 7.1. Разумеется, с поддержкой JavaFX 2.0. Еще пообещали новый визуальный отладчик, полную поддержку CDI в редакторе, CSS3 с комплишеном и интегрированный Git.

Kuka ★★ ()
Ответ на: комментарий от Kuka

>CSS3 с комплишеном и интегрированный Git

good news everyone!

thesame ★★★★ ()

>The Linux version of JavaFX 2.0 will follow, with a General Availability expected in the second half of 2012.

Вот тогда и подтвердят.

thesame ★★★★ ()

ТСа на костер.

lynx -dump "http://javafx.com/downloads/all.jsp" | grep -i linux || echo Это что за покемон\?

И вообще, с таким отношением нужность сей поделки сомнительна.

baverman ★★★ ()
Ответ на: комментарий от baverman

Когда (если) эта технология станет популярна, уже появится и линукс версия. А разработчики могут и под windows писать, какая разница.

note173 ★★★★★ ()
Ответ на: комментарий от note173

уже появится и линукс версия

Настораживает эпичность костылей, при помощи которых обеспечивается кроссплатформенность. Это до добра не доведет.

baverman ★★★ ()

а правильно я понимаю что сейчас есть версия только под Windows?

maxcom ★★★★★ ()
Ответ на: комментарий от maxcom

Под мак есть, только бета и нужна регистрация на Oracle.com

note173 ★★★★★ ()

Что делают закрытые виндовые версии на ЛОР-е?

cab ★★★★ ()

>Linux версия ожидается в 2012.

ну значит в 2012 и попробуем

bender ★★★★★ ()

А я почему-то думал, что оно умерло.

Cancellor ★★★★☆ ()

Жаль, что свинг не развивают.

dave ★★★★★ ()

Почему так мало видео кодеков? Можно ли будет использовать другие?

UnnamedUA ()

мининовость?Тут глобальные изменения,это не мининовость.

Давно ждали,посмотрим насколько криво в этот раз(версия 1.3 была на уровне любительских поделок,ужасное кол-во недоработок.)

anonymous ()
Ответ на: комментарий от UnnamedUA

Оно жрет как трактор,и памяти и процессора...какой arm...

anonymous ()
Ответ на: комментарий от baverman

Подробнее опишешь,ибо ты сказал бред.

«Костыли»-там на уровне шаблонов в виде классов,практически без бинарных зависимостей(все бинарные зависимости входят в спецификации java)

anonymous ()

>Новая, базирующаяся на GStreamer,

а как же семерочка максимальная?

эквализация

надмозги...

и воспроизведение с малой задержкой (low latency);

... и неадекваты в треде.

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

>Оно жрет как трактор,и памяти и процессора...какой arm...

перекрасно. доказано андроедом.

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

>Оно жрет как трактор,и памяти и процессора...какой arm...

да в легкую, скоро будет версия под ARM

Тем более ты видел ARMы? 96 ядер, 52 GFlops-а, любое javaFX перемелет

Karapuz ★★★★★ ()

Прекратите откапывать, лопаты затупились…

Deleted ()
Ответ на: комментарий от Deleted

Ты давай, покажи нам gui тулкит, который работает на всех платформах, на винтел, на винфоне 7, на иос, на андроеде, на ....

Karapuz ★★★★★ ()
Ответ на: комментарий от Karapuz

>gui тулкит

Java


Ржали всем шредером.

Deleted ()
Ответ на: комментарий от AVL2

>>андроедом Ссылку на википедию javaFX давать,или сам понял что бред сказал?

anonymous ()
Ответ на: комментарий от Karapuz

Такого добра навалом,даже прекрасные поделия на Си имеются.(конечно исключая винь-фонь,ибо там .net)

anonymous ()
Ответ на: комментарий от anonymous

Подробнее опишешь,ибо ты сказал бред.

С удовольствием выслушаю твою версию полугодовалой задержки релиза под линукс.

baverman ★★★ ()
Ответ на: комментарий от maxcom

> а правильно я понимаю что сейчас есть версия только под Windows?

С версиями под разные ОС ситуация такая. Под Windows доступен _stable_ релиз, иначе бы эта версия не называлась JavaFX 2.0 GA (General Availability). Статус «Developer preview» относится только к макинтошной версии - так что правка к новости была не совсем точной.

Что касается линуксовой версии: она уже существует, со времени альфа-релиза JavaFX 2.0 этой весной - уже тогда ее можно было свободно скачать. Другое дело, что ее решили не включать в 2.0 GA, по различным соображениям, техническим и не очень. В личной беседе разработчики поведали мне, что Linux-версия рантайма и SDK будет включена в ближайший апдейт (что-то типа 2.0.1), который выйдет до конца этого года. Так что инфа о 2012 - скорее всего, либо не обновленная, либо являющаяся следствием опечатки. Предлагаю нейтральный вариант: «Linux-версия ожидается в ближайшее время».

В любом случае, я считаю значимым событием открытие исходных текстов такой фундаментальной технологии, пусть пока что только в виде декларации о намерениях.

Kuka ★★ ()
Ответ на: комментарий от dave

Жаль, что свинг не развивают.

Ты явно пошутил. Swing по архитектуре была не очень-то живорождённым. Писать попиксельное рисование элементов на жаве было явно оптимизмом по отношению к быстродействию жавы. Да и вообще попиксельно обрабатывать это всё неверно.

Casus ★★★★★ ()
Ответ на: комментарий от AVL2

>> Новая, базирующаяся на GStreamer,

а как же семерочка максимальная?


Скажите, вы знакомы с технологией GStreamer? Подозреваю, что слабо.

эквализация

надмозги...


Скажите, вы знакомы с профессиональной терминологией в области звукозаписи и обработки аудио? Подозреваю, что не очень...

и воспроизведение с малой задержкой (low latency);

... и неадекваты в треде.


...и мои подозрения оправдываются.

Kuka ★★ ()

Этот основывающийся на XML формат призван заменить JSON-подобный FXD

В чём соль замены JSON на «банальный» XML?

Casus ★★★★★ ()
Ответ на: комментарий от dave

> Жаль, что свинг не развивают.

В сообществе уже не первый день циркулируют идеи о том, что JavaFX - это «Swing done right», а также «Swing 2.0». Если что, между ними сохраняется полная (в обе стороны) интероперабельность.

Kuka ★★ ()
Ответ на: комментарий от Casus

>>В чём соль замены JSON на «банальный» XML?
А куда девать мегабиты?Все ради прогресса.

anonymous ()
Ответ на: комментарий от Casus

> Ты явно пошутил. Swing по архитектуре была не очень-то живорождённым. Писать попиксельное рисование элементов на жаве было явно оптимизмом по отношению к быстродействию жавы. Да и вообще попиксельно обрабатывать это всё неверно.

Я не считаю, что ява медленная или что Java2D медленный. Напротив. Скорее, свинг медленный потому, что таковы его алгоритмы. Есть понятие сложности или трудности алгоритма. Товарищи явно где-то переборщили со сложностью в математическом понимании этого слова. Алгоритмы оказались слабоваты.

Свинг же хорош тем, что неплохо выглядит на винде, где и так разброд и шатание во внешнем виде приложений, а также худо-бедно выглядит на маках. При условии, что используется нативный look&feel. Выглядит похоже на нативные приложения. Для меня это важно. Представленный же JavaFX не является таким. Он не похож на нативный ГУИ.

dave ★★★★★ ()
Ответ на: комментарий от baverman

Кол-вом пользователей линукс версии javaFX.
Т.е. стоят приоритеты-вин вресия->мак версия->линукс версия.
А отличия линукс версии от вин версии(не гоовря о бинарных библиотеках)-минимальны (от глобальных переменных,до локальных путей и костылей-в винде тотже flush(udp) обязателен,а в линуксе он ненужен)

anonymous ()
Ответ на: комментарий от dave

>Он не похож на нативный ГУИ.

Дался вам нативный гуй. под виндой у меня установленные проги имеют свой, неповторимый гуй, так что «нативный гуй» был только во времена Win95

Karapuz ★★★★★ ()
Ответ на: комментарий от anonymous

Бред в исполнении анона, перефразирую:

Проблемы со сборкой линуксовой версии связаны с «Кол-вом пользователей линукс», и не связаны с проблемами технического характера.

baverman ★★★ ()

Судя по примеру кода на странице Visage, он содран с QML.

anonymous ()
Ответ на: комментарий от Casus

> В чём соль замены JSON на «банальный» XML?

Лично мое мнение - расширяемость за счет namespaces, несколько бОльшая выразительность, более зрелая технология, обкатанные десятилетиями механизмы разбора/генерации/интеграции в инструменты.

Если говорить сухим техническим языком, то бенефиты XML перед JSON таковы:
- валидация: DTD и XSD
- навигация: XPath
- трансформация: XSLT
- форматирование: XSL-FO
- запросы: XQuery
- модификация: XUpdate
- разбор: от легковесных pull-парсеров до мощных schema-aware процессоров
- безопасность: XML Security
- расширяемость: XML Namespaces

Видимо, разработчики со временем поняли, что выросли из тесных штанишек JSON. Одно только настораживает - отсутствие (пока что) инструментов для подготовки векторной графики в формате FXML. Для JavaFX 1.3 эту роль играл Production Suite - набор плагинов к Adobe Illustrator и Adobe Photoshop для экспорта в FXD.

Kuka ★★ ()
Ответ на: комментарий от anonymous

> А отличия линукс версии от вин версии(не гоовря о бинарных библиотеках)-минимальны

Это не так. Под Windows графический стек Prism использует DirectX, под Mac и Linux - OpenGL. (В случае недоступности аппаратного ускорения происходит fallback до Java2D.) Так что речь идет о кардинально отличающейся имплементации графического стека. Если уж и говорить о сходстве, то только между Mac- и Linux-версиями.

Kuka ★★ ()

>В данный момент доступна стабильная версия под Windows, Developer Preview под Mac OS.

Ну и зачем эта новость нужна на ЛОРе раньше, чем в 2012?

Solace ★★ ()

И зачем оно нужно? Оракл все равно не закопаеь флеш. Да и сейчас от таких фекалий стараются избавляться повсеместно.

Quasar ★★★★★ ()
Ответ на: комментарий от maxcom

> так лучше?

Да будет так, хотя, конечно, я надеюсь на выход Linux-версии в 2011 году, а не в 2012. Как только выйдет - напишу отдельно, мини-новостью. Спасибо, что эту сделали-таки «макси-новостью», все-таки не каждый месяц такое масштабное событие происходит.

Kuka ★★ ()

Как всегда не без ШГ?

anonymous ()
Ответ на: комментарий от Quasar

> И зачем оно нужно? Оракл все равно не закопаеь флеш.

Oracle не ставит перед JavaFX задачу «закопать флеш». JavaFX не предназначена для клепания свистопердящих анимированных баннеров и прочих масянь.

У JavaFX другие задачи: дать разработчикам современный и мощный инструмент для создания RIA.

Kuka ★★ ()
Ответ на: комментарий от dave

Напротив. Скорее, свинг медленный потому, что таковы его алгоритмы. Есть понятие сложности или трудности алгоритма.

Бла-бла-бла. Расскажи это мне. Во-первых, я знаком с алгоритмами, трудоёмкостью и пр. Во-вторых, я не всегда по документации мог понять как же этот Swing работает, поэтому все интересные места зачитал самостоятельно в исходниках. Могу сказать, что event-driven модель у него сделана правильно, а вот рисование «слишком гибко», и, как следствие, просто медленно. Дело не в «алгоритмах», а в архитектуре. Чтобы Swing сделать кардинально быстрее, всю его систему рисования виджетов надо переделать совсем.

Casus ★★★★★ ()
Ответ на: комментарий от Casus

> Писать попиксельное рисование элементов на жаве было явно оптимизмом по отношению к быстродействию жавы. Да и вообще попиксельно обрабатывать это всё неверно.

Вообще-то Java2D это только обертка над native кодом, который умеет рендерить через direct3d в Windows и openGL в Mac/Linux. Ничего там попиксельно на Java не обрабатывается.

kamre ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.