Компания Google представила (http://news.dartlang.org/2015/03/dart-19-release-youve-been-...) выпуск языка программирования Dart 1.9 (http://www.dartlang.org/). Dart позиционируется как язык структурированного программирования для Web, обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска внутри браузера код на языке Dart компилируется в представление JavaScript, для выполнения серверных приложений развивается специальная виртуальная машина Dart VM. Код связанных с языком компонентов распространяется под лицензией BSD.Для упрощения разработки на языке Dart поставляется SDK (http://www.dartlang.org/docs/sdk/), включающий в себя компилятор в JavaScript - dart2js (http://www.dartlang.org/docs/dart2js/), виртуальную машину Dart VM (http://www.dartlang.org/docs/standalone-dart-vm/), пакетный менеджер pub (http://pub.dartlang.org/), статический анализатор кода dart_analyzer (https://www.dartlang.org/docs/dart-up-and-running/contents/c...), набор библиотек, интегрированная среда разработки Dart Editor (http://www.dartlang.org/docs/editor/) и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm (https://www.dartlang.org/tools/webstorm/), Eclipse (https://www.dartlang.org/tools/eclipse-plugin/), Emacs (https://github.com/nex3/dart-mode), Sublime Text 2 (https://github.com/dart-lang/dart-sublime-bundle#readme) и Vim (https://github.com/dart-lang/dart-vim-plugin). Для выполнения и отладки приложений на языке Dart, без компиляции в JavaScript, предоставляется Dartium (https://www.dartlang.org/tools/dartium/) - специальная сборка браузера Chromium с интегрированной виртуальной машиной Dart VM. Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub (https://pub.dartlang.org/packages), который насчитывает 1565 пакетов, в том числе фреймворки для разработки web-приложений AngularDart (https://github.com/angular/angular.dart) и polymer.dart (https://www.dartlang.org/polymer-dart/).
Новый выпуск примечателен предоставлением (https://www.dartlang.org/articles/await-async/) удобных средств для асинхронного программирования (https://www.dartlang.org/docs/dart-up-and-running/ch02.html#...), которое применимо для любых областей, включая организацию взаимодействия с пользователем, сетевые операции и файловый ввод/вывод. Для организации выполнения кода в асинхронном режиме представлены новые методы "async" и выражения "await", которые реализованы поверх Future API (https://api.dartlang.org/apidocs/channels/stable/dartdoc-vie...). Сложные асинхронные взаимодействия могут быть реализованы с использованием привычных приёмов управления потоком выполнения на основе циклов (for/while), условных операторов и исключений (try/catch).<center><a href="http://4.bp.blogspot.com/-apCWIo5ZGTs/VRR_-gDpC2I/AAAAAAAADN... src="http://www.opennet.me/opennews/pics_base/0_1427442856.png" style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></a></center>
Другие новшества:
- Представлены (https://www.dartlang.org/articles/beyond-async/) синхронные и асинхронные генераторы sync* и async*, при помощи которых может быть упрощена генерация последовательностей без необходимости создания итераторов и без ручного управления созданием потока.
- Полноценная реализация перечисляемых типов (enum (https://www.dartlang.org/docs/dart-up-and-running/ch02.html#...)). Разработчику предоставлена возможность определения специальных классов, представляющих предопределённый набор фиксированных значений;
- Статический анализатор Dart Analyzer преобразован в сервер Dart Analysis Server, что даёт возможность упростить интеграцию средств для анализа кода на языке Dart в сторонние интегрированные среды разработки, такие как IntelliJ и Sublime;
- В Dart VM обновлена (http://news.dartlang.org/2015/02/irregexp-dart-vms-new-regex...) реализация движка работы с регулярными выражениями. Новый движок в некоторых ситуациях работает до 150 раз быстрее, чем используемый ранее.
- В Dart VM полностью реализован API Isolate (https://api.dartlang.org/apidocs/channels/stable/dartdoc-vie...), что упрощает создание приложений, при выполнении масштабируемых на несколько CPU.URL: http://news.dartlang.org/2015/03/dart-19-release-youve-been-...
Новость: http://www.opennet.me/opennews/art.shtml?num=41917
>код на языке Dart компилируется в представление JavaScriptЧто за звездец - снова компилируется. Тут же транслируется с высокоуровневых структур Dart во высокоуровневые структуры JavaScript, а не в байткод под исполнение. Не нужно людей вводить в заблуждение.
Кто вам сказал что компиляция обязательно подразумевает байткод?
> Кто вам сказал что компиляция обязательно подразумевает байткод?А я сказал что компиляция обязательно подразумевает байткод? Байткод был упомянут только применительно к этому случаю потому что следующим после трансляции из Dart в JS этапом будет компиляция высокоуровневых структур JS в байткод.
http://en.wikipedia.org/wiki/Source-to-source_compiler
Попытка размытия определения хомякам и неосиляторам на радость. Если же к вопросу подходить со всей строгостью, то процесс трансляции из исходного в исходное не может стать компиляцией. В противном случае процесс перевода текста из английского на русский язык тоже надо называть компиляцией, но это простая трансляция. Вы еще декомпиляцию начните размывать со своей хомячковой позиции :))
Твое определение компилятора тоже вот является компиляцией...
Для компиляции нужно склеивание.
Если несколько файлов сливают в один - компиляция. Если 1 в 1 копирование. :)
Трансляция при этом может быть, а может и не быть.
Ага вот и нет уже, значит, у явы компилятора, или нет, он ведь может из одного *.java сделать несколько *.class. Значит это копир-декомпилятор, вот!
>>код на языке Dart компилируется в представление JavaScript
> Что за звездец - снова компилируется. Тут же транслируется с высокоуровневых структур
> Dart во высокоуровневые структуры JavaScript, а не в байткод под исполнение.
> Не нужно людей вводить в заблуждение."Dart compiles to JavaScript and runs across the open modern web."
Прямо так и написано в пруфе.
>"Dart compiles to JavaScript and runs across the open modern web."Ерунда написана, тут нужно "translates".
"You made my day" :-)
> "You made my day" :-)Набраться смелости и вступить в прямую дискуссию не хватает смелости, понимаю.
Извините тогда -- я думал подразумевается шутка..
>специальная сборка браузера Chromium с интегрированной виртуальной машиной Dart VMтак а они разве с этого релиза не забили на эту идею?
Они как-бэ намекнули - не нужно!
>специальная сборкаКак бы намекает..
это сборка для девелоперов, в которой работает чистый дарт. чтобы не перегонять какждый раз в жс
Вау, они слизали с C# await/async. Это притом что изначальные разработчики этих слов потом сообразили, что по хорошему внутри async-метода слово await должно стоять не перед асинхронными вызовами, а перед синхронными. Не, ну молодцы, но неужто нельзя было улучшить?
await в JS грозятся добавить уже не первый год (спецификации вроде бы появились раньше, чем в .NET), т.ч. неизвестно кто с кого слизал. Пока отодвинули это на ES7.
>Dart позиционируется как язык структурированного программирования для WebВ предыдущей новости про дарт выяснили что это не так.
Для меня Dart умер два дня назад. Несмотря на то, что уже хорошо его изучил и есть готовые приложения запускаемые в Dartium.
соболезную
Меня чудом миновало его изучение. Даже книжку успел купить, но в первой же главе, узнав, что он с динамической типизацией (а думалось, что типизация в нем не явная, но статическая), отложил ее напотом... Хоть времени не потратил.
Это что бы Java не юзать. Забавно.
Каждый сочиняет велосипед, главное что-бы свой был.
Раньше разрабатывали спецификации, которые ложились в основу языка.
Сейчас же каждый кому не лень языки изобретает.
Печаль.
Это чтобы не быть завязаными на некой компании Oracle, которая крепко держит за тестикулы всех, кто рискнул залезть в серьезный продакшен с Джавой. Поэтому народ дружно валит с мускула на марию. Выучи наконец хоть технический английский, и открой для себя море информации, в том числе и о спецификациях: https://www.dartlang.org/docs/spec/. Все есть, просто ты об этом не знаешь.
> Это чтобы не быть завязаными на некой компании Oracle, которая крепко держит за тестикулы всех, кто рискнул залезть в серьезный продакшен с Джавой.Так никто не спорит.
Но есть же OpenJDK.> Поэтому народ дружно валит с мускула на марию.
Ну это к делу не относится.
> Выучи наконец хоть технический английский
Не стоит говорить о том, чего не знаете.
Я сам как-нибудь разберусь что мне учить или не учить. ок?> о спецификациях: https://www.dartlang.org/docs/spec/. Все есть, просто ты об этом не знаешь.
Это чисто формальность. Язык создавался компанией гугл.
И мне не понятно почему Гугл лучше Оракла?
Другое дело если бы это был язык, создаваемый на общественных началах, без интересов какой-либо корпорации.
Речь как раз об этом.
>Так никто не спорит.Мне пофигу. Джавы все равно были, есть и останутся жалкими сборщиками мусора.
Если честно, то хотелось бы Dart с его VM на замену JS. Сколько уже можно извращаться над JS и делать из него то, для чего он не предназначен?!