Pull to refresh
48
0
Евгений Кот @bunopus

Director of Development

Send message

Тут есть принципиальное различие: Tree shaking на уровне модулей это типа


// a.js
class A {
  someMethod() {
    //...
  }
}

class SomeVeryBigClass {
    //...
}

export {
  A, SomeVeryBigClass
}
--------------------------
// b.js
export class B {
    anotherMethod() {
       //...
    }
}
-------------------------
// c.js
import 'a.js'
let a = new A();

В случае "модульного" перетряхивания модуль b.js не будет подключен. Однако все классы из модуля a.js будут присутствовать, внезависимости от того, используются ли они или нет.


Что же Dart?


// a.dart
class A {
  someMethod() {
    //...
  }
}

class SomeVeryBigClass {
    //...
}

-------------------------
import 'a.dart'
main() {
    var a = new A()
}

В случае Dart перетряхивание уберёт не только класс SomeVeryBigClass, но и someMethod из класса A, так как он не используется.
Итого разница — Tree Shaking в Дарт более гранулярный, он может убирать всё, вплоть до методов и свойств класса.

Мы юзали Polymer (тогда ещё 0.5 версии). После выхода версии 1.0 использовать его стало невозможно. В целях «оптимизации» оттуда выкинули очень много всего. В итоге перешли на Angular,
Последнюю версию Polymer ещё не пробовали, но сильно сомневаюсь, что он побъёт Angular по богатству фичей, всё таки это скорее библиотека компонентов + шаблонизатор
Это назвается К — Консистентность. Команда AngularDart решила не перепрыгивать через версию, в отличие от TS команды
Старый — это третий. Кода было очень много, Ext перестал масштабироваться. Не знаю насчёт самых свежих версий, но тогда мы поняли, что при существующем положении дел увеличить проект в два раза не получится. Слишком система становится сложной и громоздкой
У Polymer Dart есть проблема — это надстройка над самим Polymer. А из этого следует то, что код остаёт по функционалу, там есть свои баги и пр. У Angular такого нет, так как из-за траснпиляции разработчики Ng2 сразу пишут как бы на Dart.
Мы тут на конференции рассказывали https://www.youtube.com/watch?v=TtLMHfvY2uM
Если вы купите Enterprise подписку...
Шутка, на самом деле вы можете взять триальную версию, и таки да, весь новый функционал на Ng2. Reports, Header, Forms etc
Если вкратце, то когда мы поняли, что старый ExtJs нас больше не устраивает, то было несколько «против» новой версии.
* Новый ExtJS давал еще больше готовых виджетов, которые мы как не использовали, так и не используем
* Давал MVVM с абсолютно убожеским и тормознутым биндингом
* Давал свой проприетарный шаблонизатор (верстку прямо в JS-указываешь)
* Старый мы к тому моменту уже перевели на soy, но переводить еще и пятый/шестой совсем не хотелось
Если честно — не могу назвать себя экспертом по Ember.js. По моему мнению, сейчас Ember уже слишком стар, и Angular его может уделать хотя бы за счёт того, что у него нет легаси и поддержки. Впрочем слишком раздувать как доклад, так и статью сравнениями со всем миром JS не хотелось бы. Но, тема интересная, если бы вы написали о том, почему не уступает — я бы с удовольствием почитал бы.
Тут ответ такой же, как и для Ember. Конкуренты скорее по хайпу, а не по полному функционалу. Мир фронтенда очень большой, инструментов — море. К сожалению, обычно так происходит, что когда разработчик встаёт перед выбором, на чём писать, он начинает гуглить, искать в твиттере, хабре. И, конечно тут же он натыкается на перечисленные фреймворки. Возможно vue круче, но, пока вокруг него нет хайпа — он будет уделом энтузиастов. А это обычно ведёт к потере интереса мейнтейнеров и угасанию библиотеки.

В большинстве своём писали сами. Из-за наших задач + многое уже написано было на Polymer. Есть интересный репозиторий https://github.com/angular/material2, который можно заюзать.

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity