Есть ли будущее у JavaFX? (перевод)

Статья перемещена в тематический блог и доступна по новому адресу - ссылка.

16 коммент.:

  1. Интересный перевод. Я пробовал использовать JavaFX в несколько других целях. Изначально хотелось найти технологию, чтобы сделать обычное оконное приложение, но с HTML интерфейсом. Обратился к JavaFX, попробовал несколько примеров, а потом забросил.

    Не знаю как на западном, но на российском рынке технология не востребована. На job.ru или rabota.ru не найти вакансии JavaFX программиста.

    ОтветитьУдалить
  2. Я и не пробовал, если честно. :) Долгое время специализировался по ActionScript/Flash (сейчас - по Java), как-то не виделось в JavaFX хотя бы возможностей флеша, ну и чего тогда заморачиваться - все ждал, может допилят...

    ОтветитьУдалить
  3. Вообще, если смотреть на недостатки апплетов, то я помимо вопросов развертки выделил бы проблему унылого подхода к интерфейсу. Я, конечно, понимаю, что имея известный навык и хороший LookAndFill можно и swing сделать конфеткой. Однако, на это уйдёт масса усилий. JavaFX была хорошей попыткой отказаться от desctop подхода к интерфейсу. Попытка попыткой, но на практике нужны отлаженные технологии.

    ОтветитьУдалить
  4. Других нормальных альтернатив LookAndFill-у - кажется нет. Обе удачные десктопные Java-технологии (AWT/Swing и Eclipse Plug-ins) - используют этот подход.

    Что знаю, то и сказал, уж как прокомментировал. :)

    ОтветитьУдалить
  5. Кстати, в C# идеологию по поводу интерфейса утянули из явы. Те же грабли, но от другого производителя + проблема с потоками, которая в яве не ощущается. Я говорю о ситуации, когда компоненты созданы в одном потоке, а вызываются из другого. В лоб такой вызов приводит к нарушению прав доступа; это подаётся как ноухау.

    Мне нравится как сделаны формы в HTML. Маловато компонентов, но всё очень гибко. Однако, взаимодействие с логикой через ajax добавляет кучу лишнего кода. К тому же нетипизированные языки с потугами на объектную модель настроения не добавляют.

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

    Есть альтернатива MS Silverlight, который объединяет C#, JS, HTML и CSS, но до него руки не доходят. К тому же у меня на Java опыта больше. Небольшой пример программы на Silverlight можно посмотреть тут: http://silverlightru.net/prostoj-mediaplayer

    ОтветитьУдалить
  6. > Однако, взаимодействие с логикой через ajax добавляет кучу лишнего кода.

    В JEE есть такой фреймворк - JBoss RichFaces, в нем работа с Ajax - реализована в виде компонентов. В отличии от простого Ajax - это на много удобнее и интереснее, использовал в проекте. Есть аналог - Oracle IceFaces, не пробовал, но по идее тоже должна быть компонентная схема работы с Ajax.

    > Есть альтернатива MS Silverlight

    У меня в блоге есть различные новости по этой технологии. ;) Пока не пробовал, но оцениваю как одну из самых перспективных. Еще в блоге есть про гугловское очень интересное решение - приложения пишутся в нативном коде и все это работает в браузере, технология совсем молодая. По метке "Google" можно легко отыскать, месяца полтора-два назад публиковал. И на днях была у меня публикация про обещания Adobe - добавить 3D во флеш. Поживем, увидим. ;)

    ОтветитьУдалить
  7. Из того обилия фрэймворков JSF, что есть, я пробовал только GWT и RichFaces. GWF я не смог подружить с 7-ой JIdea. Потом времени мало было и я забросил свои ковыряния. Вообще, от технологий вокруг JSF у меня осталось довольно странное чувство. Приходится использовать большое число различных конфигурационных файлов, что-то где-то прописывать, что-то куда-то подсовывать... В итоге, когда приложение разрастается, следить за всем этим колхозом становится очень сложно. Среды разработки немного помогают, но не всегда.

    ОтветитьУдалить
  8. Присмотритесь к фреймворку JBoss Seam, это следующее поколение, по сравнению с "JSF + EJB 3".

    У него есть аналог, Apache Struts, он появился раньше. Он относительно технологичен, но с него многие плюются (мыши кололись, но продолжали лезть на кактус).

    Seam появился немного позже, и если Struts медленно эволюционировал, то Seam изначально задумывался конфеткой.

    Для разработки на Seam Вы можете использовать бесплатный Eclipse + бесплатный комплект инструментов разработки JBoss Tools (они устанавливаются "на" эклипс).

    В моем блоге есть некоторая информация про Seam.

    Seam объединяет два фреймворка, основанных на бинах заднего плана - в качестве представления в нем часто используется JBoss RichFaces + бизнес-логика, которая реализуется посредством EJB 3. Seam не только объединяет эти два фреймворка, но и обеспечивает их "бесшовную работу".

    ОтветитьУдалить
  9. У меня был проект на Seam и был проект на JSF+EJB3, это небо и земля.

    Ключевые особенности Seam - были утверждены в спецификациях JEE 6.

    Эти же ключевые особенности (подходы, решения) - уже есть в недавно вышедших версиях Eclipse и NetBeans, т.е. можно говорить, что они стали mainstram.

    В Seam есть не только то, что из него перенесли в стандарты JEE 6, в Seam все конечно же расширено (в нем все это и было изначально, просто часть его технологии обобщили, в какой-то более простой и ужатый вид - и вынесли в спецификации JEE 6).

    Фреймворк JBoss Seam разработал - угадайте кто? - Разработал отец-основатель технологии JBoss Hibernate. Это одна из ключевых mainstream технологий в JEE.

    ОтветитьУдалить
  10. Как видите, в моих комментариях выше - часто упоминается слово JBoss:

    - JBoss RichFaces
    - JBoss Hibernate
    - JBoss Seam

    Есть мнения, что IBM далеко отстал от JBoss.

    Многие, кто сравнивает Struts и Seam - говорят, что Seam однозначно лучше.

    Минусы Seam:

    1) Скорее всего придется завязываться на сервер приложений от JBoss. Да, он бесплатен, да, компании JBoss уже лет 15. Однако многие ставят как mainstream - апачевские фреймворки. Мучаются, но Struts применяют раза в 3-4 чаще, чем Seam. То же самое и с сервером приложений - хотя JBoss AS и довольно широко применяется, но чаще все же используют сервер приложений Apache Tomcat.

    2) Все-таки и Эклипс и JBoss Tools - это бесплатные инструменты. Чтобы с ними работать - нужен опыт. Чтобы запустить под ними Seam - нужен опыт, в том числе понимание JEE. Иными словами Seam и инструменты разработки для него - можно сравнить с языком программирования Java. - Новичку не реально за пару недель изучить Java - как минимум нужен опыт ООП. А откуда его взять, если кто-то, например - имеет опыт только программирования на С? Поэтому многие пионеры долбятся с PHP, чтобы перейти на Java - нужно много потрудиться, чтобы его изучить. Зато результат, как знаете - превыше всех ожиданий - Java не сравнимо мощнее и лучше, чем PHP.

    Так же и с бесплатными инструментами Eclipse + JBoss Tools - даже опытные Java-программисты зачастую пасуют, чтобы настроить и получить ЗАМЕЧАТЕЛЬНУЮ среду разработки для Seam.

    ОтветитьУдалить
  11. Спасибо за развёрнутый ответ. Я обязательно попробую Seam.

    По поводу сред разработки, предпочитаю NetBeans. С него начинал (всему виной К.Хорстман, чей двухтомник по J2SE был для меня первой книгой по Java) и на нём и остался. Хотя, в этом плане я быстро адаптируюсь.

    ОтветитьУдалить
  12. Там придется потратить значительные усилия, для "пробы". :) Но что сразу хорошо - освоитесь с сервером приложений JBoss AS, он достаточно популярен, поэтому это однозначно пригодится в проектах и будет дополнительным плюсом для работодателя.

    В принципе - ключ к пониманию работы с сервером приложений от JBoss - это всего-навсего разместить 1 xml-файлик в основном каталоге распакованного сервера - и имя этого файлика обязано заканчиваться на "ds" (например по умолчанию уже установлен файл-пример, называется он hsqldb-ds.xml, в нем всего несколько строк, все тривиально просто; в нем указываются минимальные настройки для подключения к нужной Вам базы данных - url, login/password и пару еще опций - все достаточно очевидно и логично). Очень интересная тут сразу возможность - в ЛЮБОЙ момент времени можно этот файл от туда нафиг убрать, или добавить - сервер приложений (запущенный) САМ определит - поместили вы туда файл, или убрали - т.е. сервер приложений автоматически распознает источники подключений к базам данных. В этом файлике Вы можете указать JNDI-name Вашего источника данных (datasource) - и ЕСЛИ УКАЗАЛИ - можете уже СВОБОДНО юзать подключенную, таким образом, базу данных - в любом EAR- или WAR-архиве, который Вы разместите (скопируете в одну из папок) данного сервера приложений.

    ОтветитьУдалить
  13. Второй момент - у сервера приложений JBoss AS есть по умолчанию несколько конфигураций для запуска (например - default). Лучше всего - скопировать ее под другим именем, например alex_rude_1 - и тогда уже свободно можете менять что-то в ней. Все конфигурации отличаются только одним - сколько JAR-файлов (библиотек) - запустится при старте данного сервера приложений. Запуская default-конфигурацию - Вы получаете какой-то сбалансированный набор. Запуская конфигурацию "all" - запустятся еще всевозможные поддержки веб-сервисов и прочее, и прочее. Соотв. это выльется в объем занимаемого ОЗУ.

    Да, и третий момент работы с JBoss AS - не забыть добавить JAR-файл КОНКРЕТНОЙ БАЗЫ ДАННЫХ (нужной Вам) в подкаталог Вашей конфигурации запуска сервера.

    Самая популярная версия JBoss AS - это 4.2.3.GA

    Есть и 5-ая и относительно скоро выйдет 6-ая. Но лучше попробуйте с 4-ой - для большинства проектов ее хватает и потребление ОЗУ - будет довольно маленьким.

    Хорстман у меня тоже самый "главный" учебник по Java. :)

    ОтветитьУдалить
  14. Касательно NetBeans - у меня был с ним опыт в том проекте, где JSF+EJB3. Не очень он мне глянулся, но пришлось использовать... А вот IDE Sun Studio, которая основана на NetBeans и которая служит для программирования на С/С++ для Линукса/Соляриса - мне очень понравилась, по сравнению с IDE Microsoft VS 2008 в плане именно программирования на С/С++.

    IDE Sun Studio по рейтингу одного из российских журналов - заняла 1-ое место. Она бесплатно, но ставится только пол линуксами/юниксами (под Windows "прямым способом" - не поставить).

    По рейтингам (возвращаясь к Java) - IDE и серверов приложений - у меня в блоге была некоторая статистика. Вас заинтересует. ;)

    ОтветитьУдалить
  15. касательно JBoss, сейчас на работе в основном проекте мы его используем. У меня задачи в основном на периферии, так что опыта с JBoss набрал совсем мало. Был отдельный проект на C#, его я и мой напарник вели, естественно, использовал IIS.

    Сейчас я участвую в софтверном стартапе. JSP + Tomcat + Hibernate + PostgreSQL , примерно такая картина по технологиям. Короче, остановиться на каком-то одном сервере не получается.

    К сожалению, поддержать тему по веб-серверам мне особо не чем.

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

    ОтветитьУдалить