Выпуск языка программирования Dart 1.7, развиваемого Google для замены JavaScript Печать
16.10.14 15:32

Компания Google представила выпуск языка программирования Dart 1.7, который позиционируется как язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript. Код связанных с языком компонентов распространяется под лицензией BSD.

Для упрощения разработки на языке Dart поставляется SDK, включающий в себя компилятор в JavaScript - dart2js, виртуальную машину Dart VM, пакетный менеджер pub, статический анализатор кода dart_analyzer, набор библиотек, интегрированная среда разработки Dart Editor и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Eclipse, Emacs, Sublime Text 2 и Vim. Для выполнения и отладки приложений на языке Dart, без компиляции в JavaScript, распространяется Dartium - сборка браузера Chromium с интегрированной виртуальной машиной Dart VM. Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub, который насчитывает 1280 пакетов, в том числе фреймворки для разработки web-приложений AngularDart и polymer.dart.

Язык Dart обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска внутри браузера код на языке Dart может быть преобразован в JavaScript-представление или запущен напрямую под управлением специального JavaScript-интерпретатора Dartboard. Поддерживается встраивание кода на языке Dart в HTML-страницы, используя mime-тип "application/dart". На стороне сервера приложение на языке Dart может быть выполнено внутри специальной виртуальной машины, которая обеспечивает производительность выполнения близкую к компилируемым в машинный код языкам. Виртуальную машину Dart планируется интегрировать в будущие версии браузера Chrome, что позволит выполнять приложения на языке Dart без компиляции в JavaScript.

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

  • Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
  • Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;
  • Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;
  • Необязательное указание типов, использовать или нет статические типы решает разработчик. Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.
  • Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих типов;
  • Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;
  • Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;
  • Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue"). При помощи специальной прослойки возможно использование JavaScript библиотек в проектах на языке Dart;
  • Возможность создавать однородные системы, охватывающие как клиентскую, так и серверную часть. Использование одного языка и инструментария для клиентских и серверных компонентов упрощает процесс кодирования и избавляет от постоянной смены контекста.
В новой версии:
  • Упрощён способ установки и запуска написанных на Dart скриптов и утилит - для установки программы теперь достаточно активировать приложение выполнив команду "pub global activate my_cool_app", после чего для его запуска достаточно выполнить my_cool_app, вместо "dart bin/my_cool_app.dart".
  • Улучшена модель изоляции кода, добавлена возможность запуска изолированных блоков c различными пакетами (опция packageRoot), а не только под базовым приложением, что позволяет компоновать Dart-приложения с различными зависимостями.
  • В dart:async добавлен вызов errorCallback, позволяющий организовать перехват и обработку ошибок.
  • Изменён обработчик завершения соединения в HttpClient, в HttpServer добавлена новая опция HttpServer.autoCompress.
  • В dart2js добавлена возможность использования механизма отложенной загрузки при наличии нескольких Dart-приложений на одной странице.
  • Для упрощения установки и обновления Dart SDK и Dartium добавлены APT-репозитории для Debian/Ubuntu и поддержка Homebrew для OS X.
  1. Главная ссылка к новости (http://news.dartlang.org/2014/10/dart-17...)
  2. OpenNews: Язык Dart утверждён ассоциацией Ecma в качестве международного стандарта
  3. OpenNews: Обновление языка программирования Dart 1.4, развиваемого Google для замены JavaScript
  4. OpenNews: Ассоциация Ecma сформировала комитет для стандартизации языка Dart
  5. OpenNews: Google выпустил язык программирования Dart 1.0, созданный для замены JavaScript
  6. OpenNews: Новые версии языков Dart и TypeScript, претендующих на роль альтернатив JavaScript
Тип: Программы
Ключевые слова: dart, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.1, Ordu, 18:45, 16/10/2014 [ответить] [смотреть все]    [к модератору] +1 +/
> "pub global activate my_cool_app", после чего для его запуска достаточно выполнить
> my_cool_app, вместо "dart bin/my_cool_app.dart".

А в чём фишка? "pub global activate" делает
export PATH="'pwd':$PATH"; ln -s bin/my_cool_app.dart my_cool_app
Так что ли?

 
1.2, manster, 18:48, 16/10/2014 [ответить] [смотреть все]    [к модератору]
+/
Это что, надо будет веб серверу раздавать для хрома *.dart ? А разработчикам писать костыли для js и dart? Что-то не похоже на гугл подобное поведение.
 
  2.3, Александр, 19:12, 16/10/2014 [^] [ответить] [смотреть все]    [к модератору] +/
Костыли на javascript уже есть.
 
2.6, Пиони, 19:32, 16/10/2014 [^] [ответить] [смотреть все]    [к модератору] +1 +/ Сейчас клиент пишется на JS, сервер на чём только не пишут. Когда на клиенте и сервере нужно иметь одни либы и интерфейсы, приходится их дублировать сразу на 2-х языках - это время и деньги. Node.js частично решает эту проблему, принося на сервер JS

Dart - попытка решить эту проблему, попутно решив вопрос с резким снижением производительности JS в больших приложениях, и предоставив привычный синтаксис с обратной совместимость с JS

Моё сугубо личное мнение - у Dart есть все шансы захватить мир, и гугл проделал отличную работу

 
1.4, Аноним, 19:25, 16/10/2014 [ответить] [смотреть все]     [к модератору] –1 +/
Konqueror, elinks, opera mini for j2me Неужели везде будет работать ... весь текст скрыт [показать]
  1.5, Devider, 19:30, 16/10/2014 [ответить] [смотреть все]    [к модератору]  +/ А я согласен. Язык в котором
"2" + "2" -> "22",
"2" - 2  -> 0,
"2"-+-"2" -> 4
надо закопать как можно быстрее и глубже.
 
  2.7, Феня, 19:49, 16/10/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
И почему же?

1. Конкатенация строк, тут всё обычно
2. Операция '-' для Строки и Числа. Для строк она не определена, но определена для чисел, и первый операнд недвусмысленно преобразовывается в число
3. Опущены скобки, +- выступают как последовательная пара унарных операторов, из-за чего второй последний операнд превращается в число

Что именно вам не нравится?

 

Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=40849