Что такое Дарт?

Dart - это язык программирования приложений, изначально разработанный Google. Он используется для создания веб-приложений, серверов, мобильных приложений и устройств Интернета вещей (IoT).

да. Это открытый код.

Вот краткое введение, если вы новичок в Dart:

Итак, что нового в Dart 2?

Dart 2 меняет язык Dart во многих отношениях, некоторые из которых не имеют обратной совместимости.

Устаревшие функции

Следующие функции являются избыточными, и их не будет в Dart 2:

Выбранный режим. Строгий режим заменяет отмеченный режим. Чтобы узнать, чем они отличаются, см. В чем разница между усиленным режимом и отмеченным режимом?

Dartium: компилятор dartdevc выполняет быструю компиляцию в JavaScript благодаря сильному режиму. Вместо Dartium вы будете использовать для тестирования Chrome или другие стандартные браузеры. Для получения информации об удалении Дартиума см. Более сильный дротик для всех.

А теперь хорошие новости. Dart 2 представляет строгий режим и статическую типизацию:

В Dart 1.x типы необязательны. Вы можете удалить все аннотации типов из программы Dart 1.x, не влияя на ее поведение.

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

Вы можете подготовиться к Dart 2, используя Dart 1.x в сильном режиме.

Краткое изложение грубых деталей: Dart 2 поддерживает вывод типов и во многих случаях не требует аннотаций типов. Например, следующий код действителен как в Dart 1.x, так и в Dart 2:

var i = 1;
  // i is dynamic in Dart 1.x
  // i is inferred as int in Dart 2
  dynamic x = 1;
  x = "Hello";

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

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

Чтобы поэкспериментировать с усиленным режимом, откройте DartPad и установите флажок Сильный режим в правом нижнем углу.

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

Чтобы использовать усиленный режим в Dart 1.x, вы должны включить его. Обратите внимание, что проверки времени выполнения пока недоступны, если вы не разрабатываете для Интернета и не используете dartdevc.

Много ли под капотом?

Вот что Эмили Фортуна говорит о Dart 2 и Flutter на DartConf 2018: