Выпуск языка программирования Dart 1.20
Компания 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, предоставляющая больше средств для отладки и профилирования, а также быстрее выделяющая мелкие блоки памяти (большие блоки выделяются немного медленнее).
© OpenNet