URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 95963
[ Назад ]

Исходное сообщение
"Обновление языка программирования Dart 1.4, развиваемого Goo..."

Отправлено opennews , 22-Май-14 23:14 
Компания Google представила (http://news.dartlang.org/2014/05/dart-14-brings-deep-visibil...)  выпуск языка программирования Dart 1.4 (http://www.dartlang.org/), который позиционируется как язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript. Код связанных с языком компонентов распространяется под лицензией BSD.


В новой версии представлен инструментарий Observatory (https://www.dartlang.org/tools/observatory/), предназначенный для анализа, отслеживания работы и улучшения кода на языке  Dart. Работа Observatory построена на основе получаемой на лету актуальной статистики о работе виртуальной машины Dart. Observatory выдаёт информацию о работе сборщика мусора, выводит счётчики экземпляров для всех находящихся в памяти объектов, показывает детализированные данные о выполнении кода и вычислении выражений.

<center><a href="https://lh6.googleusercontent.com/hsExsMCmLwVWtK4ljvpkm-afj8... src="http://www.opennet.me/opennews/pics_base/0_1400782233.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>


Из других улучшений выделяется завершение переработки на языке Dart статического анализатора кода dart_analyzer (https://www.dartlang.org/docs/dart-up-and-running/contents/c...), который ранее был написан на Java. Проведена оптимизация файловых операций ввода/вывода, ускорение особенно ощутимо для больших файлов. Добавлена, пока работающая только в Linux, экспериментальная поддержка совместного использования сетевых сокетов между изолированными обработчиками (isolate (https://api.dartlang.org/apidocs/channels/stable/dartdoc-vie...)).


Небольшие улучшения внесены (https://groups.google.com/a/dartlang.org/forum/#!topic/annou...) в интегрированную среду разработки Dart Editor (http://www.dartlang.org/docs/editor/) и в различные компоненты SDK, в том числе в dart2js (http://www.dartlang.org/docs/dart2js/) (компилятор в JavaScript), виртуальную машину Dart VM (http://www.dartlang.org/docs/standalone-dart-vm/), пакетный менеджер pub (http://pub.dartlang.org/), набор библиотек и плагины с поддержкой 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). Dartium, сборка браузера Chromium с интегрированной виртуальной машиной Dart VM, обновлена до кодовой базы  Chrome 35. В репозиторий pub (http://pub.dartlang.org) добавлено 109 новых пакетов, общее число доступных пакетов составляет 934.


Напомним, что язык Dart обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска  внутри браузера код на языке Dart может быть преобразован в JavaScript-представление или запущен напрямую под управлением специального JavaScript-интерпретатора Dartboard. Поддерживается (http://www.dartlang.org/articles/embedding-in-html/) встраивание кода на языке Dart в HTML-страницы, используя mime-тип "application/dart". На стороне сервера приложение на языке Dart может быть выполнено внутри специальной виртуальной машины, которая обеспечивает производительность выполнения близкую к компилируемым в машинный код языкам. Виртуальную машину Dart планируется интегрировать в будущие версии браузера Chrome, что позволит выполнять приложения на языке Dart без компиляции в JavaScript.

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

-  Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.

-  Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;

-  Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;

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

-  Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих (http://www.dartlang.org/articles/optional-types/) типов;


-  Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;


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

-  Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");


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

URL: http://news.dartlang.org/2014/05/dart-14-brings-deep-visibil...
Новость: http://www.opennet.me/opennews/art.shtml?num=39840


Содержание

Сообщения в этом обсуждении
"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 22-Май-14 23:23 
Никто в здравом уме не напишет на нём ни строчки, пока не сделают нативную поддержку в 2-3 браузерах, а фигачить всё как на джаве, компилить и наслаждаться тормозами мы могли уже 10-15 лет тому назад, когда появились апплеты и флеш.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено asavah , 23-Май-14 01:09 
>Никто в здравом уме не напишет на нём ни строчки, пока не сделают нативную поддержку в 2-3 браузерах

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

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 23-Май-14 01:14 
> зачем что-то компилить в js когда можно напрямую на нём написать?

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено A.Stahl , 23-Май-14 01:43 
>Но, разумеется, необходимо подгадать нужный момент, когда его наступление будет уже очевидно неотвратимым.

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 23-Май-14 09:13 
Плохо быть пессимистом.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено rob pike , 24-Май-14 15:16 
>зачем что-то компилить в js когда можно напрямую на нём написать?

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Crazy Alex , 23-Май-14 03:02 
Чушь. На кофескрипте убогом - и то пишут. А тормозов e транслированного драта давно нет. Не то, чтобы он был идеален (к примеру, хотелось бы видеть аналоги структур - таких, как в C или расширяемых, как в protobufs - но толком проверяемых и оптимизируемых) - но это, по крайней мере, язык, спроектированный с учетом сегодняшних реалий веба, а не безумная конструкция из костылей, в которую превратился примитивненький язык Javascript.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 23-Май-14 07:12 
на кофескрипте пишут, потому что из него получается хороший читаемый JS. А вот про dart2js такого сказать нельзя. Там мало того что куча лишнего кода, так еще и информация о типах конвертируется нетривиальным образом. "if (foo is Foo) {bar();} else {baz();}" - из всего этого дарта в JS останется только "bar();". Я прямо боюсь представить, сколько багов вылезет в большом реальном проекте из-за подобных вещей.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Crazy Alex , 23-Май-14 13:46 
Кхм, насколько я смотрел - там перевод тоже не такой уж тривиальный. Если хочется прозрачности - только в сторону TypeScript смотреть. Но, насколько я понимаю, гугл довольно основательно озаботился инструментами, позволяющими отлаживать транслированный Dart как Dart, не глядя на JS.

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 23-Май-14 09:31 
Про язык Go тоже так говорили, но, ничего, это не помешало написать на нём Docker.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено vitalif , 22-Май-14 23:24 
Каждый кулик своё болото хвалит. У одних Dart, у других TypeScript. Но важно то, что по ходу им не лучший язык надо сделать, а просто сделать так, чтобы новым стандартом стал именно ИХ язык, и зохватить все корованы.

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 22-Май-14 23:30 
> Каждый кулик своё болото хвалит. У одних Dart, у других TypeScript. Но
> важно то, что по ходу им не лучший язык надо сделать,
> а просто сделать так, чтобы новым стандартом стал именно ИХ язык,
> и зохватить все корованы.
> Так что нефиг, шли бы они все в пень.

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 23-Май-14 01:56 
В 99% браузеров интегрирована функциональность для отладки. Многие ею умеют пользоваться и пользуются. А ты видно ни разу не веб-разработчик и вообще не программист а мимопроходил какой-то.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено SprintSet , 23-Май-14 07:47 
ДА-ДА-ДА!

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

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Смеющийся лосось , 23-Май-14 14:59 
Видать сразу пишут минифицированный JS в одну строку и умеют его отлаживать. С короткими именами функций и литералов.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено rshadow , 23-Май-14 12:46 
Дык если внедрять новый язык в браузеры, то лучше серверные скриптовые. Либу написал для работы с dom и вуаля. А все остальное там и так было и даже больше.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 23-Май-14 15:00 
Typescript - синтаксический сахар.
Dart - полноценный язык со своей виртуальной машиной.
Не путайте теплое с мягким.

"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено бутират , 25-Май-14 14:58 
Вот только дарт со своей опциональной типизацией не замена js. Очередной динамический унтер-язык, наподобие питона с руби, сбрасывающий проблемы проверок времени компиляции на плечи бедного разработчика Да и сгенерированный js огорчает своими размерами.

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

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


"Обновление языка программирования Dart 1.4, развиваемого Goo..."
Отправлено Аноним , 26-Май-14 14:17 
Будущее за ECMAScript 6.