Aug 24, 2007

JavaFX Introduction (Part 1)

В одной из презентаций наткнулся на восторженные крики про JavaFX. По началу вообще не обратил особого внимания. Но когда эти крики повторились несколько раз, пришлось задуматься. Решил разобраться, что это за зверь и с чем его едят. Вышел на официальную страницу JavaFX Overview. Честно признаюсь - ничего не понял. Нет, конечно, понял, что это очень круто, глобально и должно совершить очередную революцию. Но больше ничего. Это меня очень огорчило и я решил копать дальше (так быстро сдаваться я не привык)... Ну достаточно лирики. Перейдем непосредственно к делу. Постараюсь максимально кратко и ясно рассказать о том, что я выяснил, и сделать некоторые выводы. Сразу оговорюсь, информации (дельной информации!!!) очень мало. Поэтому сразу приведу короткий список полезных ссылок по теме, которые я сумел найти:
  • Introduction to JavaFX Script - достаточно хорошее введение в основы javaFX (немного устарело и не все примеры работают)
  • Project OpenJFX - официальная страничка проекта openjfx
  • Planet JFX - сборник ссылок по теме
  • Chris Oliver's Weblog - блог одного из разработчиков javaFX. Тут можно узнать последние новости, возможности javaFX, которые только были залиты в cvs. Здесь есть информация по F3 - прямому предку javaFX. Очень советую внимательно изучить этот ресурс.
  • JavaFX API - справочник по javaFX API (описание многих объектов неполное)
Скажу так, особо глубокой документации я не нашел. Все отрывочно и поверхностно. Это и не удивительно. Платформа находится в стадии альфа версии. Структура классов, сигнатуры методов еще не заморожены и меняются. Естественно, документация не успевает обновляться, многие области вообще не покрыты. Итак, javaFX - это новый скриптовой язык от SUN. Нужно, конечно, иметь в виду, что он не очень похож на большинство скриптовых языков. То есть, он выполняется интерпретатором, но вот тех возможностей, которые дает нам интерпретатор, там практически и нет. Зато в еще более зачаточном состоянии находится компилятор для javaFX, который, по предварительным оценкам может дать прирост производительности в районе 50 раз. Поэтому фактически javaFX - скриптовой язык, но я бы не думал о нем в таком ракурсе. Сам собой напрашивается вопрос: зачем нам ЕЩЕ один скриптовой язык? Вопрос хорошо. Он возникает при известии о каждом новом скриптовом языке. Но похоже в данном случае, у SUN на его счет огромные планы. Основное назначение этого языка - динамические графические интерфейсы. Сейчас есть много примеров воссоздания сложных динамических сайтов с помощью javaFX. Лично я особого смысла в этом не вижу, я вообще сторонник строгого интерфейса, но ... иногда бывает надо. Ну и в завершении этой обзорной части небольшой неутешительный вывод. Надо ли нам начинать новые проекты с использованием javaFX. Я думаю - еще нет. Еще нет нормальной поддержки этой технологии со стороны IDE. Существуют плагины для eclipse и netBeans, но их уровень оставляет желать лучшего. Для меня наиболее удобным инструментом для работы с javaFX оказался, написанный на нем же, JavaFXPad.

2 comments:

Juriy said...

Тема довольно интересная, было-бы классно увидеть несколько фрагментов кода на JavaFX.

Мне кажется, что основной вопрос в следующем: а нужен ли JavaFX если есть Flash, который отлично справляется со своими обязанностями? Что можно сделать на JavaFX чего нельзя сделать на флеше?

А как насчет производительности и требований к JRE?

Тема интересная, но пока не вышла хотя-бы beta, IMHO не стоит напрягаться :)

Ilya Yalovoy said...

Спасибо за коммент! Собственно пример ы кода я собираюсь привести в следующих частях. Просто не хочется тупо копировать примеры из уже имеющихся ресурсов. У меня уже есть кой какие наработки, но они еще не приведены к удобоваримому виду. Что касается FLASH... Мне ответить трудновато, я давно с ним работал. О производительности судить пока рано, но думаю что текущая версия JavaFX будет отставать. Хотя синтетические тесты говорят об обратном. Но я в них не особо верю. С точки зрения удобства работы - под FLASH Есть очень мощные средства разработки. Это огромный плюс. С точки зрения самого языка, мне больше нравится javaFX. Его основная фича - он должен работать ВЕЗДЕ на любом JRE. .. Даже в мобиле...