LINUX.ORG.RU
 
Kuka

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.

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


[#]  
los_nikos

> Developer Preview под Mac OS и альфа версия под Linux. Стабильная Linux версия ожидается в 2012.

странно, зачем это подтвердил ЛОР

***** ()
[#] Ответ на: комментарий от general_ochevidnost 04.10.2011 18:07:53  

Нет. В ведроиде этой штуки нет. А оракл на ведроид наезжает из-за другой штуковины: у Ларри как всегда желание урвать бабла халявно, вот и решил, что можно наехать.

**** ()
[#] Ответ на: комментарий от anonymous 04.10.2011 19:53:38  

А Moonlight не рипнуулся?

**** ()
[#]  
ovk48

> почетное место в катафалке занимает Visage - мертвый наследник FXScript

fixed.

* ()
[#] Ответ на: комментарий от Quasar 05.10.2011 11:02:02  
general_ochevidnost

я имел ввиду что выглядит так что эту штуку можно развить в ведроид при достаточных амбициях.

()
[#] Ответ на: комментарий от anonymous 04.10.2011 15:15:41  
ovk48

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

Ну между прочим некий товарищ Adam Bien утверждает, что "Because JavaFX's small footprint it is going to be used as base for embedded devices as well".

* ()
[#] Ответ на: комментарий от ovk48 05.10.2011 11:29:07  

>Adam Bien утверждает, что "Because JavaFX's small footprint it is going to be used as base for embedded devices as well".

уже "Была продемонстрирована работа JavaFX на планшетах под управлением Windows, Android и iOS"
www.linux.org.ru/news/java/6831821

**** ()
[#]  
eros2

http://javafx.com/roadmap/#4

> JavaFX will be officially tested and supported on Ubuntu — the most popular Linux distribution on desktop PCs — but is expected to run 'as is' with other Linux distributions. JavaFX for Linux is planned for release in the end of 2012.

Ура, бубунта, а то выкладывают джаву в рпм-ах, для кого спрашивается?

()
[#] Ответ на: комментарий от note173 04.10.2011 7:16:40  

думаю не станет популярна...

>А разработчики могут и под windows писать, какая разница. Разница в том, что подовляющие большинство хороших разработчиков работают под linux.

anonymous ()
[#] Ответ на: думаю не станет популярна... от anonymous 05.10.2011 16:03:02  

>Разница в том, что подовляющие большинство хороших разработчиков работают под linux.

под маком, если уж на то пошло...

**** ()
[#] Ответ на: комментарий от note173 05.10.2011 16:07:42  

> Хорошие разработчики используют подходящую систему, а не удобную им лично.
Не путайте систему под которой будет работать разрабатываемое приложение и систему на которой идет разработка.

*** ()
[#] Ответ на: комментарий от wxw 05.10.2011 8:18:26  

Во первых-пример старый,джаваскрипты нерабочие.
Во вторых javaFX обратно не совместим,т.е. рабочая программа на 1.2 не будет работать на 1.3 ,как и 1.3 на 2.0 (т.е. переписав программу в соответствии с новыми изменениями и скомпиляв ее-будет работать(код там есть))
В третих-все приложения javafx обязательно подписываются(с версии 1.3),там сертификат на пол года(максимум кажись),т.е. через пол года аплет перед запуском будет спрашивать-разрешить/нет запуск...но перед вызовом вопроса-аплет запускается,дает исключение(непомню как оно завется),потом идет вопрос(со своим исключанием),т.е. очевидно что 99% программ не отрабатывают исключение (что сертефикат истек),половина из них вывалится сразу,еще до вопроса,другая половина-проигнорирует исключение и будет пытаться работать дальше-что невозможно(исключения будут падать на этапе отрисовки элементов)...

anonymous ()
[#] Ответ на: комментарий от anonymous 05.10.2011 16:49:53  

>В третих-все приложения javafx обязательно подписываются(с версии 1.3),там сертификат на пол года(максимум кажись),т.е. через пол года аплет перед запуском будет спрашивать-разрешить/нет запуск...

пруф или не было

**** ()
[#]  

Не успеваешь скачать и поиграться с дико глючащими примерами, а здесь уже подходит к концу тематический срач... Лор - торт!

anonymous ()
[#]  

Какое отношение к Linux имеет версия, для Linux несуществующая?

()
[#] Ответ на: комментарий от terminator 06.10.2011 2:45:17  

Да ещё и оказывается, что даже старые версии — исключительно x32, а о x64 можно даже и не мечтать.

()
[#]  

>базирующийся

Базируются военные, а технологии основываются.

()
[#] Ответ на: комментарий от www_linux_org_ru 05.10.2011 7:29:42  
Kuka

> я правильно понял, что тебе больше нравится сказать 20 раз префикс svg, чем один раз сказать inlude_svg?

Мне нравится, когда есть и директива "include SVG", и возможность внедрения. Так сделано, например, в XHTML/HTML5. Можно сделать <img src="image.svg"/>, а можно, за счет использования пространств имен, внедрить SVG прямо в HTML. Вы не догадываетесь, зачем это сделано, и какие преимущества имеет второй вариант? Подумайте. Пускай это станет вашим домашним заданием.

Вообще, удивляюсь и сочувствую, насколько у вас бедная фантазия как у разработчика. (Впрочем, надеюсь, что с фантазией у вас все в порядке, и дело лишь в скудости опыта.) Иначе вы бы сразу придумали десятки применений пространствам имен в XML. Например, вы можете задать сложную графическую картинку, в которой некоторые элементы должны быть активными, то есть отзываться на движения мыши. Или вообще жить своей жизнью. Вы вводите свой атрибут в приватном пространстве имен, при помощи которого и задаете все эти тонкости. При этом XML остается легитимным, валидным и соответствующим схеме (в данном случае - схемам). Вы можете использовать свой layout manager, и управлять его поведением при помощи кастомных атрибутов; такой механизм использует, например, MigPane. Итак, в самых общих словах: namespaces - это расширение семантики данных, при сохранении свойств well-formed и schema valid.

>> XPath

> даааа, и для этого совершенно обязательно выдумывать новый язык!

> навигацию по нему можно делать стандартными языковыми средствами


Скажите, почему же тогда возникают проекты типа JXPath, OGNL? Хорошо, пускай вы утверждаете следующее:

> конечно, говноязыки типа явы не позволяют определять свои операторы


...но есть же Scala, где операторы можно определять. И вы предлагаете создать Scala DSL для навигации по XML DOM? При условии того, что уже давно существуют зрелые, стабильные реализации XPath?

> internal DSL намного лучше, чем новый язык


Скажите, вам никто еще не говорил, что у вас DSL головного мозга?

> я правильно понимаю, что ты хочешь нас заставить поддерживать отдельно от основной ООП-программы правила валидации? в то время как на порядки проще проводить валидацию уже имеющимся кодом


Я никого не хочу ничему заставлять. Валидация по схеме и валидация программная должны дополнять друг друга. Нет смысла программно валидировать структурные свойства, такие как mandatory element, или element multiplicity, или соответствие простым паттернам. С этим гораздо лучше справится парсер, имеющий в своем распоряжении XML-схему.

** ()
[#] Ответ на: комментарий от www_linux_org_ru 05.10.2011 7:29:42  
Kuka

Вообще, батенька, каков смысл вашего этого махания кулаками и брызганья слюной? В чем тут сермяжная сущность - прийти в тему о JavaFX, прицепиться к упоминанию XML и произвести подрыв бочки с дерьмом?

XML - говно и не нужен!
Namespaces - не нужны, будем инклюдить все подряд!
XPath - не нужен, будем замусоривать язык костыльной, слабоспецифицированной, бажной, медленной реализацией половины XSLT!
DTD и XSD - не нужно, будем все валидировать программно!

Мне кажется, вы в пылу дискуссии забыли о ее предмете - JavaFX. XML не рассматривается здесь как самостоятельное явление (да, в абсолютном контексте он не лишен недостатков), но лишь, подчеркиваю, как механизм для декларативного задания пользовательских интерфейсов и векторной графики. В этом контексте вышеперечисленные механизмы имеют несомненные преимущества, как было показано выше. Вы заявляете, что есть механизмы более эффективные и изящные? Так озвучьте же их! Что вы предлагаете в качестве более правильной альтернативы FXML? Вы не стесняйтесь, выкладывайте.

А то, знаете ли, на пустобреха смахиваете.

** ()
[#] Ответ на: комментарий от Quasar 05.10.2011 9:41:04  
Kuka

> То есть Java сама по себе с этой задачей не справляется, из-за чего и приходится городить костыли?

Отчего же. Справляется, и очень неплохо. Но всегда есть возможность сделать еще лучше. К тому же, на дворе XXI век, и в Oracle понимают, что нужны новые технологии и новые подходы. Именно поэтому Java нисколько не рискует превратиться в Delphi своего времени.

** ()
[#] Ответ на: комментарий от ovk48 05.10.2011 11:05:44  
Kuka

Батенька, вы бы почаще заглядывали в ленту активности проекта Visage. Коммиты там происходят значительно чаще, чем вы думаете.

** ()
[#] Ответ на: комментарий от Kuka 06.10.2011 3:18:09  
dr_dobermann

Все ждал, вдруг кто спросит, но не дождался. Kuka, а что вы преподаете? И где? (если где не секрет).

()
[#] Ответ на: комментарий от Kuka 06.10.2011 3:16:19  
www_linux_org_ru

> В чем тут сермяжная сущность - прийти в тему о JavaFX, прицепиться к упоминанию XML и произвести подрыв бочки с дерьмом?

добро пожаловать на лор!

> XML - говно и не нужен! Namespaces - не нужны, будем инклюдить все подряд! XPath - не нужен, будем замусоривать язык костыльной, слабоспецифицированной, бажной, медленной реализацией половины XSLT! DTD и XSD - не нужно, будем все валидировать программно!

я утверждал совсем не это; на будущее — не включай больше бредогенератор

> Что вы предлагаете в качестве более правильной альтернативы FXML? Вы не стесняйтесь, выкладывайте. А то, знаете ли, на пустобреха смахиваете.

сюрприз!

чтобы не быть пустобрехом, мне вовсе не обязательно выкладывать какие-то альтернивы чему-то — мне достаточно находить пустые баззворды и несоответствия реальности в твоих постах

на самом деле, конечно, у меня есть мнения по всей линейке "язык программирования / язык разметки / система контроля версий / ide"

я их полностью выложу когда сочту нужным

а пока продолжим обсуждать твои заявления (тем более, что на мои идеи ты пока не высказал ничего более разумного, чем пустое "Скажите, вам никто еще не говорил, что у вас DSL головного мозга?")

кстати, я не совсем Ъ и глянул-таки на спецификацию fxml

1. ты всерьез называешь декларативным язык, в который включены куски кода?

<Button text="Click Me!" onAction="java.lang.System.out.println('You clicked me!');"/>

2. ты всерьез ведешь разговор о xml-валидации fxml формата? как ты будешь валидировать вышеприведеный пример?

3. вот эта хрень:

<fx:define><ToggleGroup fx:id="myToggleGroup"/></fx:define>

...

<RadioButton text="A" toggleGroup="$myToggleGroup"/>

из-за лишнего знака доллара не похожа на xml ref  — и ты рассказываешь тут про стандарты?

(я, конечно, мог пропустить соответствующий высер w3c в его общем поносе стандартизации, и если это все же xml ref, то исправления принимаю)

З.Ы. примеры брались из пдф-ки вот отсюда: http://fxexperience.com/2011/07/introducing-fxml/

**** ()
[#] Ответ на: комментарий от Kuka 06.10.2011 3:17:31  
www_linux_org_ru

> К тому же, на дворе XXI век, и в Oracle понимают, что нужны новые технологии и новые подходы.

это слова какого-то маркетоида, а вовсе не преподавателя

чувак, ты на оракл евангелистом работаешь?

З.Ы. мое мнение — для java fx из имеющегося говноспектра говноязыков выбрали не самое плохое, а возможно даже и самое хорошое под их условия; но тот (ненавистный мне) hype, который сопровождал сан и который, похоже, перешел по наследству ораклу, плюс твои подозрительно восторженные реплики явно требуют взывать все те бочки с говном, что производит мой заводик :-)

**** ()
[#] Ответ на: комментарий от Kuka 06.10.2011 3:12:28  
www_linux_org_ru

> Вообще, удивляюсь и сочувствую, насколько у вас бедная фантазия как у разработчика.

на весь этот твой пост тоже будет ответ

З.Ы. на всякий случай — я не лиспер

**** ()
[#]  

AdamBien Adam Bien
#JavaFX is going to be COMPLETELY open source and it will be proposed to the JCP.

**** ()
[#] Ответ на: комментарий от dave 04.10.2011 16:12:49  
annulen

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

А с Gtk LaF и на линуксе

** ()