Мобильные приложения: HTML5 против нативного кода

от автора

В августе этого года Facebook выпустила новую версию своего приложения для iOS. Оно стало полностью нативным. Это событие привело к новому раунду дебатов по поводу преимуществ нативных приложений по сравнению с HTML5-приложениями. Я тоже хочу высказаться по этому поводу.

Общественное мнение в данном случае весьма поляризовано. Недавно я участвовал в одной дискуссии. Она началась с обеспокоенность одного человека тем, что его компании теперь придется разрабатывать клиент для Microsoft Surface в дополнение к Android и iPad. А закончилась дискуссия высказыванием другого: «А можно использовать HTML5 и разом получить клиента на все три платформы».

Марк Андреессен (Marc Andreessen), влиятельный в сети человек, сказал: «Приложения будущего — это веб-приложения. Все будет жить в сети. Нативные мобильные приложения на платформах вроде iOS и Android — это промежуточный шаг на пути к полностью мобильной сети. Этот временный этап может продолжаться очень долго потому что сети до сих пор ограничены. Но если вы позволите мне сделать смелое предположение, что однажды у нас будет повсеместно доступно высокоскоростное беспроводное подключение к сети, то очевидно, что в конце концов все придет к веб-приложениям. Потому что технология хочет, чтобы все было именно так.»

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

Вопрос

Главный вопрос: насколько толстыми должны быть клиенты?

Позвольте я дам определения терминам:

  • Я называю Клиентом нечто, что используется только одним человеком, взаимодействует напрямую с этим человеком и, вероятно, физически близко к нему расположено.
  • Я называю Сервером нечто, что совместно используется несколькими пользователями, взаимодействует напрямую с Клиентом и может быть физически расположено где угодно.
  • Я называю Каналом то, что связывает Клиента и Сервер.
  • Я определяю понятие Толстого клиента как сравнительное. В более толстых клиентах больше кода, специфичного для приложения, и они меньше зависят от Сервера. Более тонкие клиенты требуют чтобы больше кода, специфичного для приложения, выполнялось на Сервере.

Есть два главных параметра, определяющих толщину клиентов:

  • Качество Канала. Сюда входит ширина канала, величина задержки, доступность, надежность и цена.
  • Цена клиентской части. Сюда входит цена железа, стоимость разработки клиента, его развертывания, обновлений и обслуживания.

Есть также два закона:

  • По мере улучшения качества канала клиент может становиться тоньше.
  • По мере снижения затрат на клиентскую часть клиент может становиться толще.

Два полюса

Если бы качество Канала было идеальным, то клиент мог бы быть сверхтонким.

У Канала с идеальным качеством была бы бесконечная ширина и он работал бы без задержек. Он был бы доступен повсюду. Он был бы надежен на 100%. И ничего бы не стоил.

В случае идеального Канала клиент был бы почти не нужен. Он лишь предоставлял бы своего рода физический доступ к Серверу.

С другой стороны, если бы затраты на клиентскую часть были нулевыми, то Клиент мог бы быть сколь угодно толстым.

Такой клиент состоял бы из физических компонент, которые ничего не стоят. Он содержал бы программное обеспечение, разработанное без каких-либо затрат. Это программное обеспечение устанавливалось, обновлялось и обслуживалось бы бесплатно, беспроблемно и без усилий.

Если бы затраты на клиентскую часть были нулевыми, то Сервер был бы нужен лишь для обеспечения связи между Клиентами.

Так почему толщина Клиентов разнится?

Потому что разная толщина Клиента дает разные возможности в условия рыночной конкуренции.

Вы можете выделиться на фоне конкурентов сделав Клиента толще (что дороже) и рекламируя скорость работы, удобство для пользователя и прочее такое.

Или вы можете сделать Клиента тоньше (это менее дорого) и рекламировать тот факт, что потребуется меньше тратить на обслуживание, установка такого Клиента более простая и тому подобное.

Эта проблема не нова

В 1960-х и 1970-х, когда у нас были только мэйнфреймы и миникомпьютеры, существовало разделение между умными терминалами (толстые клиенты) и простыми/немыми терминалами (тонкие клиенты).

В 1980-х у нас появились рабочие станции (очень дорогие толстые клиенты, которые покупали те, кто считал что они достаточно дешевы по сравнению с мэйнфреймами и миникомпьютерами) и микрокомпьютеры (гораздо менее дорогие толстые клиенты, которые покупали те, у кого раньше вообще не было компьютера).

В начала 1990-х высокая стоимость рабочих станций поспособствовала распространению X-терминалов, тонких клиентов, которые могли по сути лишь отображать графический интерфейс пользователя. Мой менеджер тогда купил новомодный модем на 19.2 Кбит и реально пытался разрабатывать виджеты для Motif из дома.

В середине 1990-х появились веб-браузеры. Лишь очень непродолжительное время эта технология рассматривалась как способ совместно работать с гипертекстовыми документами. Этот этап длился почти до обеда. В то же время городе Шампейн, штат Иллинойс, Невоспетый Герой и Его Высокопреосвященство разрабатывали браузер с большим количеством фич. Каких фич? Ну таких фич, которые превратили браузер в платформу для доставки приложений. И развитие сети с тех пор в основном в этом направлении и движется.

  • Java-апплеты (доразвивались до смертельной болезни под названием Swing)
  • ActiveX (объявлена мертвой спустя семь лет после пропажи)
  • Flash (убита Стивом Джобсом)
  • Silverlight (убита руками HTML5)

В конце 1990-х кто-то (вроде Oracle?) пытались продавать нечто под названием Сетевой Компьютер. Это был маленький PC с видео-картой, некоторым количеством памяти, сетевой картой, веб-браузером и без жесткого диска. Тонкий.

Microsoft пыталась убить сеть в младенчестве. Потом они пытались быть Мамочкой для сети. Затем Билл Гейтс отошел от дел, и с тех пор я так и не могу понять стратегию Microsoft по отношению к сети.

Пока Microsoft пыталась оставаться верной Windows, как решению на основе толстого клиента, Citrix пыталась сделать этого клиента тоньше. Citrix разрабатывала решение, позволявшее использовать Windows несколькими пользователями примерно как мэйнфреймы. Одна поликлиника в Шампейн установила Citrix в своей сети, что объясняет почему я стал сидеть в очереди к врачу дольше, но не объясняет почему плата за услуги не снизилась.

Появился HTML5. На самом деле спецификация еще далека от завершения, но никто про это не знает. Людям нужно было имя и они стали говорить «HTML5». Общепринятое использование термина «HTML5» на самом деле достаточно точно. По крайней мере, если сравнивать с тем, как телекоммуникационные компании используют термин «4G».

И вот, в войне клиентов полем боя стали мобильные устройства. Смартфоны и планшеты.

Черное и белое

Как я уже говорил, люди видят в данном вопросе только черное или белое.

Частично это из-за того, что люди, дающие поляризующие предсказания, обычно звучат как провидцы. В некоторых ситуациях вдохновлять гораздо более важно, чем давать корректную информацию. Венчурные капиталисты во время надувания пузыря просто обязаны выглядеть провидцами. Так они привлекают людей к распиаренным компаниям, которые нужно быстро продать.

Другая причина в том, что людям нравится слышать однозначные предсказания. Это позволяет людям чувствовать себя лучше. Неопределенность напрягает.

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

Но в данном случае черно-белое восприятие просто неправильно.

Возможно, я не вдохновляю, но я прав.

Качество канала будет продолжать улучшаться. В 1992-ом году я пользовался модемом на 14.4 Кбит. В 2012-ом самое медленное соединение в моей жизни в сотни раз быстрее и гораздо более надежно.

Затраты на клиентскую часть продолжат снижаться. В 1992-ом я использовал рабочую станцию HP Snake 730. В 2012-ом железо в моем iPad в сотни раз лучше и стоит он на 97% дешевле.

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

Возможно думать так приятно, но неправильно.

Ставки

Как бы то ни было, мы вынуждены ставить на одну из сторон. Можно заработать много денег, если оказаться на стороне победителей в этих маленьких битвах.

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

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

Тем не менее, в этот раз я ставлю на нативные приложения по трем причинам:

  • Снижение затрат на клиентскую часть в последнее время. Например, App Store очень сильно влияет на то, как программы устанавливаются и обновляются.
  • Нынешние проблемы с качеством Канала. Пользователи смартфонов и планшетов ожидают высокое качество программ в любой момент.
  • У меня есть личные предпочтения. Я лучше потрачу свое время на создание программ, которые приводят пользователей в восторг. Wal-Mart возможно успешен, но иметь целью жизни просто сделать что-то дешевле не кажется очень уж веселым.

Именно поэтому я подтолкнул SourceGear в выпуску нативного iPad-приложения для нашего сервиса onVeracity.com.

Когда я только начал думать на тему такого приложения, кто-то из команды спросил меня: «А почему владельцы iPad не могут просто использовать веб-приложение»?

И я сказал тогда, что веб- и нативные приложения могут и будут сосуществовать.

Но нативные приложения просто лучше. Они всегда были лучше. Поэтому они и стоят дороже.

ссылка на оригинал статьи http://habrahabr.ru/post/155325/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *