Дапамажыце dev.by 🤍
Падтрымаць

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

22 каментарыя
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.


Барт Рид

Источник

Чытайце таксама
«Бурбалка? Не, не чулі». Бігтэхі сказалі, што працягнуць шалёна марнаваць грошы на ШІ
«Бурбалка? Не, не чулі». Бігтэхі сказалі, што працягнуць шалёна марнаваць грошы на ШІ
«Бурбалка? Не, не чулі». Бігтэхі сказалі, што працягнуць шалёна марнаваць грошы на ШІ
1 каментарый
YouTube прапанаваў супрацоўнікам звальняцца па ўласным жаданні
YouTube прапанаваў супрацоўнікам звальняцца па ўласным жаданні
YouTube прапанаваў супрацоўнікам звальняцца па ўласным жаданні
2 каментарыя
Google прадставіла ШІ-сэрвіс для маркетынгавых кампаній
Google прадставіла ШІ-сэрвіс для маркетынгавых кампаній
Google прадставіла ШІ-сэрвіс для маркетынгавых кампаній
GitHub сабраў ШІ-агентаў OpenAI, Google і Anthropic у адным месцы
GitHub сабраў ШІ-агентаў OpenAI, Google і Anthropic у адным месцы
GitHub сабраў ШІ-агентаў OpenAI, Google і Anthropic у адным месцы

Хочаце паведаміць важную навіну? Пішыце ў Telegram-бот

Галоўныя падзеі і карысныя спасылкі ў нашым Telegram-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

Каментарыяў пакуль няма.