| |
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.
|
|
- Главная ссылка к новости (http://www.theregister.co.uk/2014/11/04/...)
- OpenNews: Выпуск языка программирования Dart 1.7, развиваемого Google для замены JavaScript
- OpenNews: Язык Dart утверждён ассоциацией Ecma в качестве международного стандарта
- OpenNews: Релиз Firefox 22 с поддержкой Asm.js
- OpenNews: Выпуск языка программирования Rust 0.12, развиваемого проектом Mozilla
- OpenNews: Увидел свет TypeScript 1.0, продвигаемый Microsoft в качестве альтернативы JavaScript
| Тип: Интересно / К сведению | Ключевые слова: javascript, atscript, typescript, (найти похожие документы) | При перепечатке указание ссылки на opennet.ru обязательно | Реклама |
id=adv>
| |
| +/– |
asm.js вообще немного не то. Это на 90% asm и лишь 10% js - там даже управление памятью ручное (если писать вручную). А типизация для обычного js не помешала бы, да.
| | |
|
4.41, cmp, 00:09, 06/11/2014 [^] [ответить] [смотреть все] | +/– |
Это очень мягкое определение asm, любители костылей из мозилы родили очередной шедевр, еще более мутным было бы только бинарное представление данных.
| | | 3.44, Аноним, 05:47, 06/11/2014 [ ^] [ ответить] [ смотреть все] +1 +/–Нормально было бы закончить уже выделываться и если уж хочется нормальных прилож... весь текст скрыт [ показать]
1.3, Аноним, 14:29, 05/11/2014 [ответить] [смотреть все] +/–не понятно поведение Гугла если они ведут развитие Яваскрипта, то их попытки пр... весь текст скрыт [ показать]
3.17, arisu, 15:50, 05/11/2014 [ ^] [ ответить] [ смотреть все] +8 +/–
> Невольно возникает вопрос - как же дарт. Поматросили и бросили?
> Нежели у гугла такие неограниченные ресурсы?
пока что тут есть человек, который занимается полулюбительским проектом. при этом человек работает у гугеле, что даёт повод одним идиотам писать «гугель делает новый язык», а другим идиотам некритично это проглатывать.
|
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 внутри страшное и унылое говно, поэтому я выкатываю свой" - вопросов бы не было. А просто сделать еще одну матрешку, которая отличается только цветом нижней половинки, при том, что предыдущие матрешки перекрасятся к следующей версии точно так же - это как-то странно. Хотя да, когда коту делать нечего... можно и славу пафосно пособирать по интернетам, попутно зарисовавшись модным местом работы.
| | | 5.43, Аноним, 01:00, 06/11/2014 [ ^] [ ответить] [ смотреть все] +/–traceur был раньше ts, туда недавно добавили типы - остальное уже было просто д... весь текст скрыт [ показать] 4.36, Аноним, 18:55, 05/11/2014 [ ^] [ ответить] [ смотреть все] +1 +/–Dart - аналогичная полулюбительская поделка, только развиваемая не одним, а неск... весь текст скрыт [ показать]
1.9, Бутират, 15:06, 05/11/2014 [ответить] [смотреть все] –1 +/–
Если оно реально будет компеляться через traceur, то может и выстрелит и angular 2.0 вы
|
2.10, Бутират, 15:09, 05/11/2014 [^] [ответить] [смотреть все] [показать ветку] | +/– |
.. выйдет в приемлимые сроки, не успев состариться еще до выхода.
Однако, лучше бы они с Typescript скооперировались. У TS куча приятных плюшек и серьезый архитектор языков во главе. Всю функциональность TS ангуляровцам и за 2 года не запилить
| | |
1.19, manster, 16:17, 05/11/2014 [ответить] [смотреть все] +/–
аннотации это конечно хорошо, не попахивает мегакостылями
|
2.37, Crazy Alex, 18:59, 05/11/2014 [^] [ответить] [смотреть все] [показать ветку] | +/– |
Мегакостылями оно в принципе попахивает из-за наследственных болезней JS. Увы - Дарт, как выяснилось, не лучше.
Но что до именно этих аннотаций - то от аннотаций там одно название. Вполне приличная типизация - нормальный синтаксис, заход на умение работать с ними в самом браузере, а трансляция - как переходной этап...
| | |
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 |