Клиент Java vs (Adobe) Flash для веб-приложений, что выбрать и когда - PullRequest
4 голосов
/ 15 ноября 2008

Несколько лет назад клиентская Java была непригодна для веб-разработки, потому что замечательная часть веб-пользователей не имела установленной Java. (Я не помню точных цифр, более 10%).

Теперь я вижу статистику Google Analytics для большого сайта и сообщает, что> 98% пользователей установили Java.

Эти статистические данные очень предвзяты из-за использования Javascript? Как я понимаю, Google Analytics измеряет только пользователей, у которых есть Javascript.

Схожа ли картина на других крупных сайтах?

Есть ли у клиентской Java действительно «пробковые» недостатки по сравнению с Flash?

РЕДАКТИРОВАТЬ: я имею в виду в основном java-апплеты, java WebStart, кажется, не подходит для среднего пользователя.
Я упоминаю Javascript только для описания работы Google Analytics.

Ответы [ 6 ]

2 голосов
/ 15 ноября 2008

Когда я писал свой дипломный проект, мне приходилось выбирать между Flash и Java-апплетами. Вот некоторые плюсы и минусы:

Java-апплеты:

  • [плюс] вы программируете на Java, который является зрелым и стабильным
  • [плюс] вы можете использовать Java GUI-фреймворки, которые содержат множество преимуществ
  • [минус] при первом обращении пользователя к странице с апплетом JVM должна быть инициализирована, и это может занять несколько минут даже на быстром компьютере
  • [минус] Апплеты не предназначены для анимации; конечно, вы можете делать что-то, но это как программирование на C - вы делаете все с нуля

пример: мне нужно было показать пакет данных при его перемещении между двумя маршрутизаторами. Пакет должен быть чем-то вроде элемента управления, например кнопки или чего-то еще. Эта анимация может быть определена в одной строке кода во Flash, где все объекты являются производными от некоторого базового объекта, который можно анимировать. Я не смог найти подходящего решения в Java.

Вспышка:

  • [плюс] действительно действительно сосредоточены на анимации;
  • [plus] ActionScript фактически является языком OO
  • [минус] ActionScript неаккуратный, грубоватый и имеет всего несколько сторонников. Если вы застряли, будьте готовы искать решения на неясных японских форумах
  • [минус] ActionSCript может быть OO, но ему не хватает многих функций, таких как Enums, полноценные интерфейсы, потоки (!!!!) и т. Д.
  • [минус] Flash был разработан для использования не техническими людьми - они просто используют инструмент разработки; Я написал код для всего, и это сработало, но это было больно.

Мой вывод:

Я с нетерпением жду парадигмы программирования для анимации и многофункциональных интерфейсов клиента.

ps: Silverlight пока что разочаровывает, может быть, Microsoft вложит в него немного $.

1 голос
/ 25 декабря 2008

Некоторые предыдущие публикации устарели в отношении комментариев к ActionScript. ActionScript3. стал доступен во временном интервале Flex 2, то есть в январе 2007 года, когда были поставлены Flex 2.0 и Flash player 9.

AS3 - полноценный язык программирования ООП, сравнимый с Java. У него есть классы и интерфейсы, наследование, ключевые слова защиты доступа для членов класса, конструкторы, статика, а также некоторые приятные вещи, которых нет в Java: свойства, события, декларативное связывание данных и замыкания.

По умолчанию AS3 статически компилируется, поэтому каждый объявляет тип членов и переменных. Это может быть смягчено, когда AS3 может вернуться к динамической типизации аля JavaScript. Однако он менее эффективен во время выполнения. Иногда при работе с динамическими данными, тем не менее, полезно выборочно использовать динамические классы. (Приятным преимуществом языка, проверяемого на статический тип, является завершение кода в среде Flex Builder.)

Большая часть разработки Flex выполняется с использованием MXML. Это декларативный DSL на основе XML для Flex. Впрочем, MXML компилируется в код ActionScript3. Таким образом, то, что вы делаете в MXML, эквивалентно императивному кодированию AS3, но часто может быть более кратким, ясным и более соответствующим образом структурированным относительно базовой графической формы Flex, которую он представляет (т. Е. MXML хорош для кодирования представлений шаблона MVC). ).

Суть в том, что программирование на Flex на ActionScript3 легко и естественно для программиста на Java или C #. Язык совсем не проблема. Сила Flex входит в тесную связь с Flex SDK и множеством возможностей, найденных там.

1 голос
/ 16 ноября 2008

Ммм, Java, кажется, лучше поддерживается, чем я, хотя, я искал некоторые статистические данные и обнаружил, что от 92 до 96% браузеров поддерживают Java (то есть, он достаточно активен, чтобы обнаруживать его! JavaScript для обнаружения и составления отчетов - как вы указали - но поддержка JS в любом случае тоже очень хорошая, даже больше в нашу эру Web 2.0).
Adobe может похвастаться лучшей поддержкой, но в целом разница довольно незначительная. В любом случае, кто-то, действительно желающий увидеть / использовать приложение, активирует / обновит / загрузит необходимый движок.

Теперь мы должны посмотреть, что поддерживается JRE! Увы, я не нашел никакой статистики для этого.
Там у Adobe есть преимущество: не у всех есть Flash 9 или 10, но обновление происходит довольно быстро. Хотя загрузка и установка новой JRE - это более сложная задача ... Конечно, вы можете ориентироваться на исторический наименьший общий знаменатель Java 1.1 или, более реалистично, Java 2 (1.4), но все равно разочаровывает отсутствие возможности использовать все 1.6 функции ...

Я видел, как некоторые люди жалуются, что Java-апплеты ломают свой браузер (по-видимому, в системах Unix), но это больше проблема с небольшим количеством браузеров / систем, чем с чем-либо еще.

И, как уже отмечалось, время запуска Java-апплета намного больше, чем для Flash (хотя некоторые большие Flash-игры тоже загружаются медленно).
Теперь я видел несколько Обрабатывающих апплетов, таких как пресловутые Веб-страницы в виде графиков , большинство из них загружаются быстро: большая часть энергии уже находится на жестком диске пользователя, в обширной библиотеке Java. При обработке создаются довольно легкие файлы jar, в то время как многие апплеты Flash должны содержать сторонние библиотеки ... или заново изобретать колесо!

0 голосов
/ 07 января 2009

Я работал в Java в течение последних 7 лет, а затем недавно начал работать над AS3 в своем новом проекте (1,5 года и более). Я люблю AS3 и Flash, и вот почему:

  • Сам язык очень похож на Java. Документация в Adobe такая же хорошая или лучше, чем у JavaDocs.
  • Язык AS3 поддерживает XML как собственный тип. Разбор XML в Java - это кошмар.
  • Для Flash есть отличные анимационные и графические фреймворки, такие как papervision 3D и tweener.
  • Если вы используете среду Flex 3 и Flex Builder 3, создание интерфейсов, которые выглядят так же хорошо или лучше, чем Swing, тривиально. Мне нравилось писать пользовательские интерфейсы на Swing, но создание пользовательских интерфейсов в визуальном Flex Designer - это глоток свежего воздуха.
  • Я почти уверен, что браузер поддерживает Flash.
  • Вы когда-нибудь видели загрузку Flash-апплета? Он имеет очень плохое удобство использования и заставляет пользователя нажимать два или три диалоговых окна перед запуском апплета. Flash приложения просто работают.

Удачи в вашем проекте!

0 голосов
/ 16 ноября 2008

Заметил некоторые комментарии о том, что Java не обновляется. Сейчас вышла 1.6.0_10, и она обновляется быстрее и проще, чем раньше, и у вас есть возможность нового метода установки, java kernel. Это автоматизирует установку компонентов Java по мере необходимости.

Некоторый текст об этом: http://java.sun.com/javase/6/6u10faq.jsp

Так что есть изменения, Сун просто просыпается с новым генеральным директором, я думаю. Я знаю, что до появления новой системы 1-2 года, но вы можете начать свой проект и повеселиться, когда он будет готов. :) Кто знает.

В любом случае, возможно, вы работаете на + 500% за более простые анимированные функции, чем flash, но если ваше приложение не является простой анимацией, то вы работаете на + 500% с flash для простой подстановки кода Java из трех строк :) Зависит от вашего приложения .

0 голосов
/ 15 ноября 2008

Не точный ответ, как это было бы очень самоуверенно, просто делюсь своим опытом ...

В недавнем проекте, где мы создавали сайт, совместимый с WAI, нас попросили избегать флеш-объектов, так как доступность была серьезной проблемой. Апплеты на другой ноте не очень подходят большинству веб-разработчиков;). Одной из причин могут быть различия в парадигмах Rich UI и Web UI.

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

В этом контексте я склоняюсь к тому, что Flash предназначен для того, чтобы быть приятным глазом (взгляд), когда апплет, хотя и разработан, чтобы быть универсальным, играет роль модели на стороне клиента. Следует отметить, что как апплеты, так и флэш-память потребляют циклы ЦП на клиентском компьютере, поэтому они традиционно подходят для задач, связанных с длительными вычислениями. Калькуляторы, Генераторы отчетов, Иллюстраторы трендов, Генераторы астрологических карт (да) и другие задачи, когда данные могут быть предоставлены пользователем и результаты показаны немедленно, используйте их.

Основная проблема связана с отсутствием программного обеспечения на стороне клиента (Java, плагины Flash). Пользовательский опыт в таких случаях более чем раздражает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...