Support us

Google работает над (не таким уж) новым языком программирования и платформой для Веба — Dart… Но может быть, это отличная технология, ведущая в никуда?

Оставить комментарий
Google работает над (не таким уж) новым языком программирования и платформой для Веба — Dart… Но может быть, это отличная технология, ведущая в никуда?

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

В апреле этого года я с удовольствием посетил лекцию Криса Баккета, на которой он знакомил аудиторию с новейшей платформой для веб-программирования от Google — Dart. К тому моменту Крис уже успел проработать над Dart около полутора лет, постоянно комментируя этот процесс в своем блоге, а также написал книгу «Dart in Action». В принципе, он является одним из ведущих специалистов по Dart (если не самым авторитетным) из всех, кто не работает в Google.  

Если вы хотите поближе познакомиться с этим языком, настоятельно рекомендую посмотреть видео с этой лекцией, которую вы найдете здесь. Слайды выложены по этой ссылке (с просмотром в браузере Chrome могут возникать проблемы).

Подробнее о впечатлениях автора от Dart, непростых взаимоотношениях этого языка со старыми версиями браузеров и, наконец, в каких случаях и для каких типов компаний он, по мнению автора, применим.

В целом я был очень впечатлен. Язык программирования Dart кажется мне очень красивым, в нем имеется обширная и хорошо продуманная библиотечная поддержка, а также ряд отличных готовых инструментов. Я с удивлением обнаружил, что язык даже снабжен собственной IDE — Dart Editor. Создается впечатление, что эта интегрированная среда разработки основана на очень минималистской (спасибо!) сборке Eclipse*. 

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

К сожалению, вот и первая большая закавыка: а что такое «современный браузер»?

Я спросил Криса, и он ответил, что имеет в виду IE9 или выше, а также последние версии Firefox, Chrome, iOS и Opera. Таким образом, язык не будет работать в IE8 и более старых браузерах. Это объясняется тем, что разработчики из Google стремились предоставить пользователям все самые современные функции.

Теперь я понимаю это; я даже склоняюсь к мысли, что так действительно следовало поступить, но приходится признать, что здесь имеется очевидная проблема.

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


Ого! Получается, 32% пользователей Интернета до сих пор работают с IE 6, 7 или 8**? Это ведь фактически треть от всей аудитории. Ведь ни один здравомыслящий владелец сайта не откажется от целой трети трафика, верно? 

Разумеется, эти показатели отражают усредненную картину, учитывая сотни и даже тысячи сайтов со всего Веба, и могут быть нерепрезентативны для вашего сайта, где распределение трафика по разным браузерам может быть совершенно иным. Итак, давайте уточним ситуацию и познакомимся с данными с сайта Red Gate (по состоянию на 11 апреля 2013 года):
 

Здесь складывается иная картина: старые браузеры в общей сложности дают ничтожные 10% нашего трафика. Отлично! Почему бы просто не отказаться от поддержки этих браузеров?

Нет, так не выйдет, и вот почему…

Суммы, которые мы зарабатываем за счет пользователей, приходящих к нам через старые браузеры, значительно превышают наши затраты на поддержку версий сайта для этих браузеров. Это верно даже для IE 7, чья аудитория на нашем сайте составляет каких-то 1,2%: мы получаем от этих пользователей гораздо больше денег, чем тратим на поддержку их допотопных, барахлящих старых браузеров, которые действительно давно следовало бы заменить. Вывод: процентные показатели в данном случае могут быть обманчивы, и необходимо также учитывать абсолютное количество пользователей.

Конечно, доля старых браузеров устойчиво снижается, но я не думаю, что они так уж скоро сойдут со сцены. Около 11% наших пользователей до сих пор работают с Windows XP, поэтому вряд ли они в скором времени перейдут на IE выше восьмой версии (правда, кто-то из них может переключиться на Chrome или Firefox). По некоторым источникам, доля IE 8 на рынке снижается примерно на 0,5% в месяц, но я отношусь к этой цифре немного скептически. Даже если она не завышена, то придется ждать еще не менее 2 лет, пока количество пользователей IE 8 снизится до коммерчески незначительной величины.  

Похожая ситуация складывается и с операционными системами. Чего стоит тот факт, что Windows XP уже целых 12 лет, но многие пользователи считают, что она «достаточно хороша». Windows 7 потенциально может лишь усугубить эту ситуацию, но, к счастью, Microsoft пошла на решительные шаги и стала продвигать IE 10 через обновления Windows Update. Будем надеяться, что эта стратегия поможет нам своевременно обзаводиться новыми версиями браузеров!

Итак, на настоящий момент мировая экономика по-прежнему испытывает последствия хаоса, спровоцированного финансовым кризисом 2007—2008 года, и в такой ситуации сложно поверить, что многие компании пойдут на потерю 10—20% своих потенциальных посетителей ради даже самой захватывающей клиентской технологии, в данном случае — Dart.
Есть и другая проблема, связанная с потоком задач.

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

Все это хорошо, но если у вас есть машинный интерфейс, написанный по шаблону MVC, а вы привыкли разрабатывать в Visual Studio как машинный, так и пользовательский интерфейс, то оказываетесь фактически без поддержки. Dart не предоставляет инструментария для работы с Visual Studio, поэтому вам остается просто отказаться от Dart Editor, если вы, конечно, не готовы выстраивать всю интеграцию сами. Работать с Dart тем более неудобно, поскольку он нарушает привычный для вас поток задач. Тем не менее, полагаю, что если Dart продолжит развиваться, эта проблема в долгосрочной перспективе будет решена. 

Итак, до конца года мы все-таки дождались выхода стабильной версии Dart, но решитесь ли вы использовать этот язык в реальных боевых проектах? Да, на этот вопрос можно ответить утвердительно, но только если:

  • вы абсолютно уверены, что в вашем целевом сегменте рынка не используется браузер IE8 или ниже;
  • вы разрабатываете одностраничное приложение (я бы пока не рекомендовал использовать Dart для многостраничных приложений);
  • вы привыкли работать на сервере со строго типизированным языком и желаете воспользоваться сильными сторонами строгой типизации и на клиентской стороне;
  • вас не пугает перспектива серьезного изменения потока задач, а также вам не придется работать с унаследованным машинным интерфейсом***.

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

Учитывая все эти соображения, язык Dart представляется значительно более органичным для стартапов, чем для больших компаний. Правда, это ощущение немного не согласуется с такими явно «корпоративными» чертами Dart, которые сближают его со структурированными и строго типизированными языками. У меня складывается впечатление, что язык Dart в принципе сработан добротно, но пока не является идеальным вариантом для достижения каких-либо практических целей. Возможно, со временем язык окрепнет и ситуация изменится, но пока я отношусь к нему скептически.

* ДИСКЛЕЙМЕР: я испытываю пещерную ненависть к Eclipse. Я презираю ее всеми фибрами души. Я скачал Android SDK, поработал с ним около недели, пытаясь написать и развернуть в этой среде приложение для Android. Пришел к выводу, что этот процесс, мягко говоря, убог, как и все мои предыдущие опыты с Eclipse. Уважаемые читатели, обожающие Eclipse, прошу извинить меня за такую резкую оценку. Я остаюсь сторонником таких инструментов, как Visual Studio, WebStorm и IntelliJ, и хотя Eclipse функционально им практически не уступает (а возможно, и превосходит  я не знаю), мне эта IDE кажется совершенно нелогичной.

** Кстати, вы легко найдете источники, в которых приводятся существенно иные данные. Например, в этом посте автор указывает, что IE8 установлен всего у 10% пользователей, и его рыночная доля снижается на 0,5% в месяц.

*** Крис видит здесь отличные перспективы для интеграции с другими технологиями (об этом он говорит в начале своей лекции). Вы гораздо охотнее согласитесь с ним, если привыкли работать с Java/Eclipse, но я бы поспорил с Крисом, так как мой профессиональный опыт в большей степени связан со стеком Microsoft.


Барт Рид

Источник

Читайте также
10+ сертификаций Coursera, которые могут изменить вашу карьеру
10+ сертификаций Coursera, которые могут изменить вашу карьеру
10+ сертификаций Coursera, которые могут изменить вашу карьеру
Бюджетный способ прокачать навыки и повысить зарплату — это профессиональный сертификат от Google, IBM или крупного зарубежного университета. На Coursera как раз можно найти десятки полезных обучающих программ по машинному обучению, проджект-менеджменту и не только. Собрали 10+ сертификаций, которые будут выигрышно смотреться в резюме как новичка, так и опытного специалиста.
Дизайн, VR и интернет вещей: 10 доступных онлайн-курсов от Google, Amazon и других гигантов
Дизайн, VR и интернет вещей: 10 доступных онлайн-курсов от Google, Amazon и других гигантов
Дизайн, VR и интернет вещей: 10 доступных онлайн-курсов от Google, Amazon и других гигантов
На платформе Coursera можно найти сотни курсов от крупных корпораций, включая Google, Amazon и HubSpot. Это отличная возможность начать новую карьеру, повысить квалификацию и просто получить плюс в профессиональную карму. Мы собрали 10 программ от ИТ-компаний, которые помогут освоить машинное обучение, UX-дизайн, продакт-менеджмент, кибербезопасность и многое другое.
7 отличных курсов по финансам. Уплыть «с галеры» и основать свой стартап
7 отличных курсов по финансам. Уплыть «с галеры» и основать свой стартап
7 отличных курсов по финансам. Уплыть «с галеры» и основать свой стартап
Если вы посмотрели «Волк с Уолл-стрит» и хотите, как Леонардо ди Каприо прогуливаться по яхте с бокалом вина в руках, но не знаете, с чего начать, подборка курсов Digitaldefynd станет для вас отличным стартом. Здесь представлены как платные, так и бесплатные программы, которые помогут вам освоить финансовое моделирование. Они подойдут не только для начинающих слушателей, но и для экспертов.
Не Paint-ом единым. 13 курсов по UX/UI-дизайну для продвинутых и не только
Не Paint-ом единым. 13 курсов по UX/UI-дизайну для продвинутых и не только
Не Paint-ом единым. 13 курсов по UX/UI-дизайну для продвинутых и не только
Если вам нравится думать о том, как с минимальными затратами получить максимум эффективности, то проектирование пользовательских интерфейсов определенно вас заинтересует. DigitalDefynd сделал подборку курсов по UX/UI-дизайну как для новичков, так и для продвинутых специалистов. 

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.