Comments 52
Да, я только вчера читал-читал да так и не дочитал три огромных статьи на Хабре о Dart: одна про то, как писать юнит-тесты, вторая про S.O.L.I.D. в приложении к Dart и еще одна про какой-то хитрый edge-case со строками.
Вы что-то не в ту степь пошли. Контекст был такой — AtScript больше не разрабатывается. Следуя контексту, Dart разрабатывается, выходят новые версии, разработчики пишут библиотеки. AtScript мёртв, Dart жив. Не стоит заводить холивар про использование.
Да, встречаются упоминания, что разработка AtScript прекращена, а все фичи будут перенесены в TypeScript.
Видны большие синтаксические изменения TypeScript 1.5 в плане модулей. Это позволит более тонкую интеграцию с ангуляровскими компонентами? Замечательно! А где можно почитать про изменения в 1.5?
Дай Бог что бы это было плодотворное сотрудничество ведущее к синергии. Ведь никто же не ожидал TS для Angular 2.
Да ладно, в доке по AtScript это был как возможный вариант событий, нет?
Народ, а кто нибудь умудрился заставить sublime 3 нормально дополнять?
При использовании github.com/Railk/T3S вообще невозможно, саблайм виснет и на винде и на маке.
Со вторым саблаймом получается, но он не показывает нормально overloaded методы, когда там несколько сигнатур показывает верхнюю и говорит что ещё столько то оверлоадов, а посмотреть их я не нашёл как.
Естественно, второй саблайм то работает и билдит ts нормально, а третий виснет.
Спасибо, это намного лучше. Жаль новые механизмы хабра не дают голосовать за карму людей у которых нет постов.
Дилетантские вопросы:
1. Если кратко typoscrip(не вики данные, а практический уровень) это попытка акцента на Java в названии JavaScript?
2. Каков уровень вхождения по сравнению с angular 1.* и на сколько субъективно он изменился/измениться в связке TypeScript+Angular2?
3. Какую цель преследуют создатели и те из разработчиков кто поддерживает данное решение в вопросе перехода на TypoScript?
TypoScript это скорее уход в сторону быдлокода. Если не поняли, «typo» — опечатка.

1. Скорее не в сторону Java а больше в сторону серьезных решений. В частности описание типов позволит реализовать нормальный статический анализ. Для больших приложений это довольно полезная штука, да и автокомплит в IDE улучшится.
2. Различия будут более чем приличные. С идеологической точки зрения — не так сильно, но архитектурно — придется по сути все полностью переосмыслять. Весь фреймворк разделен на отдельные компоненты что бы снизить монолитность. Возьмем watchtower.js который будет использоваться как компонент реализующий дата биндинг. Скажем $digest циклы планируется запускать только как фэлбэк для браузеров не поддерживающих Object.observer (с автозапуском через zone.js или аналогичные штуки) и все это будет происходить в автоматическом режиме. Работа с директивами так же существенно должна быть переработана. Вместо своей системы модулей планировалось использовать ES6 модули и т.д. Новый компонент реализующий DI и т.д. Сервис $http должен быть выделен в отдельный компонент для организации persistance layer. Ну и поскольку все модульное — можно смешивать это все просто как набор библиотек.
3. Цель — сделать фреймворк серьезнее, избавиться от болячек первых версий и тд.
Извиняюсь наз «typo», просто много лет назад плотно работал с typo3, а в нем писал на на ts(typoscript) — руки помнят.

«Скорее не в сторону Java а больше в сторону серьезных решений.»
«Серьезных» решений предостаточно на js под любым соусом. Разве что сам разработчик хочет добавить себе лично серьезности из-за собственной не уверенности.

«Для больших приложений это довольно полезная штука, да и автокомплит в IDE улучшится.»
Полезная, но часто избыточная.
Всегда возникает вопрос в чем мерить «серьезность» в сложности продукта или в его востребованности?
Есть такое крайне серьезное решение InterSystems Caché.

2. Благодарю за столь подробный ответ, про различия, а что скажите про порог вхождения?

3. Благодарю за ответ.
У каждого свои меры «серьезности». Обычно все же меряют сложностью, количеством вьюшек или контроллеров, объемом кода и т.д. В этом случае очень удобно помимо тестов иметь еще статический анализ, который предупредит о опечатках и прочих мелочах до прогона тестов и уменьшит футпринт по времени (особенно если тесты выполняются больше 10 минут).

Что до оверхэда, использовать тайп хинтинг или нет — решать вам.

По порогу вхождения сказать ничего не могу. Думаю что чуть сложнее в самом начале но кривая обучения будет более плавной.
«Обычно все же меряют сложностью, количеством вьюшек или контроллеров, объемом кода и т.д»
Это все же не «обычно», а такое же как прочие мерила, но в данном случае оно сопоставимо с тем когда человеку оплачивается не итог работы-результат, а количество строк и размер «пакета». Количество не значит качество, а сложность не значит достижение поставленных целей. Сами разработчики и проектировщики делают проект «сложным», в большинстве случаев, не оправданном сложным, мое личное мнение — плохое мерило.

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

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

Вот такое (про отличия angular2 от angular) и нужно писать в посте! Спасибо за полезную информацию. А где-то ещё можно почитать?
Вообще-то большая часть компонентов Angular2 описана в design docs которые доступны на почитать все. Какие-то пилятся уже давно (watchtowerjs например), какие-то только начали пилить… все есть в группе angular на гитхабе. Вообще наверное стоит подождать чуть чуть более свежих данных. Пока все что есть — то что рассказывали на ng-conf последнем.
Кому интересно, как работают аннотации в TypeScript 1.5:
@AnnotationA
@AnnotationB("wow")
class C { }
Превращается в:
var C = (...);
AnnotationA(C);
AnnotationB("wow")(C);
Ого, а слона-то я и не заметил! Действительно, вроде там так:
var C = (...);
C = AnnotationA(C);
C = AnnotationB("wow")(C);
Ну почему же покойся с миром, ведь для любителей первой ветки AngularJS есть Angular Light. Внешне сходства есть.
Время покажет, RIP или нет. Исходники-то открыты, никто не мешает форкать и поддерживать.
Почему вы настолько уверены что курс который взяли разработчики Angular не правильный? Вам не кажется что это… преждевременное и крайне сомнительное утверждение?
TypeScript дает ощутимые преимущества во время разработки, а в результате все равно компилируется в обычный JS и использоваться может ровно так же, как и до этого.

Но зато вместе с TypeScript приходят и .d.ts файлы (см. проект DefinitelyTyped), которые даже при работе со скомпилированной JS версией в нормальных редакторах дают прекрасный автокомплит.
А что теперь будет с Aurelia? Автор кажется сильно напирал на его AtScript'овость. Учитывая наличие Angular 2 основанном на TypeScript у автора Aurelia большая проблема, если он конечно еще не слился с вышеназванными.
На Dart писался Angular dart. Некоторые вещи мигрировали в Angular 2 как порт на JS но не более.
Only those users with full accounts are able to leave comments. Log in, please.