The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новые версии языков Dart и TypeScript, претендующих на роль ..."
Отправлено opennews, 24-Июн-13 20:47 
Компания Google представила (http://googledevelopers.blogspot.ru/2013/06/dart-faster-edit...) первую бета-версию проекта Dart (http://www.dartlang.org/), в рамках которого развивается язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript, решающей имеющиеся в настоящее время проблемы с расширяемостью, производительностью и поддержкой разработки сложных приложений.


Язык обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для упрощения разработки на языке Dart поставляется SDK (http://www.dartlang.org/docs/sdk/), включающий в себя компилятор dart2js (http://www.dartlang.org/docs/dart2js/), виртуальную машину Dart VM (http://www.dartlang.org/docs/standalone-dart-vm/), пакетный менеджер pub (http://pub.dartlang.org/) и набор библиотек. Для выполнения и отладки приложений на языке Dart, без компиляции в JavaScript, распространяется Dartium - сборка браузера Chromium с интегрированной виртуальной машиной Dart VM. Дополнительно доступен (http://www.dartlang.org/downloads.html) расширенный пакет Dart Editor (http://www.dartlang.org/docs/editor/), в который помимо SDK и Dartium включена специализированная среда разработки на языке Dart.


Из представленных в новом выпуске изменений отмечается (http://news.dartlang.org/2013/06/release-notes-for-darts-bet...) проведение оптимизаций различных компонентов платформы. Обеспечена генерация более компактного JavaScript-кода, для некоторых типов программ удалось (https://code.google.com/p/dart/issues/detail?id=11218) добиться сокращения размера до 3.7 раз за счёт реализации техники совместного использования кода, встречающегося в разных классах. Заметно увеличена производительность виртуальной машины, которая по сравнению с прошлым выпуском на 33% быстрее при выполнении теста DeltaBlue и на 40% быстрее в тесте Tracer. Для ускорения работы VM также реализована полноценная поддержка акселерации (http://www.dartlang.org/slides/2013/02/Bringing-SIMD-to-the-...) с использованием инструкций SIMD. Компилятор dart2js демонстрирует прирост производительности на 20% в тесте  Richards, на 10% в тесте DeltaBlue, и на 8% в Tracer.


На 20% ускорена работа анализатора кода в редакторе Dart Editor, позволяющего выявлять ошибки и выводить предупреждения по мере кодирования, без необходимости отдельного выполнения unit-тестов. Добавлены новые инструменты рефакторинга для переименования библиотек и преобразования методов в геттеры и наоборот. Расширены средства подсветки синтаксиса. Упрощён процесс развёртывания web-приложений при помощи новой команды "pub deploy", которая создаёт директорию с кодом приложения и связанными с ним ресурсами, и производит подготовку кода для использования с выбранным web-сервером.


Особенности языка Dart:

-  Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.

-  Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;

-  Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;

-  Необязательное указание типов, использовать или нет статические типы решает разработчик. Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.

-  Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих (http://www.dartlang.org/articles/optional-types/) типов;


-  Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;


-  Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;

-  Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");


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


Одновременно компания Microsoft опубликовала (http://blogs.msdn.com/b/somasegar/archive/2013/06/18/typescr...) новый выпуск языка программирования TypeScript 0.9 (http://typescriptlang.org/).  TypeScript позиционируется в качестве языка для разработки web-приложений, расширяющего возможности JavaScript. Код компилятора, транслирующего код TypeScript в представление JavaScript, распространяется (http://typescript.codeplex.com/) под лицензией Apache, разработка ведётся в публичном репозитории через сервис  CodePlex. Спецификации (http://go.microsoft.com/fwlink/?LinkId=267121) языка открыты и опубликованы в рамках соглашения Open Web Foundation Specification Agreement (http://www.openwebfoundation.org/legal/the-owf-1-0-agreement...).

В отличие от Google Dart (https://www.opennet.ru/opennews/art.shtml?num=31991), TypeScript не является кардинальной переработкой  JavaScript, а лишь расширяет возможности JavaScript, оставаясь полностью обратно совместимым, что сводит к минимуму затраты на адаптацию существующих приложений. От JavaScript новый язык отличается возможностью явного определения типов, поддержкой использования полноценных классов (как в традиционных объектно-ориентированных языках), а также поддержкой подключения модулей. Статическая типизация позволяет избежать многих ошибок в процессе разработки, даёт возможность задействовать дополнительные техники оптимизации, упрощает отладку и делает код более читаемым и простым для доработки и поддержки сторонними разработчиками.


Основной принцип языка - весь существующий код на JavaScript совместим с TypeScript, т.е. в программах на TypeScript можно использовать стандартные JavaScript-библиотеки и ранее созданные наработки. Более того, можно оставить существующие JavaScript-проекты в неизменном виде, а данные о типизации разместить в виде аннотаций, которые можно поместить в отдельные файлы, которые не будут мешать разработке и прямому использованию проекта (например, подобный подход удобен при разработке JavaScript-библиотек). Итоговое приложение на TypeScript компилируется в обычный JavaScript, который можно выполнить в любом современном web-браузере или использовать совместно с серверной платформой Node.js. Редактировать код можно в штатных редакторах, например, файлы для восприятия расширенного синтаксиса TypeScript уже подготовлены для Vim и Emacs. Файлы с декларациями статических типов подготовлены для некоторых популярных JavaScript-библиотек, среди которых jQuery.

Наиболее существенным улучшением в новом выпуске является поддержка generic, который позволяет  вводить специальные дополнительные параметры типов, которые позволяют выявлять ошибки в реализации классов, интерфейсов и методов без дополнительных аннотаций типов (например, генерик для функции map позволяет считать, что переменные создаваемые конструкциями в которых используется map можно рассматривать как числовые). В новом выпуске также представлен финальный вариант синтаксиса для перечислимых типов (enums) и перегрузки методов. Кроме того внесены нарушающие совместимость модификации, направленные на упрощения совместног...

URL: http://googledevelopers.blogspot.ru/2013/06/dart-faster-edit...
Новость: https://www.opennet.ru/opennews/art.shtml?num=37266

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру