НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Google Dart vs Microsoft TypeScript

Гугль на явление микрософтовского клона JavaScript мгновенно отреагировал заметкой на сайте dartlang.org -- официальном ресурсе языка Dart.

[spoiler]Dart ровно год назад был выпущен Гуглем примерно с такими же целями, как и сегодня TypeScript -- модернизировать мир веб-разработки. Пока же получается скорее раскол, и тем не менее, Dart, как и TS, компилируется в JavaScript (имеется и серверная VM), хотя по синтаксису он все же оригинальный язык, а не надмножество JS. Гуглевцы признают, что актуальность в простых и стандартизованных средствах веб-разработки очень высока, и поэтому напоминают, что и вся их Dart-команда была недавно переведена на работу на полную ставку. "Оба этих проекта неплохо дополняют друг друга, и нам будет чему поучиться друг у друга".

Что интересно, практически одновременно с анонсом TS вышла (после приличного перерыва) и новая Dart-технология. Разработчики отмечают, что отнюдь не сидели на диванах, а старательно изучали практики применения JS в крупных проектах, и отыскивали те синтаксические и семантические элементы языка, которые приводят к массовым ошибкам.
Так, анонсирована библиотека (https://github.com/dart-lang/js-interop), позволяет совмещать JS и Dart -- "проксировать" JavaScript-объекты внутри Dart-кода!

В плане дальнейшего развития Dart еще более интересен. Так, гуглевцы не намерены придерживаться ограничений JS и собираются сделать особый акцент на развитии серверной виртуальной машины Dart -- например, она позволяет выполнять Dart-код в 10 раз быстрее, нежели аналогичный по функциональности JS (в этой связи Dart-команда заглядывается и на сферу мобильных разработок).

Надо впрочем отметить, что скорость современных JS-движков за последние пять лет удваивается каждые девять месяцев. Да и Anders Hejlsberg в eWeek уже высказался в отношении Dart, обратив позитивные стороны Dart в негативные: "It’s a completely different design point with completely different design goals". Dart -- это оригинальный язык программирования, ему нужна своя VM, и вам придется использовать семантику Dart, а не JS. Эмуляция же новых возможностей Dart при компиляции в JS обязательно обойдется "дороже". Кроме того, JavaScript-библиотеки легко состыковать с TS, но это не получится так просто с Dart, а вот TS соответствует требованиям стандарта ECMAScript 6.

Вообще, экспериментирование над многострадальным JavaScript становится, похоже, народной забавой. Одновременно с TS анонсирован еще один его клон -- ObjectScript. Он базируется на синтаксисе JS, но расширен функциональностью Lua и PHP! На лавры "для крупных проектов" он не претендует, но прекрасно подходит в качестве удобного встраиваемого в приложения скрипт-языка, т.е. скорее конкурирует с Lua.