The OpenNET Project / Index page

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

16.10.2014 18:32  Выпуск языка программирования Dart 1.7, развиваемого Google для замены JavaScript

Компания 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/...)
  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
Лицензия: CC-BY
Тип: Программы
Ключевые слова: dart
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 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
    Так что ли?

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

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

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

     
     
  • 3.15, Аноним, 21:36, 16/10/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    Какая к черту обратная совместимость Каждый if JS-а надо проверять, что там на ... весь текст скрыт [показать]
     
     
  • 4.23, uhbyujdibr, 22:59, 16/10/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    не пиши ересь про JavaScript сначала выучи его, может тогда сможешь что-то ум... весь текст скрыт [показать]
     
  • 4.31, funny_falcon, 06:46, 17/10/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    8250 Динамики нет, нельзя динамически порождать классы прототипы , varargs ф... весь текст скрыт [показать]
     
  • 1.4, Аноним, 19:25, 16/10/2014 [ответить] [смотреть все]  
  • +/
    Konqueror, elinks, opera mini for j2me Неужели везде будет работать ... весь текст скрыт [показать]
     
     
  • 2.28, Crazy Alex, 01:41, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    При всей полезности elinks временами - что из этого является современным браузер... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, Devider, 19:30, 16/10/2014 [ответить] [смотреть все]  
  • +8 +/
    А я согласен. Язык в котором
    "2" + "2" -> "22",
    "2" - 2  -> 0,
    "2"-+-"2" -> 4
    надо закопать как можно быстрее и глубже.
     
     
  • 2.7, Феня, 19:49, 16/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    И почему же 1 Конкатенация строк, тут всё обычно 2 Операция - для Строки и... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.10, angra, 20:46, 16/10/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    А чему равно a b, если a b 2 А как насчет сравнений Операции для строк должн... весь текст скрыт [показать]
     
     
  • 4.18, Xasd, 21:59, 16/10/2014 [^] [ответить] [смотреть все]  
  • +/
    code var a_int parseInt a где a равно 2 или 2 var b_int parseInt b ... весь текст скрыт [показать]
     
     
  • 5.26, angra, 23:49, 16/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Ну сравни a b против a toString b toString a b против a parseFloat b parse... весь текст скрыт [показать]
     
     
  • 6.32, funny_falcon, 06:56, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    А зачем на одну по смыслу операцию пара операторов Я про сравнение Отдельная к... весь текст скрыт [показать]
     
     
  • 7.44, Xasd, 17:11, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    ну уж приучите себя как-нибудь не делать детские ошибки что я тут ещё могу ... весь текст скрыт [показать]
     
     
  • 8.46, Vkni, 23:14, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Зачем заниматься отлавливанием этих детских ошибок , если это может делать комп... весь текст скрыт [показать]
     
  • 7.45, Vkni, 23:10, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Эта проблема давно решена в современных функциональных языках откуда и дерут вс... весь текст скрыт [показать]
     
  • 3.13, Devider, 20:55, 16/10/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Неинтуитивность.
     
     
  • 4.24, uhbyujdibr, 23:06, 16/10/2014 [^] [ответить] [смотреть все]  
  • –3 +/
    это не интуитивность виновата, а просто существуют люди которые не могут научить... весь текст скрыт [показать]
     
     
  • 5.25, Devider, 23:32, 16/10/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    Не знаю, при чем тут эти люди, но если операции и - ведут себя принципиально п... весь текст скрыт [показать]
     
  • 3.14, Devider, 20:59, 16/10/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    Виноват, кавычки забыл во втором примере 2 2 равно 22 2 - 2 равно ... весь текст скрыт [показать]
     
     
  • 4.27, Аноним, 00:00, 17/10/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    > "2" + "2" равно "22".
    > "2" - "2" равно  0.

    Гугл крут.... Oo

     
  • 3.20, Vkni, 22:06, 16/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Зачем let z 2 int_of_string 2 Неявные преобразования типов ... весь текст скрыт [показать]
     
  • 2.39, Диванный Специалист, 11:23, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вы так, батенька, можете добрую половину языков программирования, используемых с... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.40, Devider, 12:00, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Назовите хотя бы 5 штук?
     
  • 2.43, Kodir, 13:49, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    1 это плюсадин, а не конкатенация Вот поэтому в языке Ди есть операция ... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, Аноним рус спб, 20:34, 16/10/2014 [ответить] [смотреть все]  
  • +/
    а тут как раз пару дней назад:

    Angular.Dart v1.0 is our first production-ready release

    https://github.com/angular/angular.dart/commit/7a745d5df5081fc03275a3ba0ea884f

     
     
  • 2.36, другой Аноним, 09:51, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Интересно соответствие его версий, версиям и возможностям JS Angular-a...
     
  • 1.11, Tav, 20:48, 16/10/2014 [ответить] [смотреть все]  
  • +/
    > Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.

    Очередной язык, созданный быть привычным (ориентация на популярность у быдлокодеров), а не быть лучше.

     
     
  • 2.29, Crazy Alex, 01:46, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Для того, чтобы быть лучше нужно, чтобы было то, лучше чего надо быть А в вебе ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.38, Tav, 11:02, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Есть масса языков, которые компилируются в JS, и на JS давно уже пора смотреть к... весь текст скрыт [показать]
     
     
  • 4.41, Crazy Alex, 13:36, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Индустриальный вебовский язык и не должен что-то особенное из себя представлять ... весь текст скрыт [показать]
     
  • 1.12, Аноним, 20:53, 16/10/2014 [ответить] [смотреть все]  
  • +/
    > polymer.dart.

    Гугл как бы намекает нам на перспективы этой фигни :).

     
  • 1.16, Аноним, 21:40, 16/10/2014 [ответить] [смотреть все]  
  • –2 +/
    Теперь разработчикам Оперы надо для солидности  запилить принципиально новый ЯП
     
     
  • 2.21, Аноним, 22:29, 16/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Так нет больше никакой оперы и разработчиков Есть проприетарная шкурка для гугл... весь текст скрыт [показать] [показать ветку]
     
  • 1.17, Аноним, 21:50, 16/10/2014 [ответить] [смотреть все]  
  • +/
    Список изменений очень скудный
     
     
  • 2.30, Crazy Alex, 01:47, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Логично - стабилизация. Чем быстрее перетсанут язык крутить тем больше шансов его таки запулить в продакшн.
     
     
  • 3.33, Аноним, 07:47, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Язык где сложение и вычитание работает по разному надо не в продакшн а в гроб ... весь текст скрыт [показать]
     
     
  • 4.42, Crazy Alex, 13:45, 17/10/2014 [^] [ответить] [смотреть все]  
  • +/
    Хм, я чего-то считал, что  это поправили. Таки да - в гроб.
     
  • 2.35, другой Аноним, 09:36, 17/10/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    возможно уже готовят к продакшен стадии и скоро поместят его в хром.
     
  • 1.34, Тупой молодец, 09:31, 17/10/2014 [ответить] [смотреть все]  
  • +/
    >производительность выполнения близкую к компилируемым в машинный код языкам

    все так говорят, только вот близкая она у единиц, и то только на синтетических тестах

     
  • 1.37, другой Аноним, 10:13, 17/10/2014 [ответить] [смотреть все]  
  • –1 +/
    >>Dart Editor requires Java version 6 or higher..

    Раз уже есть стэндалон версия Dart VM написали бы Editor на том же Dart.


    Мозилла в своё время привнесла JS в веб, сейчас большой шанс есть у Гугла привнести Dart с помощью его Хрома и Андроида.

    Если производительность у Дарта будет заметно выше чем у JS и будет фоллбэк онлайн перекомпиляция в случае если не поддерживается Дарт (через дополнения в Мозилле и Хром для старых версий), то взлетит.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor