Google развивает AtScript, вариант JavaScript с аннотациями типов
5 ноября 2014 года
Miško Hevery, один из основателей JavaScript-фреймворка AngularJS, ныне работающий в Google, представил проект AtScript (Архивная копия от 6 сентября 2018 на Wayback Machine), в рамках которого развивается расширенный вариант языка 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 компилятор
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.