Веб 3.0. Есть ли будущее у java в ria и mobile?
DESCRIPTION
#jokerconf (http://jokerconf.com/) unconference lightning talk presentationTRANSCRIPT
Веб 3.0
Или есть ли будущее у Java
в RIA и Mobile?
Липский Никита (twitter: @pjBooms)
Excelsior
Или есть ли будущее у Java?
Проблемы Java в RIA
• Интернет браузеры блокируют Java
апплеты
• WebStart не привычен пользователям
• “Self-contained native packages with
bundled JRE is better deployment model”Steven Chin, Oracle JavaFX evangelist
Проблемы Java в Mobile
• iOS политика распространения приложений
блокирует любую динамическую загрузку –
JIT невозможен
• На Android своя Java (фрагментация)
• На Windows -- .NET
Поблемы Java в
IT сообществе
• Java – больше не модно
• JavaFX – вызывает скепсис
• Java довольно невнятно маркетируется
Как мы будем решать эти
проблемы?
Если не мы то кто?
Текущее состояние IT
• Web
• Mobile
• Desktop
Три почти непересекающихся мира
Достоинства Web
Достоинства Web
1. Нет инсталляции на клиенте
Достоинства Web
1. Нет инсталляции на клиенте
2. Встроенное бесплатное
“автоматическое обновление“
Достоинства Web
1. Нет инсталляции на клиенте
2. Встроенное бесплатное
“автоматическое обновление“
3. Отгрузка по частям
Достоинства Web
1. Нет инсталляции на клиенте
2. Встроенное бесплатное
“автоматическое обновление“
3. Отгрузка приложения по частям
4. «Простые» изобразительные
средства: HTML + JavaScript
Достоинства Web
1. Нет инсталляции на клиенте
2. Встроенное бесплатное “автоматическое обновление“
3. Отгрузка приложения по частям
4. «Простые» изобразительные средства: HTML + JavaScript
5. Работает везде, где есть браузер
Недостатки Веб
Browser Hell
Неудобный, тормозной UI
JavaScript – не масштабируем
Mobile и Desktop
• Два мира – суть одна:
отдельно ставящаяся программа с GUI
Преимущества GUI
Удобство, скорость, адекватное отображние предметной области
Масштабируем
Преимущества GUI
• Всегда (почти) выглядит одинаково, на
какую бы систему не ставился.
Недостатки GUI
Сегментированность
Большие системы много весят
Ручное автообновление
Громоздкость выразительных
средств
Выводы
Нам нужна система совмещающая
достоинства обеих подходов и
лишенная их недостатков
Выводы
• не требующая инсталляции на клиенте
Выводы
• работаящая везде где есть"browser”
Выводы
• одинакова во всех браузерах
Выводы
• со встроенным автоматическим
обновлением
Выводы
• прилетающая на клиент по частям
Выводы
• простая по сути
Выводы
• позволяющая делать равномощный по
выразительности родному GUI
Выводы
• на эффективных языках
программирования (со строгой
типизацией).
Фантастика?
Back to the future
• Oberon System
Oberon system key features
• И язык, и платформа
• Переносимая: как OS, так и поверх других OS
• Язык: ОО, строгая типизация, рантайм
проверки, рантайм типы, сборка мусора
• Платформа: reflection, динамическая
загрузка, переносимый код, статическая и
динамическая компиляция
• Система: Event-driven, MVC, persistent objects,
динамические атрибуты (поля и код)
Все есть текст
Все есть документ
The Nothing System
Check list
не требует инсталляции на клиенте
Check list
работает везде где есть"browser”
Check list
выглядит во всех браузерах одинаково
Check list
со встроенным автоматическим
обновлением
Check list
прилетает на клиент по частям
Check list
простая по сути
Check list
позволяющая делать равномощный по
выразительности родному GUI
Check list
на эффективных языках
программирования (со строгой
типизацией).
Но причем здесь Java?
• Java – это единственная зрелая
платформа, на которой это можно
реализовать
• JavaFX – готов к mobile
• Net is the computer
Основа системы будущего
• Java как платформа. JavaFX как UI.
• MVC – разделение представления от логики
и данных. Представление – произвольное.
Контроль над рендерингом представления.
• Загрузка приложения по частям (контроль
над толщиной клиента)
• Персонализированность (настройка "под
себя“).
Ресурсы
• Oberon System 3 – http://www.oberon.ethz.ch
• Xerox Cedar/Mesa System – “A tour through Cedar”
• Acme – http://research.swtch.com/acme
• CaptainCasa – http://www.captaincasa.com
• WebFX – https://github.com/brunoborges/webfx
• JavaFX IDE –
https://bitbucket.org/tschindl/bitbucketmgr
• The Nothing System –
https://github.com/pjBooms/The-Nothing-System