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 ()
Последнее исправление: maxcom (всего исправлений: 3)

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

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

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

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

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

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

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

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

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

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

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

уже «Была продемонстрирована работа JavaFX на планшетах под управлением Windows, Android и iOS»
Java One — день второй

Karapuz ★★★★★
()

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.

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

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

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

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

anonymous
()
Ответ на: думаю не станет популярна... от anonymous

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

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

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

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

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

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

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

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

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

Karapuz ★★★★★
()

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

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

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

terminator
()

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

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

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

> я правильно понял, что тебе больше нравится сказать 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-схему.

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

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

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

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

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

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

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

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

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

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

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

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

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

> В чем тут сермяжная сущность - прийти в тему о 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/

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

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

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

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

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

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

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

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

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

www_linux_org_ru ★★★★★
()

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

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

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

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

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