LINUX.ORG.RU

Angular2 vs Angular1

 , , , ,


1

2

Поделитесь результатми перехода. Стоит ли изучать 2-ой, или продолжать писать на 1-ом? По работе только проекты на Angular1. Google, вроде, к концу весны выкатит Angular3 уже.

Какие вообще плюсы у 2-го Angular вы заметили, после перехода с 1-го?

Немного озадачила сборка hello world angular 2 на 4 Мб Javascript'а, вебпаком, плюс собиралось 14 секунд на ssd - это жуть.

Отказался от webpack в пользу Rollup, в итоге hello world примерно 400 Кб - меня это тоже не устраивает.

Хочу Angular 2 hello world уложить максимум в 100 Кб не сжатых, чтобы сжималось в 20-40 Кб, и чтобы всё это было в одном файле-бандле, возможно такое или Angular2 выпустили специально таким жирным? Как вы собираете Angular приложухи, заморачиваетесь конечным размером или как всегда... по 5 Мб жабоскрипта и в продакшен?

P.S. Про vue и react в курсе, реакт не нравится от слова совсем. Хочу обсудить именно нишу MVC Javascript фреймворков без ФП. К TypeScript, LiveScript отношусь положительно, ещё лучше к Dart.

Перемещено leave из development

★★★★★

Мой не совсем хелловорд не минифицированный - 1.5 метра. Собирался browserify'ем.

Angular2 выпустили специально таким жирным?

Оно же модульно. Разве не достаточно подключить только то, что нужно?

FIL ★★★★ ()

максимум в 100 Кб не сжатых

AOT за сжатие считается?

Стоит ли изучать [произвольная популярная вещь, поддерживаемая жирными компаниями, а заодно несколькими хипстерами]

Если есть время — изучай, лишним не будет. Некоторые куски ангуляр2-архитектуры могут быть полезны и в ангуляр1-приложениях (начиная с запрета пользовать ng-controller, конечно).

//ненавижу оба, предпочитаю более другие фреймворки

x3al ★★★★★ ()

мой знакомый гуру говорит что Aurelia - это то каким должен был быть 2й ангуляр

rusich ()

Поделитесь результатми перехода. Стоит ли изучать 2-ой, или продолжать писать на 1-ом? По работе только проекты на Angular1.

На Angular вообще не стоит писать. Лучше взять Ember/Polymer/Reac+Redux. Ангуляра жирная. И медленная. Для скорости вообще лучше «мифрил».

Google, вроде, к концу весны выкатит Angular3 уже.

Можно ссылку? Google на сколько помню развивают проект Polymer и выйдет Polymer 2. К проекту Angular они после первого не имеют никакого отношения.

Какие вообще плюсы у 2-го Angular вы заметили, после перехода с 1-го?

Еще больше тормозов и боли. Отвратительный TypeScript заместо няшного ES6 по умолчанию. Очень своеобразная логика.

Немного озадачила сборка hello world angular 2 на 4 Мб Javascript'а, вебпаком, плюс собиралось 14 секунд на ssd - это жуть.

Это Angular. Для него это нормально.

Отказался от webpack в пользу Rollup, в итоге hello world примерно 400 Кб - меня это тоже не устраивает.

Ты еще на слабых процах потести. Поймешь какое это убожество. Был у меня коллега, который писал фронт еще на первой ангуляре для своего проекта. Евенгелист. Убеждал, что быстрее ничего нет и лучше тоже. Запустил на слабой мобиле. Потом на слабом компе. Обо**ся оба раза.

Хочу Angular 2 hello world уложить максимум в 100 Кб не сжатых, чтобы сжималось в 20-40 Кб,

Влажные мечты ангулярщика. Нет такого и не будет для Angular2.

и чтобы всё это было в одном файле-бандле, возможно такое или Angular2 выпустили специально таким жирным?

Он архитектурно не может быть худым. С этим надо либо смириться, либо учить нормальный фреймворк.

Как вы собираете Angular приложухи, заморачиваетесь конечным размером или как всегда... по 5 Мб жабоскрипта и в продакшен?

Не собираю. И не использую. Ибо нужна и важна скорость и размер.

P.S. Про vue и react в курсе, реакт не нравится от слова совсем.

Тебе шашечки или ехать? Ну учи тогда http://mithril.js.org/ или Riot. Ну или на худой конец Polymer.

Хочу обсудить именно нишу MVC Javascript фреймворков без ФП.

90% фреймворков JS без ФП. Требования какие к фреймворку? А то пока я видел только размер. «Мифрил» в этом случае уделает всех.

К TypeScript, LiveScript отношусь положительно, ещё лучше к Dart.

А зря. Есть ванильный ES, всеми этими выродками языков ты ограничиваешь себя. ES более развит на данный момент.

silver-bullet-bfg ★★ ()
Ответ на: комментарий от Noob_Linux

Мухаха. Они поняли что такое г**но сделали, что официально перепрыгнули целую версию?)

silver-bullet-bfg ★★ ()
Ответ на: комментарий от silver-bullet-bfg

Судя по твоим комментариям ты не читал блог и в глаза не виде TS.

Noob_Linux ★★★ ()
Ответ на: комментарий от Noob_Linux

Судя по твоим комментариям ты не читал блог и в глаза не виде TS.

Okay, что есть в TS чего нет в ES сейчас?

silver-bullet-bfg ★★ ()
Ответ на: комментарий от silver-bullet-bfg

Декораторов, статичиской типизации и ещё кучи сахара. И самое главное статический анализ из коробки за счет «компиляции». Но для хелоу вордов это не нужно, так что вам наверно это не интересно.

но при таких заявлениях

ES более развит на данный момент.

Это я должен спрашивать чего нет TS по сравнению с ES?

Noob_Linux ★★★ ()
Ответ на: комментарий от Noob_Linux

Декораторов,

На сколько знаю в ES7 в стандарте будут. Сейчас можно использовать через Babel, не?

статичиской типизации

FlowTypes от книгалица не видел?

и ещё кучи сахара.

Примеры в студию.

И самое главное статический анализ из коробки за счет «компиляции».

Правильно взял в кавычки. И не забываем, что TS ваш переводится при сборке проекта в этот не любимый всеми JS. Да еще бородатой версии для поддержки.

Но для хелоу вордов это не нужно, так что вам наверно это не интересно.

Мне интересны промышленные инструменты для заработка денег здесь и сейчас. ES это позволяет на 100%. А вот работы на TS кроме как с привязкой к Angular2 я не видел. Ну еще одну вакансию для WPF видел, да. Если ты такой евангелист TS - скажи область применения TS и почему он там лучше других языков.

Это я должен спрашивать чего нет TS по сравнению с ES?

Хотя бы экосистемы. Она вся с JS. TS базируется на стандарте ES, в нем некоторые фишки появляются раньше, да. Некоторые позже. Это хорошо. Но сегодня у него нет ни одной возможности, которой не было бы в ES. И да, я рассматриваю ES как экосистему с языком. Поэтому для меня использование Flow для типов - нормальная практика. Когда TS будет развит хотя бы на уровне Python по батарейкам, причем своим - я смогу сказать что экосистема готова. Сейчас - есть «язык», который трансилруется в JS. Есть куча библиотек написанных на JS. В том числе - которые делают функционально его равным и даже превосходящим по некоторым моментам TS. Так - почитайте, более чем правильно всё описано.

silver-bullet-bfg ★★ ()
Ответ на: комментарий от silver-bullet-bfg

На сколько знаю в ES7 в стандарте будут
Сейчас можно использовать через Babel
TS ваш переводится при сборке проекта в этот не любимый всеми JS. Да еще бородатой версии для поддержки

комментарии излишни

Если ты такой евангелист TS

отнюдь, я вообще пыхарь и жикверяговнокодер если говорить про деньги.

Хотя бы экосистемы. Она вся с JS.

JS код это всегда валидный TS код, но не на оборот. JS экосистема полностью совместима с TS. Можешь TS считать кофескриптом нового поколения.

Но сегодня у него нет ни одной возможности, которой не было бы в ES.

ты забыл уточнить что для использования этих возможностей нужно вставлять костыли разной степени упоротости, допустим от той же лицокниги. В TS мы имеем ВСЁ из коробки и в полной гармонии. А так же ПОДДЕРЖКУ в IDE и редакторах.

Сейчас - есть «язык», который трансилруется в JS.

Bable + ES7 - все точно так же. (и, думаю, всегда так будет)

Есть куча библиотек написанных на JS.

которые можно использовать в TS без каких либо препятствий.

статью комментировать не буду, так как придется написать целую статью для этого, а мне лень. Дискуссию считаю исчерпанной в связи с вашей полной не компетентностью в вопросе разработки на TS, без которой вы нем имеете полного права на высказывания какого либо мнения по вопросу.

Noob_Linux ★★★ ()
Ответ на: комментарий от menangen

я не фанат Angular и согласен с тем что он имеет множество проблем, но речь (в дискуссии) про TS в первую очередь.

Noob_Linux ★★★ ()
Ответ на: комментарий от menangen

блин, накидали ссылок на икспертов «я две недели юзаю ангуляр, и вот что я вам скажу» ...

я вот тоже две недели ковыряю, и как новоиспеченный иксперт, тоже во многом согласен с предыдущими икспертами из ссылок

но вот по последнему, если разобраться:
п.1: уже время прошло, уже сам ангуляр какой-то 2.3 или 2.4, и Rx.js уже ЕМНИП не бета а чистый 5.0
п.2: про .toPromise прямо в официальном хеловорде есть, но кому это нужно, доки никто не читает

подозреваю если дальше разбираться - там то-же самое

но то такое
вот меня тоже интересует компиляция, и как с ней жить
ну т.е. как ускорить и как уменьшить размер
никак не могу придумать комфортный ENV=development, все время какая-то херня получается

anTaRes ★★★★ ()

Хочу Angular 2 hello world уложить максимум в 100 Кб не сжатых

вот попалось: https://yakovfain.com/2016/08/11/angular-2-hello-world-and-the-guinness-book/

tl;dr

If you’re writing Hello World type apps, don’t use Angular 2. If
you’re writing mid to large Web apps, Angular 2 with
TypeScript will decrease time to market of your app.

UPDATE. If you want to create a small deployable version of
the app, run it through the Webpack bundler with ahead of
time compilation (AOT). The size of the deployable version
of HelloWorld will be under 100KB.

еще один иксперт, только этот книгу написал
похоже что в его блоге тоже много полезной инфы

anTaRes ★★★★ ()
Ответ на: комментарий от anTaRes

Я запускал aot через вебпак и tree shake в rollup - не меньше 400 Кб получается бандл, т.ч. он врёт про 100 Кб. Вебпак вообще у меня рожает на 4.5 Мб в оффициальном гугл репозитории Angular 2.

menangen ★★★★★ ()
Ответ на: комментарий от menangen

я пробовал в angular-cli, сразу после инита в прод режиме с aot компилять
вроде около метра было
ткчто хеловорлд хеловорлду рознь :)

вот я и пытаюсь понять где эта рознь, или просто это мое рукожопие

anTaRes ★★★★ ()

Хочу обсудить именно нишу MVC Javascript фреймворков без ФП.

Это же и есть реакт.

Хочу Angular 2 hello world уложить максимум в 100 Кб не сжатых, чтобы сжималось в 20-40 Кб, и чтобы всё это было в одном файле-бандле, возможно такое или Angular2 выпустили специально таким жирным?

А зачем? Подключай из cdn, он будет в кеше пользователя. 0kb, актуально.

anonymous ()
Ответ на: комментарий от silver-bullet-bfg

А зря. Есть ванильный ES, всеми этими выродками языков ты ограничиваешь себя. ES более развит на данный момент.

Писать в 2017 на ванильном жс вместо тс могут только альтернативно одаренные люди.

anonymous ()
Ответ на: комментарий от Noob_Linux

комментарии излишни

Отчего же? Я привел факт о том, что TS просто еще одна хипсторская штука, которая не является новым языком по факту или еще чем-то.

JS код это всегда валидный TS код, но не на оборот. JS экосистема полностью совместима с TS. Можешь TS считать кофескриптом нового поколения.

Ну привел пример ненужно «старого поколения». Чего не умеет JS с Babel и библиотеками типа Flow, чего умеет TS?

ты забыл уточнить что для использования этих возможностей нужно вставлять костыли разной степени упоротости, допустим от той же лицокниги. В TS мы имеем ВСЁ из коробки и в полной гармонии. А так же ПОДДЕРЖКУ в IDE и редакторах.

Без костылей - это без упомянутого Babel и прочих сборщиков. Которые так же нужны TS. Разница - для ES тебе нужно 1 раз сделать сборку самому (под свой вкус). В TS у тебя сборка готова. В чем разница? Про поддержку IDE не надо. Она есть и она прекрасно, не хуже уж чем для TS.

Bable + ES7 - все точно так же. (и, думаю, всегда так будет)

Да, т.к. браузеры обновляются меленно. А пользователи их обновляю еще медленее.

которые можно использовать в TS без каких либо препятствий.

Зачем в TS FlowTypes?

Чувак, я как бы пишу на ES/Ember, Angular2/TS, NodeJS, etc. как ты на пыхе. И говорю как практик. Второе сочетание было самым отвратным и бесполезным. В итоге перевел A2 на нормальный ES6.

silver-bullet-bfg ★★ ()
Ответ на: комментарий от menangen

Фонаты TS и Angular2 все такие. Они не умеют признавать что-либо. Они сидят в своем маня-мирке, где Angular стал производительным, имеет красивую архитектуру, а TS запускается в любом браузере без Babel'a.

silver-bullet-bfg ★★ ()
Ответ на: комментарий от silver-bullet-bfg

Успехов тебе в е*ле с багами на каждом рефакторинге в своем ванильном жсе.

anonymous ()
Ответ на: комментарий от silver-bullet-bfg

Ну привел пример ненужно «старого поколения». Чего не умеет JS с Babel и библиотеками типа Flow, чего умеет TS?

А зачем нужен бабел с flow, если есть тс, который делает все то же самое, но только лучше? Лучше поддержка иде, лучше развита инфраструктура, лучше надежность тулчейна в целом? Зачем собирать тс из плагинов бабела, если можно использовать сам тс?

anonymous ()
Ответ на: комментарий от anonymous

Т.е. ты предлагаешь один набор плагинов для Babel заменить другим набором планигов для Babel? Логично)

Проинфраструктура спасибо, поржал с утра на работе. Покажи мне инфраструктуру ТС БЕЗ использования JS вообще. Да и попользуйся им без JS. Не юзая node, npm, либы, etc.

silver-bullet-bfg ★★ ()
Ответ на: комментарий от silver-bullet-bfg

Т.е. ты предлагаешь один набор плагинов для Babel заменить другим набором планигов для Babel? Логично)

Какая вообще разница, плагин это для бабел или нет? Тебе шашечки или ехать (тем более что на практике подключение бабела/flowtpye от тс отличается несколькими строками в конфиге сборщика)? Есть два инструмента (тс и flowType), предназначенные для выполнения одной и той же задачи, одним и тем же способом. И один из них (тс) фактически строго лучше другого. Да, можно использовать худший. Но зачем?

Не юзая node, npm, либы, etc.

Зачем? Ведь «node, npm, либы» (то есть инфраструктура) - это как раз то, чем тс лучше flowType. Больше либ, лучше поддержка комьюнити, лучше поддержка иде, выше скорость запиливания новых фич. Наконец, тс просто значительно более зрел.

Раньше мы могли бы говорить еще, что у flowType есть преимущества в системе типов, но вот уже добавили в тс и non-nullable и keyof и теперь этих преимуществ почти не осталось. Ну да, не sound, и вариантности там никогда не будет - но мы по скале знаем, к чему она приводит, так что не очень-то и хотелось.

anonymous ()
Ответ на: комментарий от anonymous

Какая вообще разница, плагин это для бабел или нет?

Потому, что по сути TS - такой же набор плагинов для Babel. Ни более, но и не менее

Тебе шашечки или ехать (тем более что на практике подключение бабела/flowtpye от тс отличается несколькими строками в конфиге сборщика)?

Я за однородность инфраструктуры. Что мне может дать использование TS по сравнению с FT? Просто для примера возьмем только эту функцию.

Есть два инструмента (тс и flowType), предназначенные для выполнения одной и той же задачи, одним и тем же способом.

Тогда зачем вокруг этой фичи городить новый язык?

И один из них (тс) фактически строго лучше другого.

Чем? Примеры в студию. Очень интересно.

Да, можно использовать худший.

Чем ES7 хуже TS, при условии что бразуеры не умеют ES7 почти полностью, а TS полностью?

Зачем? Ведь «node, npm, либы» (то есть инфраструктура) - это как раз то, чем тс лучше flowType.

Чашечку разупорина данному оратору. Эта инфраструктура NodeJS и ES соответственно. Node не понимает на уровне VM (т.е. как язык) TS. Все, что есть - это транслятор, парсер и куча библиотек, которые сперли из мира JS.

Больше либ, лучше поддержка комьюнити, лучше поддержка иде, выше скорость запиливания новых фич.

Пруфы. ES сейчас релизится каждый год.

Наконец, тс просто значительно более зрел.

Мухаха. Год создания напомнить?

Раньше мы могли бы говорить еще, что у flowType

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

silver-bullet-bfg ★★ ()
Последнее исправление: silver-bullet-bfg (всего исправлений: 1)
Ответ на: комментарий от silver-bullet-bfg

Потому, что по сути TS - такой же набор плагинов для Babel. Ни более, но и не менее

И? Какая разница-то, что плагин для бабела, а что - нет?

Я за однородность инфраструктуры.

А чем инфраструктура с фт однороднее, чем с тс, если и то и то - просто наборы плагинов для бабела?

Что мне может дать использование TS по сравнению с FT?

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

Спрашивать надо иначе. Фт решает те же задачи, но как и любой новый инструмент - он хуже уже существующего по названным выше параметрам. И должен обладать какими-то особыми фичами, чтобы его имело смысл выбирать. Какими особыми фичами обладает фт, чтобы перейти на него с тс?

Чем ES7 хуже TS, при условии что бразуеры не умеют ES7 почти полностью, а TS полностью?

ts = es7 + типы. То есть, он хуже отсутствием типов.

Пруфы. ES сейчас релизится каждый год.

При чем тут es? мы говорим про тф. Какой смысл сравнивать ес и тс, если тс _строго содержит_ ес (и, с-но, все что там в нем релизится)?

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

Потому что тс - это и есть жс с типами. By design и по факту. С чего он должен еще чем-то отличаться?

anonymous ()
Ответ на: комментарий от rusich

Aurelia, на первый взгляд, (судя по документации) мне понравился больше, чем angular 2. Вот размер бандла я не мерил, он на es6 или typescript'е написан? Но последний Vue.js их всех заруливает, единственный view фреймворк, который сделан для людей.

menangen ★★★★★ ()
Ответ на: комментарий от menangen

По ходу дела, реально пора переходить на Vue.

th3m3 ★★★★★ ()
Ответ на: комментарий от menangen

я честно говоря хз, нормально поработать с UI фрэймворками не хвататает времени.
из рассказа товарища, парень который курирует разработку Аурелии до этого пригласили в команду по разработке 2го Ангуляра, у них было общее видение развития 2го Ангуляра и т.п.
через какое-то время он понял все идет куда-то не туда и ушел прихватив часть команды и начали пилить Аурелию

rusich ()
Ответ на: комментарий от rusich

Да гугл тупо забил на мелкий бизнес, они написали для себя и для майкрософт удобный им фреймворк. Для себя они писали. Не для нас.

menangen ★★★★★ ()

Angular - это модуль NodeJS?

Коллеги, подскажите При установке npm install Angular скачивается в папку node_modules, это означает что он - модуль NodeJS? Не понимаю связи. Вроде как это же отдельный движок Хотелось бы просто выбрать js/клиентский движок для построения веб-интерфейсов БЕЗ жесткой связки с серверной частью. Общение с сервером/источниками данных - исключительно через веб-сервисы (rest, soap) - wcf, например. А NodeJS - это же клиент+сервер?

sheich ()
Ответ на: Angular - это модуль NodeJS? от sheich

Re: Angular - это модуль NodeJS?

Коллеги, подскажите При установке npm install Angular скачивается в папку node_modules, это означает что он - модуль NodeJS?

Нет, это значит, что npm устанавливает пакеты в папку node_modules.

БЕЗ жесткой связки с серверной частью

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

anonymous ()
Ответ на: комментарий от silver-bullet-bfg

Я, когда не знал фреймворков, тестировал ui на разном. Angularjs 1.2 рвал всех на всем медленном и старом. 1.5 уже лагал. Все остальное простое и бесрлатное глючило неслабо.

Shadow ★★★★★ ()
Ответ на: Angular - это модуль NodeJS? от sheich

Используй bower, а не npm для установки дистрибутивов клиентских либ. Npm + angular используется для внутренних сборок всякими browserify, rollup и webpack.

menangen ★★★★★ ()
Ответ на: комментарий от menangen

vue.js

Надо запомнить и попробовать когда возьмусь за что-то новое на клиенте. Хотя лично у меня от ангуляра (1.x) остались вполне нормальные впечатления. Но вот периодически слышу от некоторых товарищей/коллег как там всё плохо и как оно тормозит. Причём похоже некоторые никогда его и не использовали. )

orm-i-auga ★★★★★ ()
Ответ на: комментарий от menangen

Зачем использовать bower, если есть npm?

anonymous ()
Ответ на: комментарий от menangen

У vue нет ui.bootstrap и ionic, например, отлично рабоьающих даже на android 2.3

Shadow ★★★★★ ()
Ответ на: комментарий от Shadow

У vue есть биндинги к twitter bootstrap, не официальные, естественно, т.ч. с этим нет проблем, под андрюшу не пишу, сказать про ионик ниче не могу.

menangen ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.