Компания Google представила (http://news.dartlang.org/2014/05/dart-14-brings-deep-visibil...) выпуск языка программирования Dart 1.4 (http://www.dartlang.org/), который позиционируется как язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript. Код связанных с языком компонентов распространяется под лицензией BSD.
В новой версии представлен инструментарий Observatory (https://www.dartlang.org/tools/observatory/), предназначенный для анализа, отслеживания работы и улучшения кода на языке Dart. Работа Observatory построена на основе получаемой на лету актуальной статистики о работе виртуальной машины Dart. Observatory выдаёт информацию о работе сборщика мусора, выводит счётчики экземпляров для всех находящихся в памяти объектов, показывает детализированные данные о выполнении кода и вычислении выражений.
<center><a href="https://lh6.googleusercontent.com/hsExsMCmLwVWtK4ljvpkm-afj8... src="http://www.opennet.me/opennews/pics_base/0_1400782233.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
Из других улучшений выделяется завершение переработки на языке Dart статического анализатора кода dart_analyzer (https://www.dartlang.org/docs/dart-up-and-running/contents/c...), который ранее был написан на Java. Проведена оптимизация файловых операций ввода/вывода, ускорение особенно ощутимо для больших файлов. Добавлена, пока работающая только в Linux, экспериментальная поддержка совместного использования сетевых сокетов между изолированными обработчиками (isolate (https://api.dartlang.org/apidocs/channels/stable/dartdoc-vie...)).
Небольшие улучшения внесены (https://groups.google.com/a/dartlang.org/forum/#!topic/annou...) в интегрированную среду разработки Dart Editor (http://www.dartlang.org/docs/editor/) и в различные компоненты SDK, в том числе в dart2js (http://www.dartlang.org/docs/dart2js/) (компилятор в JavaScript), виртуальную машину Dart VM (http://www.dartlang.org/docs/standalone-dart-vm/), пакетный менеджер pub (http://pub.dartlang.org/), набор библиотек и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm (https://www.dartlang.org/tools/webstorm/), Eclipse (https://www.dartlang.org/tools/eclipse-plugin/), Emacs (https://github.com/nex3/dart-mode), Sublime Text 2 (https://github.com/dart-lang/dart-sublime-bundle#readme) и Vim (https://github.com/dart-lang/dart-vim-plugin). Dartium, сборка браузера Chromium с интегрированной виртуальной машиной Dart VM, обновлена до кодовой базы Chrome 35. В репозиторий pub (http://pub.dartlang.org) добавлено 109 новых пакетов, общее число доступных пакетов составляет 934.
Напомним, что язык Dart обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска внутри браузера код на языке Dart может быть преобразован в JavaScript-представление или запущен напрямую под управлением специального JavaScript-интерпретатора Dartboard. Поддерживается (http://www.dartlang.org/articles/embedding-in-html/) встраивание кода на языке Dart в HTML-страницы, используя mime-тип "application/dart". На стороне сервера приложение на языке Dart может быть выполнено внутри специальной виртуальной машины, которая обеспечивает производительность выполнения близкую к компилируемым в машинный код языкам. Виртуальную машину Dart планируется интегрировать в будущие версии браузера Chrome, что позволит выполнять приложения на языке Dart без компиляции в JavaScript.
Особенности языка Dart:
- Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
- Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;
- Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;
- Необязательное указание типов, использовать или нет статические типы решает разработчик. Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.
- Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих (http://www.dartlang.org/articles/optional-types/) типов;
- Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;
- Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;
- Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");
- Возможность создавать однородные системы, охватывающие как клиентскую, так и серверную часть. Использование одного языка и инструментария для клиентских и серверных компонентов упрощает процесс кодирования и избавляет от постоянной смены контекста.
URL: http://news.dartlang.org/2014/05/dart-14-brings-deep-visibil...
Новость: http://www.opennet.me/opennews/art.shtml?num=39840