Архитектура веба
В комментариях к этому посту Никиты Прокопова опять начался дискурс об ошибочном применении веба (точнее браузерных технологий) для написания приложений. Мол, только нативные технологии, только хардкор, только так можно контролировать перф, а дизайн не должен быть кроссплатформенный.
Я считаю, что это сильно устаревший взгляд на вещи.
Веб всегда имел огромное преимущество над всеми другими технологиями за счет своей сути: открытости, децентрализация, кроссплатформенность и сендбоксинг. Поясню.
1. Веб приложения по умолчанию клиент-серверные. Это сложнее для реализации, но богаче по фичам (для пользователя): персональные данные синхронизируются, что дает гарантию их сохранности и более гибкий доступ.
2. Доступ к веб приложению легкий, надежный, понятный. Концепция URL великолепна.
3. Доступ к стейту приложения по URL вообще невероятная киллер-фича. Все этим пользуются даже не задумываясь.
4. Server-first распространение [кода] приложения намного улучшает опыт обновления приложения как для пользователя, так и для разработчика: первый даже не замечает это, а второму не нужно поддерживать устаревшие апи.
5 - кроссплатформа и 6 - сендбоксинг тоже невероятно ценные фичи, но моя любимая, как пользователя, 7 - инстансы. Я могу открыть где угодно и сколь угодно много инстансов приложений, и у каждого будет свой стейт. Например, ходить по интернет магазину таким образом намного удобнее, чем бесконечно перелистывать единственный экран мобильного приложения туда и обратно, что бы сравнить несколько товаров.
Из всего вышеперечисленного выходит и еще одно великолепное свойство, веб приложение должно запускаться быстро и разработчик в той или иной мере все равно заботиться об этом. Попробуйте сравнить бандлсайзы нативных и веб приложений.
8. The last, but not least. Исходники веб страницы открыты и кто угодно может их инспектировать и модифицировать. Редкая фича в нативке. Профит для пользователя в этом огромный: режим для чтения, контрастная тема, блокировщик рекламы, да просто свои стили или скрипты. Конечно, с этим есть сложности, особенно в плане безопасности. Но в конечном итоге, открытые платформы более надежны: они открыты для непредвзятого аудита и хотфиксы к ним делать проще.
Все это вещи, которые просто есть в любом веб приложении. Что-то дается по умолчанию, что-то разработчику необходимо делать самому, но он будет это делать, у него практически нет выбора и это хорошо для конечного пользователя.
Добавьте к этому стандартизированную систему расширений, что абсолютно уникально.
Да, есть проблемы с доступам к нативным технологиям, но все это в процессе решния и тормозится, в основном, монополистами рынка.
По перформансу веб может делать невероятные вещи уже лет 7. Я бы оценил этот вопрос так: половина приложений может быть написана на абсолютно наивном коде, 40% нуждается в не сложных оптимизациях, 9% нуждается в сложных оптимизациях и 1% нуждается в переизобритениях велосипеда, когда необходимо использовать canvas / webgl. Думаю, ничто не совершенно и это хорошие показатели.
На последок, свежая вдохновляющая история: I Replaced My Native iOS App with a Cross-Platform Web App and No One Noticed.
Каким безумцем нужно быть, что бы презреть все эти фичи и писать на нативке? 🙃
В комментариях к этому посту Никиты Прокопова опять начался дискурс об ошибочном применении веба (точнее браузерных технологий) для написания приложений. Мол, только нативные технологии, только хардкор, только так можно контролировать перф, а дизайн не должен быть кроссплатформенный.
Я считаю, что это сильно устаревший взгляд на вещи.
Веб всегда имел огромное преимущество над всеми другими технологиями за счет своей сути: открытости, децентрализация, кроссплатформенность и сендбоксинг. Поясню.
1. Веб приложения по умолчанию клиент-серверные. Это сложнее для реализации, но богаче по фичам (для пользователя): персональные данные синхронизируются, что дает гарантию их сохранности и более гибкий доступ.
2. Доступ к веб приложению легкий, надежный, понятный. Концепция URL великолепна.
3. Доступ к стейту приложения по URL вообще невероятная киллер-фича. Все этим пользуются даже не задумываясь.
4. Server-first распространение [кода] приложения намного улучшает опыт обновления приложения как для пользователя, так и для разработчика: первый даже не замечает это, а второму не нужно поддерживать устаревшие апи.
5 - кроссплатформа и 6 - сендбоксинг тоже невероятно ценные фичи, но моя любимая, как пользователя, 7 - инстансы. Я могу открыть где угодно и сколь угодно много инстансов приложений, и у каждого будет свой стейт. Например, ходить по интернет магазину таким образом намного удобнее, чем бесконечно перелистывать единственный экран мобильного приложения туда и обратно, что бы сравнить несколько товаров.
Из всего вышеперечисленного выходит и еще одно великолепное свойство, веб приложение должно запускаться быстро и разработчик в той или иной мере все равно заботиться об этом. Попробуйте сравнить бандлсайзы нативных и веб приложений.
8. The last, but not least. Исходники веб страницы открыты и кто угодно может их инспектировать и модифицировать. Редкая фича в нативке. Профит для пользователя в этом огромный: режим для чтения, контрастная тема, блокировщик рекламы, да просто свои стили или скрипты. Конечно, с этим есть сложности, особенно в плане безопасности. Но в конечном итоге, открытые платформы более надежны: они открыты для непредвзятого аудита и хотфиксы к ним делать проще.
Все это вещи, которые просто есть в любом веб приложении. Что-то дается по умолчанию, что-то разработчику необходимо делать самому, но он будет это делать, у него практически нет выбора и это хорошо для конечного пользователя.
Добавьте к этому стандартизированную систему расширений, что абсолютно уникально.
Да, есть проблемы с доступам к нативным технологиям, но все это в процессе решния и тормозится, в основном, монополистами рынка.
По перформансу веб может делать невероятные вещи уже лет 7. Я бы оценил этот вопрос так: половина приложений может быть написана на абсолютно наивном коде, 40% нуждается в не сложных оптимизациях, 9% нуждается в сложных оптимизациях и 1% нуждается в переизобритениях велосипеда, когда необходимо использовать canvas / webgl. Думаю, ничто не совершенно и это хорошие показатели.
На последок, свежая вдохновляющая история: I Replaced My Native iOS App with a Cross-Platform Web App and No One Noticed.
Каким безумцем нужно быть, что бы презреть все эти фичи и писать на нативке? 🙃