Подтвердить что ты не робот

Должен ли я использовать Traceur вместо Typescript для целевого ES5, но быть готовым к ES6

Я работаю над большой базой кода, которая могла бы выиграть от Typescript, но поскольку в конце концов мир переместится на ES6, должен ли я управлять развитием в направлении Traceur?

Я не хочу менять реализации Typescript для того, чтобы настроить ES6 (когда он готов), поэтому теперь я чувствую, что должен идти вперед с Traceur.

Кто-нибудь может посоветовать?

4b9b3361

Ответ 1

Я определенно не согласен с мнением о том, что TypeScript и Traceur настолько разные, TypeScript является ES5 с типами, а Traceur - примерно ES6.

С одной стороны, идет ES6-совместимый TypeScript 2.0 . С другой стороны, в Traceur есть несколько особенностей, отмеченных как экспериментальные в документах, а именно типы и аннотации. И получается, что типы очень похожи на типы TypeScript, тогда как аннотации - это что-то не имеющее значения как для ES6, так и для TypeScript. Итак, Traceur - это скорее ES6, и для этого уже есть имя: AtScript. Да, у нас есть другое языковое расширение: -)

Есть хороший слайд из презентация Miško Hevery, которая показывает, что действительно происходит здесь, полностью действует, как только TypeScript 2.0 выпущено:

AtScript and TypeScript as ES6 extensions

Итак, что бы вы ни решили использовать, важно отметить: они являются подмножествами, вы можете написать ES5/ES6 JS, и это будет действительный код TypeScript, вы можете написать TypeScript и он будет действительным кодом AtScript.

Возвращаясь к вашему вопросу, я бы дал скромный совет начать с ES6 с помощью Traceur с отключенными экспериментальными функциями (теперь он довольно стабилен) и расширяться по мере необходимости, потому что это не так радикальное решение, не блокирует вас и оставляет пространство для перемещения в будущем.

UPD: В начале 2015 года я также рекомендую обратить внимание на проект 6to5 (переименованный в Babel) в качестве альтернативы Traceur. Он перемещается очень быстро, и в нем есть некоторые интересные функции, такие как читаемость сгенерированного кода и лучшая поддержка систем node.js и сборки.

Ответ 2

TypeScript и Traceur имеют совершенно разные цели и arent, сравнимые с тем, как вы пытаетесь их сравнить.

TypeScript - это надмножество EcmaScript, которое добавляет строгую типизацию. Он включает в себя некоторые функции от ES6, но его основной целью является добавление строгой типизации к языку (при согласовании с ES6), а не для поддержки ES6.

В отличие от этого, Traceur является будущим EcmaScript для компилятора current-EcmaScript. Он ничего не добавляет к языку, который уже не предлагается для следующей версии EcmaScript.

Если вы просто хотите написать EcmaScript 6 сегодня, используйте Traceur. Если вам нужна дополнительная строгая типизация и все преимущества, связанные с этим, плюс некоторые функции ES6, используйте TypeScript.

Ответ 3

FYI следующая версия (2.0) typescript в разработке ориентирована на совместимость с ES6: http://typescript.codeplex.com/wikipage?title=Roadmap

Обновлено сообщение здесь:

http://blogs.msdn.com/b/typescript/archive/2014/10/22/typescript-and-the-road-to-2-0.aspx

От typescript от 1,5 до typescript 2,0

Поскольку мы смотрим на версию 2.0, мы фокусируемся на двух целях в дополнение к нашей главной цели - доведение хорошего инструмента до JavaScript развитие. Первый - согласовать с ES6. Выравнивание с ES6 позволяет typescript стать надмножеством следующего JavaScript, открывая способ работы с новыми шаблонами кода, такими как деструктурирование, строка шаблоны, promises, итераторы и многое другое в дополнение к функциям typescript уже поддерживает, например, классы и лямбда-функции. Мы также работаем с группами Flow и Angular, чтобы убедиться, что typescript - лучший язык для работы с более широким диапазоном библиотеки, включая декларативные рамки, такие как предстоящий Angular2.0.

Ответ 4

Я бы определенно рекомендовал маршрут ES6.

Для кого-либо еще, кто подойдет к этому вопросу, пойдите и проверьте видео tagtree на функциях ES6.

Чтобы увидеть шаблон строки, синтаксис стрелок и desctructuring, посмотрите бесплатное учебное пособие по tagtree screencast, регистрация не требуется.

Ответ 5

для крупномасштабной системы я бы определенно рекомендовал использовать typescript.

когда у вас есть команда, работающая вместе typescript, предоставит вам все преимущества современного компьютерного языка с совместимостью es6 (на основе дорожной карты Microsoft), но со строгими преимуществами ввода текста и завершения кода.

Ответ 6

Оба Traceur и Typescript transpiles имеют очень похожие функции, с некоторыми плюсами и минусами.

Я считаю, что главные вопросы, на которые нужно ответить, проанализировать и сравнить более глубоко: "Кто его сторонники?" и "Что является историческим для каждого из них?".

Q1: Хорошо, что оба являются крупными и авторитетными компаниями с большими инвестициями в технологии, рабочей силой, чтобы дать будущее своим транзитам. Google стоит за Traceur, а Microsoft отстает от Typescript.

Q2.1: Google имеет историю как сильный сторонник инфраструктур с открытым исходным кодом, таких как Chromium (база данных с открытым исходным кодом Google Chrome) и тысячи бесплатных API-интерфейсов, практически все они основаны на открытых стандартах. Traceur следует этой же логике, руководствуясь рекомендациями спецификации ECMAScript 6, предвосхищая ее и обеспечивая ее совместимость в будущих версиях.

Q2.2: Microsoft имеет историю стандартов и расширяет их патентоспособность, создавая зависимость от клиентов на своей платформе и не уважая общее видение стандартизации других игроков рынка. Главная цель Typescript заключается в совместимости других компиляторов на рынке с синтаксисом и особенностями вашего компилятора JScript.NET, а не с ECMAScript 6. Любое упоминание ECMA - это просто "сахар для муравьев".

Синтаксический анализ в реальном времени и расширенное завершение кода Typescript являются значительным преимуществом для небольших проектов, но более крупные проекты должны принимать правильное решение во время определения архитектуры, иначе весь проект может быть взломан компилятором устаревшим или прекращено и не соответствует стандартам, в зависимости от уникального поставщика.

Однако многие функции ECMAScript 6 реализованы только в версиях Firefox 33 и Chrome 38 (в 2014-10).

http://kangax.github.io/compat-table/es6/