The OpenNET Project / Index page

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

Выпуск языка программирования Dart 1.2, развиваемого Google для замены JavaScript

27.02.2014 16:00

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

В новом выпуске значительно расширены и упрощены средства для отладки приложений, добавлена возможности привязки точек останова к локальным переменным, решены проблемы с пошаговой отладкой рекурсивных функций, минимизировано влияние процесса отладки на работу отлаживаемого приложения. Проведена оптимизация производительности базовых библиотек, например, пропускная способность библиотеки WebSocket увеличилась в 15 раз, а скорость асинхронных примитивов (Async в dart:io ), библиотек Future и Stream возросла на 10-20%. Незначительно увеличена производительность кода, скомпилированного в JavaScript и выполняемого в виртуальной машине.

В IDE Dart Editor добавлена поддержка web-фреймворка Angular, в частности, для элементов Angular теперь можно использовать рефакторинг при переименовании, навигацию и поиск, добавлен вывод специфичных для Angular предупреждений. Добавлено контекстное меню "Run in Browser" для запуска файлов в сборочной директории. Улучшены средства автодополнения и автоформатирования кода. Добавлено меню для предпросмотра операций форматирования кода при помощи утилиты dartfmt. Заметно увеличена производительность.

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

Напомним, что язык 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.1, развиваемого Google для замены JavaScript
  3. OpenNews: Ассоциация Ecma сформировала комитет для стандартизации языка Dart
  4. OpenNews: Google выпустил язык программирования Dart 1.0, созданный для замены JavaScript
  5. OpenNews: Новые версии языков Dart и TypeScript, претендующих на роль альтернатив JavaScript
  6. OpenNews: Для языка Dart представлен сервис компиляции приложений, работающий на стороне браузера
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/39207-dart
Ключевые слова: dart
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:17, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Велосипед делают, чем им яваскрипт не угодил?
     
     
  • 2.6, Anonimus (??), 16:47, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Тоже не понимаю. Не нравиться писать на JS пиши на чем любишь, сейчас для всех более или менее популярных ЯП есть трансляторы в JS.
     
     
  • 3.7, Владимир (??), 17:03, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Так это, и для Dart есть транслятор в JS, пользуйтесь если хотите.
     
     
  • 4.22, Аноним (-), 20:28, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Бесполезно им объяснять.
    Они даже с велосипедами еще не разобрались, а уже пытаются судить о языках программирования.

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

    Уже сколько об этом бояне им говорят, но обязательно найдется очередной "грамотей", который вставит свое "ценное" мнение про "велосипеды".

    Некоторых просто пугает необходимость что-то изучать. Вот они типа и "не понимают", зачем нужны новые языки. Затем же, зачем нужны новые модели велосипедов! Так понятно?

     
  • 3.26, Аноним (-), 22:12, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Зачем обсуждать то что не понимаете?
     
  • 3.57, Grammar Nazi (?), 08:52, 01/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не нравится
    tsya.ru
     
  • 2.11, Lain_13 (ok), 17:57, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Всем, от отсутствия типизированных переменных до кошмарного дерева DOM с типами, несовместимыми с базовыми (коллекции DOM-элементов, например, лишь делают вид, что они массивы).
     
  • 2.45, клоун Стаканчик (?), 11:40, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • –5 +/
    1 желание менять ЯП как им захочется Это приводит к ситуации, когда конвертаци... большой текст свёрнут, показать
     
     
  • 3.56, Аноним (-), 04:56, 01/03/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты хотя бы понимаешь что Java и JavaScript это разные языки? JavaScript не принадлежит Oracle а Java не имеет отношения к Dart.
     

  • 1.4, Аноним (-), 16:38, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не только ведь один ActionScript хоронить ;)
     
  • 1.9, Аноним (-), 17:38, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Когда он уже появится в dev версии хрома?
    вроде как уже ж 1.0 вышла и совместимость нарушать не будут, что мешает?
     
  • 1.12, Аноним (-), 18:11, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть люди юзаюшие дарт? Есть смысл его сейчас изучать? В чем приемущество?
     
     
  • 2.32, Pilat (ok), 00:23, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Также я осваиваю Dart. Скорее всего это будет следующим языком после Perl, где я буду известен." (C)Рэндел Шварц
    http://pragmaticperl.com/issues/12/pragmaticperl-12-интервью-с-рэнделом-шварц

    Так что как минимум стоит обратить на него внимание.

     

  • 1.13, Аноним (-), 18:20, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Dart 1.2, развиваемого Google для замены JavaScript

    Забавно, а вот Digia наоборот насаждает этот JavaScript взамен C++, а гугл его похоронить хочет.

     
     
  • 2.16, Аноним (-), 18:53, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Забавно, а вот Digia наоборот насаждает этот JavaScript взамен C++, а гугл
    > его похоронить хочет.

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

     
  • 2.30, Sinot (ok), 23:10, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    QML же.
     
  • 2.33, Аноним (-), 00:45, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Яваскрипт в qmlе существует только для вызова методов сишных классов и выполнения небольших операций. Небольшие вставки яваскрипта на практике никак не влияют на скорость работы приложения. При большом желании их вообще можно избежать, пожертвовав конфигурируемостью и удобством, но зачем? Яваскрипт полностью подходит и справляется со своей задачей.
    Лучше бы гугл над заменой HTMLю подумали, этот уогий, громоздкий и кривой язык разметки давно устарел и не нужен.
     
     
  • 3.44, Xasd (ok), 11:24, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Лучше бы гугл над заменой HTMLю подумали, этот уогий, громоздкий и кривой язык разметки давно устарел и не нужен.

    всё так. да.

    при этом HTML ещё и поощряет отсутствие безопасности:

    XSS-уязвимости -- истинная причина их возникновения -- потому что HTML (как язык разметки) позволяет сквозь пальцы смотреть на нестрогое соблюдение формата (в отличии от XML-семейства).

    CSRF-уязвимости -- [самый частый вид уязвимостей, после Clickjacking] истинная причина их возникновения -- потому что HTML-формочки позволяют отправлять запросы на другие web-домены, ды и вообще куда угодно. что за бред (?), как можно было позволить отправлять данные куда угодно(?)..

    ды даже Clickjacking-уязвимости -- истинная причина возникновения их -- потому что HTML-стандарт располагает внутри себя абсолютно тупорылым элементом <iframe> .. если бы элементов-<iframe> не существовало бы -- то было бы всё на много лучше.

    сколько времени не проходит -- я разные люди постоянно наступают на одни и теже грабли -- XSS,CSRF,Clickjacking.. очевидно же что HTML-стандарт настолько плох что сподвигает разных людей делать одинаковые ошибки..

     
  • 3.59, anonymous (??), 20:00, 01/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Часть проблем html в некотором смысле решает гугловский же angularjs:

    - angular директивы добавляют в html кастомные теги/атрибуты с программируемым на js поведением

    - защита от xss встроенная, в виде content security policy - пользовательский ввод нельзя просто так вывести в виде html или url, обязательно в явном виде задать контекст - что-то вроде перлового taint

     

  • 1.14, Troy (??), 18:22, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    пф, я как то на чистом JS пишу и не парюсь) Dart для тех кто JS раздуплить не может, его вообще явисты писали, сразу же видно..
     
     
  • 2.18, flvby1 (?), 19:18, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А явускрипт писали паскальщики, ага. Не явисты. Не они, нет.
     
  • 2.19, Okarin (ok), 19:22, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вполне вероятно что с их участием, да, если учесть существование GWT, который как раз создавался, что бы с Джавы не переучиваться.
     
  • 2.28, Аноним (-), 22:15, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > пф, я как то на чистом JS пишу и не парюсь) Dart
    > для тех кто JS раздуплить не может, его вообще явисты писали,
    > сразу же видно..

    привет, брат. я черпаю человеческие фекалии ложкой и не парюсь.

     

  • 1.20, Аноним (-), 19:56, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Жаль автор на mod_dart забил, разработчики перепилили всю структуру модулей, с наскоку на новую версию портировать не вышло.
     
  • 1.23, cuckoo nest navigator (?), 21:19, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > язык структурированного программирования для Web

    Кто-нибудь в курсе, ожидается объектированная версия?

     
     
  • 2.25, Аноним (-), 21:41, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вам проще дождаться, когда ваше мышление станет менее стереотипизированным, и вы начнете видеть объекты, которых не видите сейчас у себя под носом.

    А еще не будете путать термины "структурированный" и "структурный".

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

     
     
  • 3.46, клоун Стаканчик (?), 11:44, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А еще не будете путать термины "структурированный" и "структурный"

    http://www.sproducts.ru/Page.aspx?id=52

    Нет никакой ложки.

    Те же особенности перевода, как с нитями Unix и потоками Windows, которые на англе все "threads", а на русском одни проплатили качественный перевод, а другие взяли первое слово из словаря - "нитка [для шитья]".

     
     
  • 4.47, Аноним (-), 12:16, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Те же особенности перевода, как с нитями Unix и потоками Windows, которые
    > на англе все "threads", а на русском одни проплатили качественный перевод,
    > а другие взяли первое слово из словаря - "нитка [для шитья]".

    Правильно писать именно "нить", а не "поток", так как потоки соответствует термину stream, в смысле потока данных типа stdin/stdout. Или явно пояснять о чем речь  (многопоточное программирование)

     
     
  • 5.48, клоун Стаканчик (?), 12:33, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Поток выполнения, поток ввода-вывода. Эти термины были приняты в 60-е годы как стандартные в технической документации СССР. Объясните, по какой причине вы (или кто-либо ещё) считаете, что нужно использовать иную терминологию? Вас нормоконтроль ещё не е--л? Будет.
     
     
  • 6.51, Andrey Mitrofanov (?), 13:03, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Вас нормоконтроль ещё не е--л? Будет.

    Рекомендуешь? Тебя уже, и понравилось-снова-пойдёшь?

     

  • 1.24, hoopoe (ok), 21:33, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    теперь понятно нафейхуа гуглы API V8 с такой дурью переделывают... никакого фанатизма не хватает синхронизировать его с другими либами...
     
  • 1.27, Аноним (-), 22:13, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И JS и Dart заточены на web-developing, и ни на что больше. Обычные программы на них писать затруднительно.

    Python и Ruby ужасны, миллионы костылей, жутко тормозные и даром не нужны.

    Планировалось создать универсальный язык Rust. Чтобы его можно было использовать и  для написания программ и в вебе. Но его разработчики переусердствовали с безопасностью, и теперь в нём куча ограничений, а будет ещё больше. Короче? деньги и время потрачены впустую, т.к. получился очередной треш.

    Вот и приходится учить С++ для написания даже полной ерунды. Но на нём писать сложно и долго.
    А хочется писать быстро и просто и компилировать и юзать на компе, девайсах и в вебе.

    Так что никакого универсального языка до сей поры нет.

     
     
  • 2.34, Аноним (-), 00:48, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    NodeJS нет?
     
     
  • 3.35, Аноним (-), 00:59, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    нет, он практически ничего не даёт. Сплошная потеря времени, тоже самое и phantomJS.
     
     
  • 4.36, Аноним (-), 04:09, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вы в курсе что компания PayPal переводит весь свой бэкенд с Java на NodeJS? Об эти было официально объявлено в ноябре прошлого года. И догодайтесь почему..
     
     
  • 5.38, Аноним (-), 05:27, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Дальше что? Это никаким боком к обсуждаемому вопросу.
    Речь идёт про универсальный язык программирования простой, быстрый, компилируемый и интерпретируемый одновременно, и который можно применять одинаково легко в разработке программ и для разработки веб.
     
     
  • 6.43, Аноним (-), 10:27, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Каждой задаче свой инструмент. Тоже самое с ЯП.
     
     
  • 7.54, Аноним (-), 19:21, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно. Сейчас дела обстоят именно так.
    А хочется один простой и быстрый язык для всего.
     
  • 6.52, Troy (??), 13:46, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Всё как раз боком, JS именно такой язык, хочешь пиши на нём фронт, хочешь бэкенд, хочешь с базами данных общаться через JS, тоже пожалуйста.
     
     
  • 7.53, Аноним (-), 19:20, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вам стоит сменить ник на "Troll", а то уж очень толсто.
    JS до сих пор в реале ни на что не годен, не смотря на годы разработки nodeJS и подобных и сотен фреймворков.
     
  • 4.37, Аноним (-), 04:12, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    http://krakenjs.com
     
     
  • 5.39, Аноним (-), 05:36, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.angularjs.org/
     

  • 1.29, Perain (?), 22:34, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Без Dart VM не имеет преимущество, над глючным DOM и JS
     
  • 1.31, asavah (ok), 23:23, 27/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если они версии будут клепать такими же темпами как и хромого - фиг его кто-то будет юзать, за изменениями хрен уследишь, этакий systemd браузерного скриптостроения.
     
  • 1.41, Аноним (-), 09:19, 28/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    веб не стоит на месте, как и любая технология
    жабаскрипт морально начинает устаревать
     
  • 1.42, Аноним (-), 10:09, 28/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а он уже умеет собирать себя сам?
     
     
  • 2.50, Loooooker (ok), 12:49, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А что собирать-то? Браузер Дартиум? =)
     

  • 1.49, Loooooker (ok), 12:47, 28/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно, насколько он способен заменить php, с его возможностью запуска на сервере?
     
     
  • 2.55, Perain (?), 04:54, 01/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, насколько он способен заменить php, с его возможностью запуска на сервере?

    Dart больше вступает как замена NodeJS

     
  • 2.58, LU (?), 14:36, 01/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А почему нет? Да и сейчас есть прекрасные замены PHP - Python, Go, например..
     
     
  • 3.60, Читатель (?), 08:50, 02/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вся суть в том, что Dart должен заменить и JS, и серверные языки типа PHP. ИМХО.

    Преимущество - очень простая расширяемость и лаконичность. Опять же - без двойных стандартов. Например, булевые значения определяются только как true или false. Без всяких нулей и единиц.

    Ну и самое приятное, что всё в языке имеет одного классового предка:

    "When we say Dart is a class-based object oriented programming language, we mean it. Everything in Dart is an object, everything is an instance of a class, and all classes descend from Object. Dart is a single-inheritance language, which means a class can inherit from, or extend from, only one other class."

    (В этом языке все есть "объект" Т.е. всё и вся изначально наследуется из родительского класса Object)

    P.S. - А язык Go! планирует заменить C++.

     
     
  • 4.61, Igor (??), 00:05, 11/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    я пишу на дарте уже месяца 4,
    куда приятнее джава скрипта,

    Так как редактор проверяет типы, куда меньше опечаток
    в именах переменных, вызовов функций с неправилъными
    аргументами итп. А так похоже на улучшенную джаву.
    Перевел на дарт 15 000 строк двавовской программы без
    особого труда. Ну толъко thread and synchronized заменил на Future.

     
     
  • 5.62, Igor (??), 00:25, 11/03/2014 [^] [^^] [^^^] [ответить]  
  • +/

    Если не залезатъ глубоко, то похож на джаву.
    хотя естъ и отличия скажем в джаве естъ толъко array объектов (внутри байткода JVM)
    а в дарте при создании листа (замена array) записывается и тип объекта и list
    потом нелъзя как в джаве конвертироватъ в другой тип. Нужно создатъ новый лист с другим
    типом и скопироватъ элементы. (впрочем это все важно толъко в режиме с проверкой типов
    (dart checked mode).

    Забавно также что числа тоже объекты, и неопределенная численная переменная может бытъ
    null.
    нет byte, short и long естъ толъко int с произвоъной точностъю.

    Но все это мелочи, джависту с опытом перейти на дарт ничего не стоит....

     

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



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

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