Компания Google представила (http://news.dartlang.org/2014/02/dart-v1-2.html) новый выпуск языка программирования Dart 1.2 (http://www.dartlang.org), который позиционируется как язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript.В новом выпуске значительно расширены (https://groups.google.com/a/dartlang.org/forum/#!msg/announc...) и упрощены средства для отладки приложений, добавлена возможности привязки точек останова к локальным переменным, решены проблемы с пошаговой отладкой рекурсивных функций, минимизировано влияние процесса отладки на работу отлаживаемого приложения. Проведена оптимизация производительности базовых библиотек, например, пропускная способность библиотеки WebSocket увеличилась в 15 раз, а скорость асинхронных примитивов (Async в dart:io ), библиотек Future и Stream возросла на 10-20%. Незначительно увеличена производительность кода, скомпилированного в JavaScript и выполняемого в виртуальной машине.
<center><a href="https://www.dartlang.org/performance/"><img src="http://www.opennet.me/opennews/pics_base/0_1393502673.png" style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></a></center>
В IDE Dart Editor (http://www.dartlang.org/docs/editor/) добавлена поддержка web-фреймворка Angular (https://github.com/angular/angular.dart), в частности, для элементов Angular теперь можно использовать рефакторинг при переименовании, навигацию и поиск, добавлен вывод специфичных для Angular предупреждений. Добавлено контекстное меню "Run in Browser" для запуска файлов в сборочной директории. Улучшены средства автодополнения и автоформатирования кода. Добавлено меню для предпросмотра операций форматирования кода при помощи утилиты dartfmt. Заметно увеличена производительность.<center><img src="http://www.opennet.me/opennews/pics_base/0_1393501771.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></center>
Внесены исправления в различные компоненты SDK, в том числе в
статический анализатор кода dart_analyzer (https://www.dartlang.org/docs/dart-up-and-running/contents/c...), 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 33. В репозиторий pub (http://pub.dartlang.org) добавлено около 70 новых пакетов, общее число доступных пакетов составляет 730.
Напомним, что язык 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/02/dart-v1-2.html
Новость: http://www.opennet.me/opennews/art.shtml?num=39207
Велосипед делают, чем им яваскрипт не угодил?
Тоже не понимаю. Не нравиться писать на JS пиши на чем любишь, сейчас для всех более или менее популярных ЯП есть трансляторы в JS.
Так это, и для Dart есть транслятор в JS, пользуйтесь если хотите.
Бесполезно им объяснять.
Они даже с велосипедами еще не разобрались, а уже пытаются судить о языках программирования.Если по их мнению "делать велосипеды" - это что-то такое плохое, то почему тогда продолжают "делать" такие разные модели и модификации велосипедов. Ездили бы все на тех моделях, которые были в самом начале - с большим колесом и без цепной передачи. Цепную передачу, и то не сразу изобрели. Сначала был просто "велосипед".
Уже сколько об этом бояне им говорят, но обязательно найдется очередной "грамотей", который вставит свое "ценное" мнение про "велосипеды".
Некоторых просто пугает необходимость что-то изучать. Вот они типа и "не понимают", зачем нужны новые языки. Затем же, зачем нужны новые модели велосипедов! Так понятно?
Зачем обсуждать то что не понимаете?
Не нравится
tsya.ru
Всем, от отсутствия типизированных переменных до кошмарного дерева DOM с типами, несовместимыми с базовыми (коллекции DOM-элементов, например, лишь делают вид, что они массивы).
1. желание менять ЯП как им захочется. Это приводит к ситуации, когда конвертация Java-Darts выполняется без проблем, а обратная, в большинстве случаев, невозможна. Это повышает конкурентные преимущества Андроида и создаёт проблемы конкурентам.Эта схема также работает и для разработчиков: программист Java может почти без обучения начать программить на Darts, но программист Darts не может перейти на Java, т.к. правильно кодить на Darts надо СОВСЕМ не так, как на Java.
В оправдание: Java принадлежит Oracle, который меняет её как хочет. Не факт что в будущем пути развития Java и Андроид разойдутся. А бизнесу на млрд долларов нужны железобетонные гарантии.
2. выплаты Oracle. За право использования Java в Андроид нужно было платить. Сумма по меркам бизнеса копеечная, но с ростом популярности платформы она могла сильно вырасти. Совместно с п.1 это вылилось в создание полной копии ЯП, что вызвало негативную реакцию Oracle. В итоге был суд, который постановил что воровать чужие ЯП и API чужих ЯП можно и преступлением это не является. Денисы Поп-вы ликуют.
Ты хотя бы понимаешь что Java и JavaScript это разные языки? JavaScript не принадлежит Oracle а Java не имеет отношения к Dart.
Не только ведь один ActionScript хоронить ;)
Когда он уже появится в dev версии хрома?
вроде как уже ж 1.0 вышла и совместимость нарушать не будут, что мешает?
Есть люди юзаюшие дарт? Есть смысл его сейчас изучать? В чем приемущество?
"Также я осваиваю Dart. Скорее всего это будет следующим языком после Perl, где я буду известен." (C)Рэндел Шварц
http://pragmaticperl.com/issues/12/pragmaticperl-12-интервью-с-рэнделом-шварцем-randal-schwartz.htmlТак что как минимум стоит обратить на него внимание.
>Dart 1.2, развиваемого Google для замены JavaScriptЗабавно, а вот Digia наоборот насаждает этот JavaScript взамен C++, а гугл его похоронить хочет.
> Забавно, а вот Digia наоборот насаждает этот JavaScript взамен C++, а гугл
> его похоронить хочет.Digia, видимо, понимает, что интерфейсы на Qt рисуются слишком быстро и потребляют слишком мало ресурсов. Учитывая растущую популярность Qt на смартфонах, надо удовлетворять потребности рынка - иначе пользователи просто не будут покупать восьмиядерные смартфоны с четырьмя гигами оперативки.
QML же.
Яваскрипт в qmlе существует только для вызова методов сишных классов и выполнения небольших операций. Небольшие вставки яваскрипта на практике никак не влияют на скорость работы приложения. При большом желании их вообще можно избежать, пожертвовав конфигурируемостью и удобством, но зачем? Яваскрипт полностью подходит и справляется со своей задачей.
Лучше бы гугл над заменой HTMLю подумали, этот уогий, громоздкий и кривой язык разметки давно устарел и не нужен.
> Лучше бы гугл над заменой HTMLю подумали, этот уогий, громоздкий и кривой язык разметки давно устарел и не нужен.всё так. да.
при этом HTML ещё и поощряет отсутствие безопасности:
XSS-уязвимости -- истинная причина их возникновения -- потому что HTML (как язык разметки) позволяет сквозь пальцы смотреть на нестрогое соблюдение формата (в отличии от XML-семейства).
CSRF-уязвимости -- [самый частый вид уязвимостей, после Clickjacking] истинная причина их возникновения -- потому что HTML-формочки позволяют отправлять запросы на другие web-домены, ды и вообще куда угодно. что за бред (?), как можно было позволить отправлять данные куда угодно(?)..
ды даже Clickjacking-уязвимости -- истинная причина возникновения их -- потому что HTML-стандарт располагает внутри себя абсолютно тупорылым элементом <iframe> .. если бы элементов-<iframe> не существовало бы -- то было бы всё на много лучше.
сколько времени не проходит -- я разные люди постоянно наступают на одни и теже грабли -- XSS,CSRF,Clickjacking.. очевидно же что HTML-стандарт настолько плох что сподвигает разных людей делать одинаковые ошибки..
Часть проблем html в некотором смысле решает гугловский же angularjs:- angular директивы добавляют в html кастомные теги/атрибуты с программируемым на js поведением
- защита от xss встроенная, в виде content security policy - пользовательский ввод нельзя просто так вывести в виде html или url, обязательно в явном виде задать контекст - что-то вроде перлового taint
пф, я как то на чистом JS пишу и не парюсь) Dart для тех кто JS раздуплить не может, его вообще явисты писали, сразу же видно..
А явускрипт писали паскальщики, ага. Не явисты. Не они, нет.
Вполне вероятно что с их участием, да, если учесть существование GWT, который как раз создавался, что бы с Джавы не переучиваться.
> пф, я как то на чистом JS пишу и не парюсь) Dart
> для тех кто JS раздуплить не может, его вообще явисты писали,
> сразу же видно..привет, брат. я черпаю человеческие фекалии ложкой и не парюсь.
Жаль автор на mod_dart забил, разработчики перепилили всю структуру модулей, с наскоку на новую версию портировать не вышло.
> язык структурированного программирования для WebКто-нибудь в курсе, ожидается объектированная версия?
Вам проще дождаться, когда ваше мышление станет менее стереотипизированным, и вы начнете видеть объекты, которых не видите сейчас у себя под носом.А еще не будете путать термины "структурированный" и "структурный".
Иначе какую объектную-переобъектную систему вам не дай, вы все равно не увидите и одно-процентной доли возможностей ее применения.
> А еще не будете путать термины "структурированный" и "структурный"http://www.sproducts.ru/Page.aspx?id=52
Нет никакой ложки.
Те же особенности перевода, как с нитями Unix и потоками Windows, которые на англе все "threads", а на русском одни проплатили качественный перевод, а другие взяли первое слово из словаря - "нитка [для шитья]".
> Те же особенности перевода, как с нитями Unix и потоками Windows, которые
> на англе все "threads", а на русском одни проплатили качественный перевод,
> а другие взяли первое слово из словаря - "нитка [для шитья]".Правильно писать именно "нить", а не "поток", так как потоки соответствует термину stream, в смысле потока данных типа stdin/stdout. Или явно пояснять о чем речь (многопоточное программирование)
Поток выполнения, поток ввода-вывода. Эти термины были приняты в 60-е годы как стандартные в технической документации СССР. Объясните, по какой причине вы (или кто-либо ещё) считаете, что нужно использовать иную терминологию? Вас нормоконтроль ещё не е--л? Будет.
>Вас нормоконтроль ещё не е--л? Будет.Рекомендуешь? Тебя уже, и понравилось-снова-пойдёшь?
теперь понятно нафейхуа гуглы API V8 с такой дурью переделывают... никакого фанатизма не хватает синхронизировать его с другими либами...
И JS и Dart заточены на web-developing, и ни на что больше. Обычные программы на них писать затруднительно.Python и Ruby ужасны, миллионы костылей, жутко тормозные и даром не нужны.
Планировалось создать универсальный язык Rust. Чтобы его можно было использовать и для написания программ и в вебе. Но его разработчики переусердствовали с безопасностью, и теперь в нём куча ограничений, а будет ещё больше. Короче? деньги и время потрачены впустую, т.к. получился очередной треш.
Вот и приходится учить С++ для написания даже полной ерунды. Но на нём писать сложно и долго.
А хочется писать быстро и просто и компилировать и юзать на компе, девайсах и в вебе.Так что никакого универсального языка до сей поры нет.
NodeJS нет?
нет, он практически ничего не даёт. Сплошная потеря времени, тоже самое и phantomJS.
Вы в курсе что компания PayPal переводит весь свой бэкенд с Java на NodeJS? Об эти было официально объявлено в ноябре прошлого года. И догодайтесь почему..
Дальше что? Это никаким боком к обсуждаемому вопросу.
Речь идёт про универсальный язык программирования простой, быстрый, компилируемый и интерпретируемый одновременно, и который можно применять одинаково легко в разработке программ и для разработки веб.
Каждой задаче свой инструмент. Тоже самое с ЯП.
Вот именно. Сейчас дела обстоят именно так.
А хочется один простой и быстрый язык для всего.
Всё как раз боком, JS именно такой язык, хочешь пиши на нём фронт, хочешь бэкенд, хочешь с базами данных общаться через JS, тоже пожалуйста.
Вам стоит сменить ник на "Troll", а то уж очень толсто.
JS до сих пор в реале ни на что не годен, не смотря на годы разработки nodeJS и подобных и сотен фреймворков.
http://krakenjs.com
http://www.angularjs.org/
Без Dart VM не имеет преимущество, над глючным DOM и JS
Если они версии будут клепать такими же темпами как и хромого - фиг его кто-то будет юзать, за изменениями хрен уследишь, этакий systemd браузерного скриптостроения.
веб не стоит на месте, как и любая технология
жабаскрипт морально начинает устаревать
а он уже умеет собирать себя сам?
А что собирать-то? Браузер Дартиум? =)
Интересно, насколько он способен заменить php, с его возможностью запуска на сервере?
> Интересно, насколько он способен заменить php, с его возможностью запуска на сервере?Dart больше вступает как замена NodeJS
А почему нет? Да и сейчас есть прекрасные замены PHP - Python, Go, например..
Вся суть в том, что 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,
куда приятнее джава скрипта,Так как редактор проверяет типы, куда меньше опечаток
в именах переменных, вызовов функций с неправилъными
аргументами итп. А так похоже на улучшенную джаву.
Перевел на дарт 15 000 строк двавовской программы без
особого труда. Ну толъко thread and synchronized заменил на Future.
Если не залезатъ глубоко, то похож на джаву.
хотя естъ и отличия скажем в джаве естъ толъко array объектов (внутри байткода JVM)
а в дарте при создании листа (замена array) записывается и тип объекта и list
потом нелъзя как в джаве конвертироватъ в другой тип. Нужно создатъ новый лист с другим
типом и скопироватъ элементы. (впрочем это все важно толъко в режиме с проверкой типов
(dart checked mode).Забавно также что числа тоже объекты, и неопределенная численная переменная может бытъ
null.
нет byte, short и long естъ толъко int с произвоъной точностъю.Но все это мелочи, джависту с опытом перейти на дарт ничего не стоит....