Статьи

Почему я должен инвестировать в изучение JavaFX?

Следующая презентация блога также доступна в аудио-виде AudioBoo: «Почему я должен инвестировать в изучение JavaFX?» ,

Какие функции хочет видеть ваш клиент или бизнес-аналитик в окончательной заявке?

Каковы цели вашего проекта?

Хотите ли вы приложение с более богатой графикой, например, расширенную поддержку 2D и медиа?

Если это так, то богатая инфраструктура интернет-приложений, вероятно, подходит вам лучше. Подойдет любой из JavaFX, SilverLight, Flex, затем вы должны углубиться в историю пользователя и возможности каждого из них.

Ваша пользовательская история ограничивает ваш проект стандартами HTML, в частности HTML 5?

Если это так, то выберите среду AJAX, Dojo, JQuery, Ext JS и соответствующую среду Java Web Application. Оттуда вы можете углубиться в технологию, которая лучше всего соответствует вашей пользовательской истории.

JavaFX, даже в своей версии 1.2, вероятно, на данный момент является лучшим способом построения Java-апплета, потому что я думаю, что это будущее клиентского пользовательского интерфейса Java. Намного проще быстрее создать интерфейс приложения в JavaFX из-за его декларативного кода природы и из-за того, что язык поддерживает связывание и триггеры.

Могу поспорить, что многие из вас имеют большой опыт работы с сервлетами Java, а некоторые из более ранних приложений основывались на API первого. Я считаю, что на данный момент JavaFX напоминает мне Struts 1.0 (около 2001 г.), поскольку, если вы будете участвовать сейчас, вы все еще впереди, а не через шесть месяцев, когда, возможно, все остальные подняться на борт. Другими словами, я верю, что FX станет значительно лучше, потому что сообщество, пишущее код и компоненты, а также разработчики Sun. Кроме того, платформа становится более стабильной с течением времени, стандартные API и концепции устанавливаются.

Самые большие различия между чувством обидчивости JavaFX и Struts заключаются в

  1. Огромный кодовая в JavaFX по сравнению с Struts 1.x .
  2. Ожидаемая продолжительность жизни и цели для JavaFX
  3. Среда исполнения FX не с открытым исходным кодом , но компилятор.

Давайте разберемся с этим по очереди.

Огромная кодовая база в JavaFX по сравнению со Struts 1.x

 Первоначальным источником вдохновения для FX был Кристофер Оливер, проект F3 еще в 2006, 2007 годах, когда мы изобрели интерпретатор под названием Form-Follows-Function. Он был разработчиком Swing, который хотел быстрее создавать графические интерфейсы. Поэтому он подумал о создании небольшого скриптового языка (очевидно) для ускорения разработки пользовательского интерфейса Java.

 Вот достойная статья http://research.sun.com/minds/2008-1202/

 Блог Криса Оливера http://blogs.sun.com/chrisoliver/

 Таким образом, этот простой интерпретатор, доказательство концепции, с гораздо меньшей кодовой базой, в конечном итоге стал средой исполнения JavaFX, статически типизированным языковым компилятором, графом сцены и многим другим. Результатом является взрыв размера всей кодовой базы, и, если вы читали книгу Фреда Брука, о том, как бросать программистов в проект. Ну, вы уже знаете ответ. Программное обеспечение занимает столько времени, сколько нужно, чтобы получить права и не раньше, чем это.

По сравнению с Struts 1.x поставлены менее высокие цели. Tomcat уже существовал в то время, и для его использования использовался стандартный API сервлетов. Вы можете не согласиться с общей аналогией и быть, как это возможно.

Ожидаемая продолжительность жизни и цели для JavaFX

Если вы собираетесь создать новое расширение платформы JVM, то для его разработки и создания потребуется время. Вы должны собрать немного, затем протестировать его, затем собрать его снова и затем протестировать снова. Каждый проект на планете страдает от этой реальности в сравнении с целями реализации, от Google Wave до JavaFX и ядра Linux. Просто так получилось, что Рим строили не за один день.

Я считаю, что высокие цели в JavaFX были / будут / будут:

  • Завершите оригинальное видение Криса Оливера, упростите написание приложений с графическим интерфейсом на JavaFX по сравнению с Java Swing.
  • Обновите технологию пользовательских интерфейсов Java на рабочем столе. График сцены в конечном итоге намного лучше, чем старомодный способ немедленного режима
    GraphicContext.paintEllipse( x, y, width, height );

Для сравнения, JavaFX требуется только компонент и контейнер, которые должны быть объявлены .

    Scene{
content: [
Ellipse {
centerX: 100 centerY: 100
radiusX: 50 radiusY: 25

fill: Color.YELLOW stroke: Color.BLUE strokeWidth: 3
}
]
}

  • Создание лучшего графа сцены на основе Java позволяет преобразовывать узлы: переводить, масштабировать, вращать с высокой производительностью.
  • Исправьте время выполнения Java-апплета и клиента веб-запуска

Переход от непосредственного режима к режиму узла графа сцены при проверке подразумевает снижение производительности, по крайней мере, из-за архитектуры разработки программного обеспечения, потому что это еще один уровень перенаправления между графическими примитивами, посылаемыми в графический процессор. В конечном счете, Sun должна решить проблему отрисовки 10000 узлов (в будущих приложениях) на рабочем столе. Подберите любую книгу по компьютерной графике (написанную как Фоли, МакГрегор и Уоттс), и вы увидите алгоритмы, такие как Сазерленд Клиппинг и Z-порядок сортировки. Тогда нужно читать книги по аппаратному ускорению и более сложные книги, чтобы понять, как программировать инструкции Direct X и Open GL GPU. Это часть времени выполнения платформы JavaFX, которая также приносит пользу обычному Java-разработчику, потому что улучшение производительности 2D в конечном итоге приносит пользу обоим.

  • Выдвиньте компилятор так, чтобы значительно оптимизировать JVM

Тогда есть компилятор языка FX. Текущая ссылка на язык JavaFX весьма отличается от оригинального интерпретатора F3 Криса Оливера. Вы обнаружите, что Брайан Гетц , автор Java Concurrency and Practice, работает вместе с Per Bothner , мастером языкового компилятора, чтобы заставить компилятор делать хорошие вещи. Компилятор теперь производит достаточно приличный байтовый код, который может сделать остальное в Sun JRE.

FX Runtime не с открытым исходным кодом, но по крайней мере компилятор

До мая 2008 года среда исполнения была с открытым исходным кодом. Я думаю, что проект графа сцены был также с открытым исходным кодом, в какой-то момент. Около 15 месяцев назад (май 2008 года) было принято исполнительное решение вернуть обратно среду выполнения. Развитие сообщества за пределами Солнца были исключены видеть изменения .

С одной стороны, это достаточно справедливо. Это означает, что Sun может создавать графики выполнения и сцены быстрее и без помех. Это никого не должно огорчать. Ведь это их бизнес, и компаниям разрешено разрабатывать программное обеспечение с закрытыми исходными кодами. Google сделал это с Android и делает это с Wave , пока они не решат, что он готов к выпуску . Этот шаг не был незаконным. Удивительно, что ранние изменения в доступе полностью исчезли.

С другой стороны, решение не выпускать часто или давать четкие указания о том, что происходит с определенными проектными решениями, на мой взгляд, немного повредило проекту и сообществу JavaFX. Например, я хотел получить руководство по проектированию компонентов и попросил об этом, но никто из Sun не смог его предоставить. Поэтому многие разработчики споткнулись, пытаясь создать свои собственные компоненты. Мы потратили много времени, экспериментируя с выпущенными или открытыми частями платформ JavaFX. Очевидно, что компоненты — это те элементы графического интерфейса, которые необходимы сейчас, если Sun Microsystems хочет конкурировать с Flex и SilverLight на рынках. Для меня не имело смысла предоставлять только мимолетную поддержку тем ранним последователям JavaFX.

Имея все это в виду, я понимаю, что составление графика времени выполнения, компилятора и графа сцены и все это работает на настольных, мобильных (и не говоря уже о телевизионных платформах) профилях с трудом переворачивается. Я считаю, что Sun нуждается в большей открытости в общем дизайне, и им нужно больше вовлекать сообщество.

 

Примеры работы сообщества пользователей

Если вы хотите увидеть больше компонентов, добавленных пользователями, взгляните на мои примеры Nelson Framework ( http://www.jroller.com/peter_pilgrim/entry/the_nelson_framework ). (Это пример FX 1.1, и в настоящее время я перерабатываю компонент Table UI). Мой проект с открытым исходным кодом находится на Kenai ( http://kenai.com/projects/nelson )

 Также посмотрите на проект Стивена Чина JFXtras (). И посмотрите на структуру WidgetFX Стивена Чина . Затем есть образцы JavaFX Джоша Мариначчи .

Тогда там также есть десятки учебных статей и блогов — http://learnjavafx.typepad.com/weblog/

И официальный учебник JavaFX, который * настоятельно * рекомендуется для начинающих FX.

В заключение, будущее может быть только ярче, потому что есть достаточно страстный разработчик JavaFX, который верит в платформу и мантру «оживление рабочего стола». Теперь нам нужно лучшее общение, более частый выпуск и лучшее руководство.

С http://www.jroller.com/peter_pilgrim