Компания Google представила выпуск языка программирования Dart 1.20, который позиционируется как язык структурированного программирования для Web, обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска внутри браузера код на языке Dart компилируется в представление JavaScript, для выполнения серверных приложений развивается специальная виртуальная машина Dart VM. Код связанных с языком компонентов распространяется под лицензией BSD.
Для упрощения разработки на языке Dart поставляется SDK, включающий в себя компилятор в JavaScript — dart2js, виртуальную машину Dart VM, пакетный менеджер pub, статический анализатор кода dart_analyzer, набор библиотек, интегрированная среда разработки DartPad и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 и Vim. Для выполнения и отладки приложений на языке Dart, без компиляции в JavaScript, предоставляется Dartium — специальная сборка браузера Chromium с интегрированной виртуальной машиной Dart VM. Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub, который насчитывает 2266 пакетов, в том числе фреймворки для разработки web-приложений AngularDart и polymer.dart.
В Dart 1.20 активирована по умолчанию представленная в прошлом выпуске реализация файла «.package», пришедшего на замену директории «/packages/», в которой нередко можно было наблюдать сотни символических ссылок. Для возвращения старого поведения при выполнении команды «pub get» следует указать опцию «—packages-dir». В виртуальную машину Dart VM в новом выпуске добавлена возможность проброса перехватываемых объектов Error в случае сбоя компиляции метода, что позволяет, например, реализовать в package:test вывод наглядных трассировок стека при выполнении кода с синтаксическими ошибками. Кроме того, в Linux для распределения памяти в VM теперь задействована библиотека tcmalloc, предоставляющая больше средств для отладки и профилирования, а также быстрее выделяющая мелкие блоки памяти (большие блоки выделяются немного медленнее).