top
logo


Google развивает AtScript, вариант JavaScript с аннотациями типов PDF Печать E-mail
05.11.14 09:42

Miško Hevery, один из основателей JavaScript-фреймворка AngularJS, ныне работающий в Google, представил проект AtScript, в рамках которого развивается расширенный вариант языка JavaScript, поддерживающий определение информации о типах через добавление аннотаций, что позволяет существенно увеличить эффективность работы JIT-компилятора и оптимизатора.

AtScript обеспечивает совместимость с кодом существующих проектов и JavaScript-движков за счёт использования допустимого в спецификации ECMAScript 4 синтаксиса ":", например, вместо "methodA(name)" можно указать "methodA(name:string):int", а также элементов, развиваемых в стандарте ECMAScript 6. Кроме аннотаций типов в AtScript реализована поддержка аннотаций полей и аннотаций метаданных. Аннотации полей позволяют явно определить используемые в классе поля перед их использованием. Для определения полей также применяется выражение ":", например "class Point { x:int; y:int; }".

Аннотации метаданных дают возможность использовать методы декларативного программирования и привязать к коду дополнительную информацию, например, указать необходимые фреймворкам сведения для подстановки зависимостей. Для определения метаданных предлагается использовать символ '@', например, "@Component({selector: 'foo'})". Также в AtScript предусмотрены механизмы интроспекции для определения типа объекта во время выполнения программы и доступа к данным о типах. Таким образом, AtScript можно рассматривать как ECMAScript 6, расширенный поддержкой типов, аннотаций и интроспекции.

В отличие от развиваемого компанией Miсrosoft языка TypeScript, в AtScript добавлена поддержка интроспекции и аннотаций метаданных, при этом AtScript совместим с TypeScript, так как использует туже схему указания типов через выражение ":", и может смешиваться с кодом на TypeScript. Похожие методы также применяются в языке Dart. При этом TypeScript и Dart требуют предварительной компиляции кода в JavaScript-представление. AtScript пытается избавиться от данной фазы и остаться максимально приближенным к JavaScript. Такой подход напоминает Asm.js от Mozilla, но предлагаемая в Asm.js система определения типов в специальных комментариях не слишком удобна при разработке вручную и больше предназначена для автоматической компиляции в JavaScript.

В настоящее время AtScript находится в стадии формирования экспериментального прототипа. На GitHub размещена подборка тестовых сценариев, которые можно использовать для экспериментов с AtScript. Кроме того, для работы с AtScript можно использовать JavaScript компилятор Traceur, позволяющий транслировать в обычный JavaScript (ECMAScript 5) некоторые экспериментальные возможности ECMAScript 6 (AtScript завязан на поддержке классов и модулей, которые появятся в будущем стандарте ECMAScript 6). В том числе для Traceur подготовлены настройки, обеспечивающие преобразование AtScript в код на языке Dart или код ECMAScript 5, который может выполняться в обычном браузере. Для загрузки модулей AtScript предлагается использовать фреймворк RequireJS. Первым крупным проектом, использующим AtScript станет web-фреймворк Angular, выпуск 2.0 которого планируется полностью переписать на AtScript.

  1. Главная ссылка к новости (http://www.theregister.co.uk/2014/11/04/...)
  2. OpenNews: Выпуск языка программирования Dart 1.7, развиваемого Google для замены JavaScript
  3. OpenNews: Язык Dart утверждён ассоциацией Ecma в качестве международного стандарта
  4. OpenNews: Релиз Firefox 22 с поддержкой Asm.js
  5. OpenNews: Выпуск языка программирования Rust 0.12, развиваемого проектом Mozilla
  6. OpenNews: Увидел свет TypeScript 1.0, продвигаемый Microsoft в качестве альтернативы JavaScript
Тип: Интересно / К сведению
Ключевые слова: javascript, atscript, typescript, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.2, Аноним, 14:27, 05/11/2014 [ответить] [смотреть все] +1 +/
NIH синдром мания велосипедостроения ... весь текст скрыт [показать]
 
  2.13, Аноним, 15:19, 05/11/2014 [^] [ответить] [смотреть все] [показать ветку]  +3 +/
Нет В отличие от нечитаемого asm js используется нормальный человеческий синтак... весь текст скрыт [показать] [показать ветку]
 
  3.18, А, 15:59, 05/11/2014 [^] [ответить] [смотреть все]  –2 +/
Тот у которого больше.
 
3.24, inferrna, 16:46, 05/11/2014 [^] [ответить] [смотреть все]  
+/
asm.js вообще немного не то. Это на 90% asm и лишь 10% js - там даже управление памятью ручное (если писать вручную). А типизация для обычного js не помешала бы, да.
 
  4.41, cmp, 00:09, 06/11/2014 [^] [ответить] [смотреть все]  +/
Это очень мягкое определение asm, любители костылей из мозилы родили очередной шедевр, еще более мутным было бы только бинарное представление данных.
 
  5.45, Аноним, 05:49, 06/11/2014 [^] [ответить] [смотреть все]  +/
Так оно для машины, машинам все-равно А парсить и выполнять так быстрее И мест... весь текст скрыт [показать]
 
3.44, Аноним, 05:47, 06/11/2014 [^] [ответить] [смотреть все]  +1 +/
Нормально было бы закончить уже выделываться и если уж хочется нормальных прилож... весь текст скрыт [показать]
 
1.3, Аноним, 14:29, 05/11/2014 [ответить] [смотреть все]  +/
не понятно поведение Гугла если они ведут развитие Яваскрипта, то их попытки пр... весь текст скрыт [показать]
 
  2.5, Ышмьс, 14:37, 05/11/2014 [^] [ответить] [смотреть все] [показать ветку]  +6 +/
"не вижу резона переходить на суп, когда слышно об орешках"
 
  3.17, arisu, 15:50, 05/11/2014 [^] [ответить] [смотреть все]  +8 +/ > Невольно возникает вопрос - как же дарт. Поматросили и бросили?
> Нежели у гугла такие неограниченные ресурсы?

пока что тут есть человек, который занимается полулюбительским проектом. при этом человек работает у гугеле, что даёт повод одним идиотам писать «гугель делает новый язык», а другим идиотам некритично это проглатывать.

 
  4.22, MPEG LA, 16:36, 05/11/2014 [^] [ответить] [смотреть все]  –3 +/
да неважно кто его делает, важно что вместо запилить пару этих фич в tsc, сырцы ... весь текст скрыт [показать]
 
  5.23, arisu, 16:37, 05/11/2014 [^] [ответить] [смотреть все]  +3 +/
тебе мсоподелие интересно? иди и запиливай.
 
  6.25, MPEG LA, 16:50, 05/11/2014 [^] [ответить] [смотреть все]  –1 +/
> тебе мсоподелие интересно? иди и запиливай.

типа мс большее зло чем гугл? компилер под APL - почему не контрибютить, учитывая что сообщество вокруг ts уже собралось и ждет этих фич? в итоге будет очередная поделка-дубликат.

 
  7.26, arisu, 16:55, 05/11/2014 [^] [ответить] [смотреть все]  +1 +/
> типа мс большее зло чем гугл?

где тут гугл, а?

> компилер под APL - почему не
> контрибютить, учитывая что сообщество вокруг ts уже собралось и ждет этих
> фич?

вот поэтому, навреное, и не хотят. потому что «сообщество собралось и ждёт.»

> в итоге будет очередная поделка-дубликат.

и что? человек забыл у тебя спросить, чем ему заниматься? это бывает.

 
  8.29, MPEG LA, 17:07, 05/11/2014 [^] [ответить] [смотреть все]  –1 +/
>где тут гугл, а?

а где тут ms?

>вот поэтому, навреное, и не хотят. потому что «сообщество собралось и ждёт.»

предлагаете всем заниматься написанием языков если что-то не устраивает?

>и что? человек забыл у тебя спросить, чем ему заниматься? это бывает.

интересна логика человека. вот сказал бы он (для примера) - "компилер tsc внутри страшное и унылое говно, поэтому я выкатываю свой" - вопросов бы не было. А просто сделать еще одну матрешку, которая отличается только цветом нижней половинки, при том, что предыдущие матрешки перекрасятся к следующей версии точно так же - это как-то странно. Хотя да, когда коту делать нечего...  можно и славу пафосно пособирать по интернетам, попутно зарисовавшись модным местом работы.

 
  9.47, Аноним, 09:29, 06/11/2014 [^] [ответить] [смотреть все]  +/
Гугловый компилятор, traceur, был доступен на google code задолго до первого рел... весь текст скрыт [показать]
 
5.43, Аноним, 01:00, 06/11/2014 [^] [ответить] [смотреть все]  +/
traceur был раньше ts, туда недавно добавили типы - остальное уже было просто д... весь текст скрыт [показать]
 4.36, Аноним, 18:55, 05/11/2014 [^] [ответить] [смотреть все]  +1 +/
Dart - аналогичная полулюбительская поделка, только развиваемая не одним, а неск... весь текст скрыт [показать]
 
  5.40, Аноним, 22:40, 05/11/2014 [^] [ответить] [смотреть все]  +/
Это есть хорошо или плохо к чему клоним что у Гугла нет стратегии в данном нап... весь текст скрыт [показать]
 
1.9, Бутират, 15:06, 05/11/2014 [ответить] [смотреть все]  –1 +/ Если оно реально будет компеляться через traceur, то может и выстрелит и angular 2.0 вы
 
  2.10, Бутират, 15:09, 05/11/2014 [^] [ответить] [смотреть все] [показать ветку]  +/
.. выйдет в приемлимые сроки, не успев состариться еще до выхода.

Однако, лучше бы они с Typescript скооперировались. У TS куча приятных плюшек и серьезый архитектор языков во главе. Всю функциональность TS ангуляровцам и за 2 года не запилить

 
  3.14, Аноним, 15:28, 05/11/2014 [^] [ответить] [смотреть все]  –1 +/
Это MS то Такое и даром не надо ... весь текст скрыт [показать]
 
1.19, manster, 16:17, 05/11/2014 [ответить] [смотреть все]  +/ аннотации это конечно хорошо, не попахивает мегакостылями
 
  2.37, Crazy Alex, 18:59, 05/11/2014 [^] [ответить] [смотреть все] [показать ветку]  +/
Мегакостылями оно в принципе попахивает из-за наследственных болезней JS. Увы - Дарт, как выяснилось, не лучше.

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

 
  3.38, Аноним, 21:28, 05/11/2014 [^] [ответить] [смотреть все]  +/
можно с этого места поподробней, с прувами... весь текст скрыт [показать]
 
1.39, Аноним, 22:03, 05/11/2014 [ответить] [смотреть все]  +/
Да запарили вы уже своими улучшенными JS и Java ... весь текст скрыт [показать]
  1.48, Mirraz, 10:07, 06/11/2014 [ответить] [смотреть все]  +/ Сначала придумываем себе проблем с динамически типизированными языками, а потом героически их решаем.
  1.49, xPhoenix, 10:50, 06/11/2014 [ответить] [смотреть все]  +/ Каждые полгода Google придумывает новый язык, который заменит JavaScript. Каждые, мать его, полгода... Вы вдумайтесь, какие масштабы!
  1.50, Аноним, 11:11, 06/11/2014 [ответить] [смотреть все]     [к модератору]  +/
внезапно, Dart-окапец ... весь текст скрыт [показать]
 
Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=41006

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика