Язык Google Dart

google dart логотип

Dart - это оптимизированный для клиентов язык от Google для быстрого создания приложений на любой платформе.

Оптимизирован для пользовательского интерфейса

  • Зрелый и полный async-await для пользовательских интерфейсов, содержащих событийно-ориентированный код, в паре с изолированным параллелизмом.
  • Язык программирования, оптимизированный для создания пользовательских интерфейсов, с такими функциями, как оператор spread для расширения коллекций и collection if для настройки UI для каждой платформы.
  • Язык программирования, который легко изучить, со знакомым синтаксисом.

Продуктивная разработка

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

Платформы

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

Гибкая технология компилятора позволяет выполнять код Dart разными способами, в зависимости от целевой платформы и целей:

  • Dart Native: Для программ, ориентированных на устройства (мобильные, настольные, серверные и другие), Dart Native включает в себя как Dart VM с JIT ( just-in-time ) компиляцией, так и AOT ( ahead-of-time ) компилятор для создания машинного кода.
  • Dart Web: Для программ, ориентированных на веб, Dart Web включает компилятор времени разработки ( dartdevc ) и компилятор времени производства ( dart2js ).

Dart Native (VM JIT и AOT).

Dart Native позволяет запускать код Dart, скомпилированный в нативный машинный код ARM или X64 для мобильных, настольных и серверных приложений.

Фреймворк Flutter - популярный многоплатформенный набор инструментов UI, который работает на базе Dart Native, когда ориентирован на мобильные или настольные устройства.

Молниеносный рабочий процесс разработчика (Dart VM JIT)

Быстрый цикл работы разработчика очень важен для итераций. Dart VM имеет компилятор just-in-time (JIT), который поддерживает как чистую интерпретацию (как требуется, например, на устройствах iOS), так и оптимизацию во время выполнения.

Оптимизированный производственный код (Dart AOT)

Когда приложения готовы к развертыванию на производстве - будь то публикация в магазине приложений или развертывание на производственном бэкенде - вы можете использовать компилятор Dart AOT для предварительной компиляции вашего приложения в родной машинный код ARM или X64. Ваше AOT-компилированное приложение запускается мгновенно и работает без сбоев.

AOT-компилированный код запускается внутри эффективной среды выполнения Dart, которая применяет надежную систему типов Dart и управляет памятью с помощью быстрого выделения объектов и генерационного сборщика мусора.

Dart Web (JavaScript)

Dart Web позволяет выполнять код Dart на веб-платформах, работающих на JavaScript. С помощью Dart Web вы компилируете код Dart в код JavaScript, который, в свою очередь, запускается в браузере - например, V8 в Chrome.

Фреймворк Flutter, популярный многоплатформенный набор инструментов UI, работает на базе Dart Web, когда речь идет о веб-приложениях. Фреймворк AngularDart, популярный набор инструментов для веб-приложений, также работает на базе Dart Web.

Молниеносный рабочий процесс разработчика (компилятор Dart dev)

Компилятор Dart dev ( dartdevc ) - это компилятор Dart-to-JavaScript , оптимизированный для быстрой работы. Вместо того чтобы использовать dartdevc напрямую, вы используете его с webdev , инструментом, который поддерживает основные задачи разработчика, такие как запуск, отладка и сборка.

Оптимизированный производственный код (компилятор Dart JS)

Инструмент dart2js компилирует код Dart в быстрый, компактный, пригодный для развертывания JavaScript. В нем используются такие методы, как устранение мертвого кода.

Hello World

В каждом приложении есть функция main(). Чтобы вывести текст на консоль, можно использовать функцию верхнего уровня print():

void main() {
  print('Hello, World!');
}

Переменные

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

var name = 'Voyager I';
var year = 1977;
var antennaDiameter = 3.7;
var flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
var image = {
  'tags': ['saturn'],
  'url': '//path/to/saturn.jpg'
};

Источники