Анонс Dart 2.0: Оптимизированный для клиентской разработки

Анонс Dart 2.0: Оптимизированный для клиентской разработки

Сегодня мы анонсируем Dart 2, перезагрузку языка, которая более полно отражает наше видение Dart как уникально оптимизированного языка для клиентской разработки на Web и мобильных платформах.

Dash — официальный маскот языка С Dart 2 мы значительно усилили и упростили систему типов, очистили синтаксис и переписали большую часть инструментария с нуля, чтобы сделать мобильную и веб-разработку более приятной и продуктивной. Dart 2 также учитывает уроки, полученные от ранних пользователей языка, включая Flutter, AdWords и AdSense, а также тысячи улучшений, больших и малых, сделанных в ответ на отзывы клиентов.

Основные принципы Dart

Прежде чем говорить о нововведениях в Dart 2, стоит понять, почему мы считаем, что Dart удовлетворяет всем потребностям разработчиков клиентского кода.

В дополнение к свойствам, необходимым для современного языка общего назначения, язык для клиентской разработки должен быть:

  • Продуктивным. Синтаксис должен быть четким и кратким, инструментарий — простым, а цикл разработки — почти мгновенным
  • Быстрым. Производительность запуска и выполнения должны быть отличными и предсказуемыми даже на медленных мобильных устройствах.
  • Портируемым. Разработчики клиентских приложений должны сегодня думать о трех платформах: iOS, Android и Web. Язык должен хорошо работать на всех из них.
  • Доступным. Язык не может уходить слишком далеко от знакомых вещей, если он хочет оставаться понятным миллионам разработчиков.
  • Реактивным. Язык должен поддерживать реактивный стиль программирования.
  • Dart увеличивает скорость разработки, поскольку он имеет четкий, лаконичный синтаксис и может работать на виртуальной машине с JIT-компилятором. Это позволяет поддерживать горячую перезагрузку в процессе мобильной разработки, что приводит к супер быстрым циклам разработки, где вы можете редактировать, компилировать и заменять код в уже запущенном приложении на устройстве.
  • Благодаря своей способности эффективно компилировать исходный код заранее , Dart обеспечивает предсказуемую и высокую производительность, а также быстрый запуск на мобильных устройствах.
  • Dart поддерживает компиляцию в нативный код (ARM, x86 и т.д.) для быстрой работы на мобильных устройствах, а также транспиляцию в эффективный JavaScript код для Web.
  • Dart понятен для большинства разработчиков благодаря своим объектно-ориентированным аспектам и синтаксису, которые, по словам наших пользователей, позволяют C++, C#, Objective-C или Java разработчикам писать код на Dart буквально через несколько дней.
  • Dart с его SDK хорошо подходит для реактивного программирования, он включает потоки и фьючерсы ; также обладает хорошей поддержкой управления короткоживущими объектами с помощью быстрого сборщика мусора.

Dart 2: улучшение клиентской поддержки

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

Строгая типизация

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

Конечно, в этом нет ничего уникального. В экосистеме Web также наблюдается тенденция к добавлению типов к JavaScript. Например, TypeScript и Flow расширяют JavaScript аннотациями и выводом типов, чтобы улучшить возможности для анализа кода.

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

Что делает этот код? Вы можете ожидать, что он напечатает «27». Но без системы типов Dart 2 он печатал «10000», потому что это самый первый элемент в списке строк, упорядоченных лексикографически. Однако с Dart 2 этот код выдаст ошибку типизации.

Пользовательский интерфейс через код

При создании пользовательского интерфейса необходимость переключаться между отдельным языком разметки и языком программирования, который вы используете в приложении, часто вызывает раздражение. Мы стремимся уменьшить необходимость переключения контекста. Dart 2 вводит необязательные new и const. Этот функционал очень ценен сам по себе, а также открывает другие возможности. Например, благодаря необязательным new и const мы можем сделать определение виджета более чистым и простым.

Использование Dart на стороне клиента

Мобильные платформы

Одним из самых важных применений Dart является Flutter, новая мобильная платформа Google для создания пользовательских интерфейсов для iOS и Android. Официальное приложение для чрезвычайно популярного шоу Hamilton: The Musical — пример того, как Flutter помогает разработчикам создавать приложения в рекордные сроки. Flutter использует реактивный стиль программирования и контролирует пользовательский интерфейс пиксель за пикселем. Для Flutter, Dart подходит идеально, с точки зрения простоты обучения, реактивного программирования, высокой скорости разработки и высокопроизводительной системы исполнения с быстрым сборщиком мусора.

Что дальше

С Flutter и Dart разработчики наконец-то получили возможность писать качественные приложения для Android, iOS и Web без каких-либо компромиссов, используя общую кодовую базу. В результате члены команды могут плавно перемещаться между платформами и помогать друг другу, например, проверять код. Такие команды, как AdWords Express и AppTree, переиспользуют от 50% до 70% своего кода на мобильных устройствах и в Web.

Dart — проект с открытым исходным кодом, поддерживает открытый стандарт ECMA. Мы приветствуем вклад как в основной проект Dart, так и в растущую экосистему пакетов для Dart.

Вы можете попробовать Dart 2 во Flutter и Dart SDK прямо из командной строки. Для Dart SDK, загрузите Dart 2 из dev канала и запустите свой код с флагом --preview-dart-2. Мы также приглашаем вас присоединиться к нашему сообществу на gitter.

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

Примечание переводчика: присоединяйтесь к рускоязычному сообществу Dart в Telegram или Slack.

📎📎📎📎📎📎📎📎📎📎