The OpenNET Project / Index page

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

Обновление языка программирования Dart 1.4, развиваемого Google для замены JavaScript

22.05.2014 22:23

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

В новой версии представлен инструментарий Observatory, предназначенный для анализа, отслеживания работы и улучшения кода на языке Dart. Работа Observatory построена на основе получаемой на лету актуальной статистики о работе виртуальной машины Dart. Observatory выдаёт информацию о работе сборщика мусора, выводит счётчики экземпляров для всех находящихся в памяти объектов, показывает детализированные данные о выполнении кода и вычислении выражений.

Из других улучшений выделяется завершение переработки на языке Dart статического анализатора кода dart_analyzer, который ранее был написан на Java. Проведена оптимизация файловых операций ввода/вывода, ускорение особенно ощутимо для больших файлов. Добавлена, пока работающая только в Linux, экспериментальная поддержка совместного использования сетевых сокетов между изолированными обработчиками (isolate).

Небольшие улучшения внесены в интегрированную среду разработки Dart Editor и в различные компоненты SDK, в том числе в dart2js (компилятор в JavaScript), виртуальную машину Dart VM, пакетный менеджер pub, набор библиотек и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Eclipse, Emacs, Sublime Text 2 и Vim. Dartium, сборка браузера Chromium с интегрированной виртуальной машиной Dart VM, обновлена до кодовой базы Chrome 35. В репозиторий pub добавлено 109 новых пакетов, общее число доступных пакетов составляет 934.

Напомним, что язык 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");
  • Возможность создавать однородные системы, охватывающие как клиентскую, так и серверную часть. Использование одного языка и инструментария для клиентских и серверных компонентов упрощает процесс кодирования и избавляет от постоянной смены контекста.


  1. Главная ссылка к новости (http://news.dartlang.org/2014/...)
  2. OpenNews: Релиз языка программирования Dart 1.3, развиваемого Google для замены JavaScript
  3. OpenNews: Выпуск языка программирования Dart 1.2, развиваемого Google для замены JavaScript
  4. OpenNews: Обновление языка программирования Dart 1.1, развиваемого Google для замены JavaScript
  5. OpenNews: Ассоциация Ecma сформировала комитет для стандартизации языка Dart
  6. OpenNews: Google выпустил язык программирования Dart 1.0, созданный для замены JavaScript
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/39840-dart
Ключевые слова: dart
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (-), 23:23, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Никто в здравом уме не напишет на нём ни строчки, пока не сделают нативную поддержку в 2-3 браузерах, а фигачить всё как на джаве, компилить и наслаждаться тормозами мы могли уже 10-15 лет тому назад, когда появились апплеты и флеш.
     
     
  • 2.9, asavah (ok), 01:09, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Никто в здравом уме не напишет на нём ни строчки, пока не сделают нативную поддержку в 2-3 браузерах

    именно, данный язык тупо не приживётся пока не будет нативно работать в паре-тройке распространённых браузеров.
    компилить в js - не торт, зачем что-то компилить в js когда можно напрямую на нём написать?
    писать на dart только под хромых _когда_ появится встроенная vm ? юзвери будут негодовать.
    юзать скомпиленный тормоз на остальных браузерах? юзвери тоже будут негодовать и материться.
    писать под хромых на дарте, а под остальных на js? разрабы не поймут и будут люто негодовать и материться, ибо никто не будеть делать работу дважды за те же деньги.

    короче какой бы дрянью не был сам по себе жабаскрипт - он _как_то_ работает на большинстве браузеров и необходимые костыли уже давно известны и обкатаны. какой бы хорошей не была идея и реализация dart без поддержки во всех "больших" браузерах боюсь, что он пойдёт лесом.

     
     
  • 3.10, Аноним (-), 01:14, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > зачем что-то компилить в js когда можно напрямую на нём написать?

    Затем, что иногда проще написать один раз на Dart, чем переписывать потом на него, когда Dart, собственно, войдет в обиход. Но, разумеется, необходимо подгадать нужный момент, когда его наступление будет уже очевидно неотвратимым. А это рано или поздно может произойти, учитывая сколько браузеров сейчас построено на гугловском WebKit. Google переведет на него свой Chrome, остальные браузеры автоматически или с небольшими доделками получат его поддержку.

     
     
  • 4.11, A.Stahl (ok), 01:43, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Но, разумеется, необходимо подгадать нужный момент, когда его наступление будет уже очевидно неотвратимым.

    Давай я тебе анекдот расскажу.
    Спрашивает репортёр у лидера некой страны:
    -- Ну будет когда-то в нашей стране жить хорошо?
    -- Ну конечно будет!
    -- А когда?
    -- Никогда.

     
     
  • 5.16, Аноним (-), 09:13, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Плохо быть пессимистом.
     
  • 3.22, rob pike (?), 15:16, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >зачем что-то компилить в js когда можно напрямую на нём написать?

    Потому что это байткод современных интернетов. И в таком качестве его и стоит использовать.

     
  • 2.13, Crazy Alex (ok), 03:02, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чушь. На кофескрипте убогом - и то пишут. А тормозов e транслированного драта давно нет. Не то, чтобы он был идеален (к примеру, хотелось бы видеть аналоги структур - таких, как в C или расширяемых, как в protobufs - но толком проверяемых и оптимизируемых) - но это, по крайней мере, язык, спроектированный с учетом сегодняшних реалий веба, а не безумная конструкция из костылей, в которую превратился примитивненький язык Javascript.
     
     
  • 3.14, Аноним (-), 07:12, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    на кофескрипте пишут, потому что из него получается хороший читаемый JS. А вот про dart2js такого сказать нельзя. Там мало того что куча лишнего кода, так еще и информация о типах конвертируется нетривиальным образом. "if (foo is Foo) {bar();} else {baz();}" - из всего этого дарта в JS останется только "bar();". Я прямо боюсь представить, сколько багов вылезет в большом реальном проекте из-за подобных вещей.
     
     
  • 4.19, Crazy Alex (ok), 13:46, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Кхм, насколько я смотрел - там перевод тоже не такой уж тривиальный. Если хочется прозрачности - только в сторону TypeScript смотреть. Но, насколько я понимаю, гугл довольно основательно озаботился инструментами, позволяющими отлаживать транслированный Dart как Dart, не глядя на JS.

    Ну и для продакшна оно, конечно, не готово никоим образом. Пока сам гугл пару крупных сервисов не напишет на нём и не соберёт грабли - ждём.

     
  • 2.17, Аноним (-), 09:31, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Про язык Go тоже так говорили, но, ничего, это не помешало написать на нём Docker.
     

  • 1.5, vitalif (ok), 23:24, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Каждый кулик своё болото хвалит. У одних Dart, у других TypeScript. Но важно то, что по ходу им не лучший язык надо сделать, а просто сделать так, чтобы новым стандартом стал именно ИХ язык, и зохватить все корованы.

    Так что нефиг, шли бы они все в пень.

     
     
  • 2.7, Аноним (-), 23:30, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Каждый кулик своё болото хвалит. У одних Dart, у других TypeScript. Но
    > важно то, что по ходу им не лучший язык надо сделать,
    > а просто сделать так, чтобы новым стандартом стал именно ИХ язык,
    > и зохватить все корованы.
    > Так что нефиг, шли бы они все в пень.

    Пока разработчику достаточно нажать F5, чтобы протестировать свой код, который гарантированно заработает на 99% браузеров, вся эта байда с компиляцией, линковой, дебаггингом и прочей мутью не прокатит. Сейчас не времена доса, когда чтобы сделать что-то вменяемое требовалось использовать IDE типа Turbo C.

     
     
  • 3.12, Аноним (-), 01:56, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    В 99% браузеров интегрирована функциональность для отладки. Многие ею умеют пользоваться и пользуются. А ты видно ни разу не веб-разработчик и вообще не программист а мимопроходил какой-то.
     
     
  • 4.15, SprintSet (?), 07:47, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ДА-ДА-ДА!

    Тру-скриптискты никогда не перегружают страницу, пока не осилят все ошибки и не напишут правильный код.

    ЗЫ
    Да и кстати, они работаю только из командной строки.

     
  • 3.20, Смеющийся лосось (?), 14:59, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видать сразу пишут минифицированный JS в одну строку и умеют его отлаживать. С короткими именами функций и литералов.
     
  • 2.18, rshadow (ok), 12:46, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Дык если внедрять новый язык в браузеры, то лучше серверные скриптовые. Либу написал для работы с dom и вуаля. А все остальное там и так было и даже больше.
     
  • 2.21, Аноним (-), 15:00, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Typescript - синтаксический сахар.
    Dart - полноценный язык со своей виртуальной машиной.
    Не путайте теплое с мягким.
     
     
  • 3.23, бутират (?), 14:58, 25/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот только дарт со своей опциональной типизацией не замена js. Очередной динамический унтер-язык, наподобие питона с руби, сбрасывающий проблемы проверок времени компиляции на плечи бедного разработчика Да и сгенерированный js огорчает своими размерами.

    Кофескрипт не решает никаких проблем, но создает новые - отсутствие "var" в локальном контексте и, самое главное - ужаснейшая кодогенерация. Попробуйте функцию, оканчивающуюся циклом. Из-за того что в кофескрипте все функции возвращают свое последнее значение, этот в js код развернется созданием массива возвращаемых значений, строк в 15.

    Я люблю typescript. Вот что действительно решает проблему динамического петушения - когда вместо obj.name пишешь obj.nane, браузер даже не поперхнется, а ты пол часа ищешь ошибку. Огорчает только медленное его развитие. В nodejs вот-вот появятся генераторы, а typescript, боюсь к этому времени не подоспеет.

     

  • 1.25, Аноним (-), 14:17, 26/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Будущее за ECMAScript 6.
     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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