Что вы думаете о JavaFX? - PullRequest
       22

Что вы думаете о JavaFX?

10 голосов
/ 10 февраля 2009

В настоящее время я много работаю в ActionScript 3.0, я также люблю программировать на Java. JavaFX идеально подходит для меня? Каково общее чувство к JavaFX, станет ли он мощным домом или пойдет по тому же пути, что и апплеты Java? Могут ли дизайнеры, с которыми я работаю, чувствовать себя комфортно с JavaFX в той же степени, в которой они чувствуют себя комфортно с ActionScript и JavaScript?

Ответы [ 10 ]

9 голосов
/ 05 апреля 2009

Просто хотел добавить свои $ .02 ... Я работал в JavaFX в течение последних 4 дней над моим первым небольшим сайд-проектом, используя его. В качестве предыстории я профессионально программировал около 9 лет, начиная с C, и последние 6 лет занимался Java и C # / .NET.

IMO, JavaFX по-своему разочаровывает, как и должно быть. Вот некоторые проблемы:

  1. Синтаксис иногда просто странный. Это может быть больше похоже на Java, так как его Java FX. Но синтаксис не простой переход с Java.

  2. Порядок элементов в файле .fx действительно имеет значение, что означает, что вы столкнулись с глупыми ошибками циклической ссылки, и «о, вы еще не можете использовать эту переменную, потому что она не имеет были инициализированы "проблемы, которые компилятор должен решать легко, но не делает.

  3. Случайные вещи просто не работают. Действия / события на элементах управления Swing не всегда работают, например, похоже, что OnKeyPressed / release SwingSliderBar не вызывается.

  4. Обработка ошибок просто плохо . Если возникает исключение, которое не обрабатывается, не существует никакого реального способа сообщить что-либо, кроме консоли Java, и элементы пользовательского интерфейса начинают смешно реагировать. Например, создайте блок SwingText и свяжите его значение с переменной. Теперь попытка изменить значение в текстовом поле вызовет исключение, потому что вы не можете редактировать связанную переменную. Однако в пользовательском интерфейсе текстовое поле просто начинает происходить забавные вещи. некоторые символы рисуют только 1/2, иногда backspace ничего не делает, иногда удаляет символ, иногда вы можете нажать 2 клавиши на клавиатуре, такие как «1» и «2», и текстовое поле в конечном итоге будет содержать «21» вместо "12" и т.д ...

Хотя моя абсолютная проблема № 1 в разработке JavaFX сейчас - Netbeans . Это патетически плохо в JFX. Не удается отладить, ошибки отображаются неправильно в IDE (у меня это помечает комментарии как ошибки!), Intellisence работает только 40% времени, если шаблоны кода событий, предварительно запрограммированные в IDE для элементов управления перетаскиванием, не отображаются. не правильно. Я забыл, какой из них, но один из них пропускает «&» в конце вставленного кода, который никогда не действителен и всегда должен быть удален вручную ... это просто ужасно и неприемлемо для такая компания, как Sun.

Еще одна проблема - общая документация. Его просто не хватает. Каким-то образом API JavaFX даже не является результатом поиска # 1 в Google при поиске методов / классов. Тонны «примеров» в сети больше не работают, поскольку в каждой версии произошли серьезные изменения в рефакторинге, а классы удалены или переименованы.

В целом, я даю JFX 4 из 10. Я хочу, чтобы понравился, но JFX 1.1 просто не снижает его ... это определенно не то, что я бы назвал "готовым к производству".

3 голосов
/ 18 февраля 2009

Я оставил свою последнюю работу, чтобы перейти с Java на разработку .NET.

Было несколько причин сделать этот шаг, но единственной главной причиной было то, что я устал от попыток создать программное обеспечение пользовательского интерфейса первого класса с Java & Swing. Прошло шесть лет, и я так рад, что я пошел дальше. Я не вижу причин полагать, что Sun наконец-то поняла разработку пользовательского интерфейса с помощью JavaFX.

Я убежден, что Microsoft наконец-то предоставляет нам платформу для создания многофункциональных интерактивных приложений в браузере. Я говорю, что после создания коммерчески доступного программного обеспечения, которое было поставлено как плагин Netscape 13 лет назад, за которым следуют элементы управления ActiveX и апплеты Java, и что все эти платформы по той или иной причине не становятся повсеместными на предприятии.

Я понимаю, что Silverlight 2 по-прежнему не хватает глубины и зрелости, но Microsoft продемонстрировала мне достаточную приверженность к этому моменту, и я считаю, что она станет доминирующей платформой RIA через несколько коротких лет - по крайней мере, для проектов, которые требуют " настоящий "язык программирования". Я уверен, что Flash et al. в ближайшее время не уйдет, но Flash не подходит для тех программ, которые выпускает моя компания.

Изюминкой для меня является тот факт, что я все еще буду в состоянии использовать Visual Studio, C # и большой процент моей текущей кодовой базы (ядро, которое полностью отделено от пользовательского интерфейса). Конечно, если вы используете ActionScript, это вам не поможет.

Еще одним важным моментом является тот факт, что Silverlight и WPF имеют много общего. Наш план состоит в том, чтобы поделиться большим количеством реализаций между версиями нашего программного обеспечения Silverlight и WPF. Это только вопрос времени, когда WPF станет стандартом для приложений Windows - я не знаю, будет ли это через пару лет или десять лет, но со временем это произойдет. Возможность ориентироваться на самые популярные браузеры / ОС с помощью Silverlight и Windows из одной и той же кодовой базы - огромное преимущество IMO.

Если вы знаете Java, переход на C # - это просто. И если вы не используете одну из приятных (не бесплатных) Java IDE, то даже бесплатные версии Visual Studio будут улучшением по сравнению с тем, к чему вы привыкли. Препятствием будет изучение нового способа работы с XAML - но это довольно крутой материал, так что вы можете действительно наслаждаться им.

2 голосов
/ 11 февраля 2009

Оглушительный "Мех".

Когда я посмотрел год назад, у них был односторонний инструмент конвертации SVG в JavaFx. Отлично, так что вы можете один раз создать свой визуальный контент, отметить его большим поведением, а затем в следующий раз, когда захотите, чтобы он выглядел хорошо, и что тогда?

Если вы посмотрите на этот урок , вы поймете, что я имею в виду. Мы рисуем вещи, перетаскивая фигуры из палитры в исходный код. OMGWTF. Я не показываю это моему отделу графики.

Надеюсь, я ошибаюсь в JavaFx, но я не думаю, что они это понимают. Пожалуйста, не кто-нибудь в Sun предоставит нам уровень представления, в котором нет щупалец, неразрывно связанных с кодом?

2 голосов
/ 11 февраля 2009

Если вы знаете Java, но хотите делать то, что, по вашему мнению, возможно только во Flash - тогда да, JavaFX будет полезен для вас.

Без сомнения, будет гораздо проще объединить ваши знания Java с дизайном.

И я верю, что инструмент станет только лучше, что упростит его использование.

2 голосов
/ 10 февраля 2009

Несмотря на то, что он кажется довольно мощным с точки зрения возможностей, я не очень разбираюсь в JavaFX из-за его структуры и реализации. Это похоже на нерешительную попытку проникнуть на рынок Flash / Silverlight. Слишком хитрый.

Я бы поспорил в пользу перехода на Silverlight 2, но я в первую очередь разработчик C #, поэтому я немного предвзят. Если вам не нравится этот маршрут по какой-либо причине, но вы все еще хотите более богатый пользовательский интерфейс для своих пользователей, я бы предложил Flex; это кажется намного лучше организованным, чем JavaFX для меня.

Только мои два цента на эту тему.

1 голос
/ 09 апреля 2010

Я занимаюсь разработкой приложений Flash с помощью Flex уже около 2 лет, и я решил попробовать JavaFX, потому что мы постоянно получаем жалобы пользователей на то, что они не могут использовать приложения со своих IP-телефонов (и я люблю Java).

Это один удар для Flash (без широкой поддержки мобильных устройств).

Если честно, я был очень впечатлен JavaFX (очень плохо).

  • Документация неполная.
  • Сценарий просто ужасен; это странный гибрид между JSON и R с ощущением Java-дежа-вю.
  • Первые 3 дня я потратил на рисование полигонов и создание градиентов с помощью CODE ... WTF !!
  • Я пытался убедить мой графический отдел попробовать это, и они просто не хотят понять, как должен работать производственный пакет, они продолжают жаловаться, что создание скинов Flex очень просто и, в конце концов, выглядит лучше (что абсолютно правда).
  • «Поддержка CSS» - просто плохая шутка.
  • Обычно это выглядит как посредственная попытка предложить вариант для интерфейса RIA.

Я могу вспомнить только пару хороших вещей:

  • Его можно запускать с IPhone / IPad и практически со всех мобильных устройств.
  • У вас есть доступ ко всему желаемому Java-коду, и это здорово, учитывая ограничения, которые есть у ActionScript (без перегрузки, без частных конструкторов и т. Д.). Это отличная вещь для нас, программистов, но давайте вспомним на секунду, что это технология внешнего интерфейса / презентации ... это означает, что пользователи должны будут на самом деле увидеть вещь, поэтому, если она не выглядит хорошо и не круто анимации / эффекты, которые они не будут копать.
  • Сценарий гораздо менее многословен, чем файлы MXML (за исключением неразборчивости).
  • Говоря о производительности ... Flash Player - это огромный зеленый шарик, который продолжает расти и расти до тех пор, пока не останется ОЗУ, по сравнению с тем, как работает JavaFX (JVM рушится! К сожалению, это не имеет ничего общего с настоящим JavaFX API, просто JVM ... ну это круто!).
  • У него есть эта замечательная функция, позволяющая перетаскивать апплет за пределы веб-браузера.

В конце концов, я рад, что у меня есть возможность стать мобильным, но это гибкий путь зрелости, достигнутый Flex / Flash в отношении приложений RIA. Будущее Flex / Flash как широко распространенной веб-технологии неясно (возможно, в конечном итоге оно будет использоваться только для надоедливых баннеров и онлайн-игр), никто не хочет зависеть от закрытой технологии, такой как Flash Player, поэтому весь Веб-сообщество стремится вытащить Flash из картинки (поддержка видео HTML5, нет Flash Player для устройств Apple и т. Д.). Поэтому попытка иметь открытую версию всегда приветствуется, просто JavaFX ощущается как эта неполная срочно запущенная бета-версия чего-то, что Sun сочла обязанным выпустить в выходные дни во время плохого похмелья.

Надеюсь, это кому-нибудь пригодится (и оскорбит кого-то в Sun / Oracle = p).

1 голос
/ 11 февраля 2009

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

0 голосов
/ 17 августа 2010

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

Я думаю, что сейчас лучше всего его использовать для настольных приложений и / или приложений, развертываемых через веб-запуск. На рабочем столе он имеет богатый набор функций и все еще может использовать другие функции Swing и остальной части Java. Из того, что я слышал, апплеты все еще работают медленно в некоторых системах, и без поддержки Android мобильные функции не являются функциональными возможностями. Поддержка апплетов / мобильных устройств / ТВ / веб-приложений кажется мне скорее бонусом для разработчиков десктопов, чем ключевых функций, которые помогут вам использовать технологию.

Так что все зависит от того, для чего вы планируете его использовать. Если вы создаете настольные приложения, которые вы хотите запускать на Java VM, которые могут использовать простые мультимедиа и богатые элементы управления пользовательским интерфейсом, то я думаю, что есть веские причины взглянуть на язык. WebStart немного улучшился и стал хорошим инструментом развертывания. Если вы хотите создавать веб-приложения, то это может быть интересно, но сейчас я бы сказал, что HTML5 / ajax более актуальны (в этом случае вы можете посмотреть на ZK). Однако даже с HTML5 у ajax есть свои ограничения, и если вы столкнетесь с ними, JavaFX может предложить вам варианты. Для мобильных платформ это не будет актуально до тех пор, пока не будет стабильной поддержки Android - в этом случае я бы сейчас просто остановился на самой платформе Android.

0 голосов
/ 20 февраля 2010

Ну, синтаксис ActionScript и JavaFX, похоже, имеет много общего, поэтому, возможно, "Да".

В данный момент я изучаю скрипт JavaFX, и он мне действительно нравится. Но что мне не нравится, и, возможно, это самый большой недостаток, это ужасная документация, которая часто не обновляется или не является полной.

0 голосов
/ 29 марта 2009

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

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

...