Несколько лет назад клиентская Java была непригодна для веб-разработки, потому что значительная часть веб-пользователей не установила Java. (Точные цифры не помню, больше 10%).
Теперь я вижу статистику Google Analytics для большого сайта, и она говорит, что> 98% пользователей установили Java.
Эта статистика сильно зависит от использования Javascript? Насколько я понимаю, Google Analytics измеряет только пользователей, у которых есть Javascript.
Похожая картина на других крупных сайтах?
Есть ли у клиентской Java действительно «стопорные» недостатки по сравнению с Flash?
Обновлено: в основном я имею в виду java-апплеты, java WebStart не подходит для обычного пользователя. Я упоминаю Javascript только для описания того, как работает Google Analytics.
@Tom Требуется, чтобы пользователь нажал "открыть" вместо немедленного запуска. Также он не так интегрирован с браузером, как апплеты.




Когда я писал дипломный проект, мне приходилось выбирать между Flash и Java-апплетами. Вот несколько плюсов и минусов:
Апплеты Java:
Пример: мне нужно было показать пакет данных, когда он перемещался между двумя маршрутизаторами. Пакет должен представлять собой какой-то элемент управления, например кнопку или что-то в этом роде. Эта анимация может быть определена в одной строке кода во Flash, где все объекты являются производными от некоторого базового объекта, который можно анимировать. На Java не нашел подходящего решения.
Вспышка:
Мой вывод:
Я с нетерпением жду парадигмы программирования для анимации и богатых клиентских интерфейсов.
ps: Silverlight пока кажется разочарованием, возможно, Microsoft вложит в него немного долларов.
Спасибо за подробный ответ. Когда вы примерно проводили это исследование?
Вопросы о доле на рынке все еще остаются без ответа. Ну, давайте подождем.
Я написал свой диплом в 2007 году. Я использовал ActionScript 2.0; Flex использует AS 3.0, толком ничего об этом не знаю.
Не точный ответ, так как было бы очень самоуверенным, просто поделитесь своим опытом ...
В недавнем проекте, где мы создавали сайт, совместимый с WAI, нас попросили избегать flash-объектов, поскольку доступность была серьезной проблемой. Апплеты на другой ноте не очень подходят большинству веб-разработчиков;). Одной из причин может быть разница в парадигмах Rich UI и Web UI.
Однако мы обнаружили, что апплеты незаменимы (не говоря уже об элементах управления .NET и ActiveX), когда требовался мониторинг на стороне клиента. Приложение использует аутентификацию на основе смарт-карты, и в браузер загружаются апплеты для прослушивания событий на стороне клиента (удаление карты) и предупреждения сервера о завершении сеанса.
В этом контексте я склонен полагать, что Flash предназначен для того, чтобы радовать глаз (представление), в то время как апплет, хотя и спроектированный так, чтобы быть универсальным, берет на себя роль модели на стороне клиента. Следует отметить, что и апплеты, и флэш-память потребляют циклы ЦП на клиентской машине, поэтому традиционно подходят для задач, связанных с длительными вычислениями. Калькуляторы, генераторы отчетов, иллюстраторы трендов, генераторы астрологических диаграмм (да) и другие задачи, в которых данные могут вводиться пользователем и результаты которых отображаются немедленно, используют их.
Основная проблема связана с отсутствием программного обеспечения на стороне клиента (Java, флэш-плагины). Пользовательский опыт в таких случаях более чем раздражает.
Ммм, Java, похоже, поддерживается лучше, чем я, хотя я просмотрел некоторую статистику и обнаружил, что от 92 до 96% браузеров поддерживают Java (т.е. он достаточно включен, чтобы его обнаружить! Хотя я думаю, что многие алгоритмы обнаружения Java используют JavaScript для обнаружения & report - как вы указываете - но поддержка 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 должны включать сторонние библиотеки ... или изобретайте велосипед!
Хороший момент о версии JRE! Можете ли вы поделиться этой статистикой, ссылками или ключевыми словами для поиска?
Заметил некоторые комментарии о том, что Java не обновляется. Теперь 1.6.0_10 отсутствует, и он обновляется более легко и автоматически, чем раньше, и у вас есть возможность нового метода установки, метода ядра Java. Это автоматизирует установку компонентов Java по мере необходимости.
Немного текста об этом: http://java.sun.com/javase/6/6u10faq.jsp
Так что есть изменения, Сан просто просыпается с новым генеральным директором, я думаю. Я знаю, что до распространения этой новой системы пройдет 1-2 года, но вы можете начать свой проект и повеселиться, когда он будет готов. :) Кто знает.
В любом случае, возможно, вы работаете + 500% для простых анимированных функций, чем flash, но если ваше приложение не является простой анимацией, тогда вы работаете + 500% с flash для какой-то простой замены трехстрочного кода java :) Зависит от вашего приложения.
Некоторые предыдущие публикации устарели в отношении комментариев к 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 и множеством имеющихся там возможностей.
Я работал на Java в течение последних 7 лет, а затем я недавно начал использовать AS3 в своем новейшем проекте (1,5 года и больше). Я люблю AS3 и Flash, и вот почему:
Удачи с проектом!
Почему WebStart не подходит для обычных пользователей? Проблемы с укладкой окон?