Да, я только вчера читал-читал да так и не дочитал три огромных статьи на Хабре о Dart: одна про то, как писать юнит-тесты, вторая про S.O.L.I.D. в приложении к Dart и еще одна про какой-то хитрый edge-case со строками.
Вы что-то не в ту степь пошли. Контекст был такой — AtScript больше не разрабатывается. Следуя контексту, Dart разрабатывается, выходят новые версии, разработчики пишут библиотеки. AtScript мёртв, Dart жив. Не стоит заводить холивар про использование.
Видны большие синтаксические изменения TypeScript 1.5 в плане модулей. Это позволит более тонкую интеграцию с ангуляровскими компонентами? Замечательно! А где можно почитать про изменения в 1.5?
Народ, а кто нибудь умудрился заставить sublime 3 нормально дополнять?
При использовании github.com/Railk/T3S вообще невозможно, саблайм виснет и на винде и на маке.
Со вторым саблаймом получается, но он не показывает нормально overloaded методы, когда там несколько сигнатур показывает верхнюю и говорит что ещё столько то оверлоадов, а посмотреть их я не нашёл как.
Дилетантские вопросы:
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. Благодарю за столь подробный ответ, про различия, а что скажите про порог вхождения?
У каждого свои меры «серьезности». Обычно все же меряют сложностью, количеством вьюшек или контроллеров, объемом кода и т.д. В этом случае очень удобно помимо тестов иметь еще статический анализ, который предупредит о опечатках и прочих мелочах до прогона тестов и уменьшит футпринт по времени (особенно если тесты выполняются больше 10 минут).
Что до оверхэда, использовать тайп хинтинг или нет — решать вам.
По порогу вхождения сказать ничего не могу. Думаю что чуть сложнее в самом начале но кривая обучения будет более плавной.
«Обычно все же меряют сложностью, количеством вьюшек или контроллеров, объемом кода и т.д»
Это все же не «обычно», а такое же как прочие мерила, но в данном случае оно сопоставимо с тем когда человеку оплачивается не итог работы-результат, а количество строк и размер «пакета». Количество не значит качество, а сложность не значит достижение поставленных целей. Сами разработчики и проектировщики делают проект «сложным», в большинстве случаев, не оправданном сложным, мое личное мнение — плохое мерило.
«В этом случае очень удобно помимо тестов иметь еще статический анализ, который предупредит о опечатках и прочих мелочах до прогона тестов и уменьшит футпринт по времени (особенно если тесты выполняются больше 10 минут).»
Согласен.
«Думаю что чуть сложнее в самом начале но кривая обучения будет более плавной.»
Вот этот момент очень важный, плавность данной кривой крайне положительный момент, спасибо.
Вообще-то большая часть компонентов Angular2 описана в design docs которые доступны на почитать все. Какие-то пилятся уже давно (watchtowerjs например), какие-то только начали пилить… все есть в группе angular на гитхабе. Вообще наверное стоит подождать чуть чуть более свежих данных. Пока все что есть — то что рассказывали на ng-conf последнем.
Почему вы настолько уверены что курс который взяли разработчики Angular не правильный? Вам не кажется что это… преждевременное и крайне сомнительное утверждение?
Не увидел тут ссылки на доклад с ng-conf, в котором рассказывается о преимуществах которые дает TypeScript и все такое: youtu.be/lluTcocfRAM?t=3h46m55s
TypeScript дает ощутимые преимущества во время разработки, а в результате все равно компилируется в обычный JS и использоваться может ровно так же, как и до этого.
Но зато вместе с TypeScript приходят и .d.ts файлы (см. проект DefinitelyTyped), которые даже при работе со скомпилированной JS версией в нормальных редакторах дают прекрасный автокомплит.
А что теперь будет с Aurelia? Автор кажется сильно напирал на его AtScript'овость. Учитывая наличие Angular 2 основанном на TypeScript у автора Aurelia большая проблема, если он конечно еще не слился с вышеназванными.
Angular 2: Построенный на TypeScript