ФорумПрограммированиеJavaScriptAngularJS → Кто пользовался Angular Light? Выбираю между ним, React.js, Mithril

Кто пользовался Angular Light? Выбираю между ним, React.js, Mithril

27%
Абырвалг, Ivan., artoodetoo
36%
adw0rd, AlexB, zzox, Sinkler
27%
Trej Gun, Br00k, kostyl
0%
9%
vasa_c
0%
0%

Пожалуйста, авторизуйтесь, чтобы проголосовать!
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 20 ноября 2015 г. 18:35, спустя 17 минут 21 секунду

    Присоединяюсь, клевая штука. Уже пошел у меня в продакшен, ну я рассказывал ...

  • Oleg

    Сообщения: 11 Репутация: N Группа: Адекваты

    Spritz 25 декабря 2015 г. 18:07, спустя 34 дня 23 часа 31 минуту

    Angular Light стал ещё быстрее, тест "список 10к" тут: JTT [lega911.github.io]
    Ещё есть такой тест: dbmon [mathieuancelin.github.io]
    И тест скорости todo-приложения: DoYouEvenBench [nin-jin.github.io]

    В последнем тесте AL в 2 раза быстрее чем Angularjs 1, и Mithril

    "Angular Light: Example": 407.1650000000009,
    "AngularJS: Example": 868.9300000000076,
    "AngularJS: AngularJS Optimized": 818.4749999999985,
    "AngularJS: TypeScript & AngularJS": 942.830000000009,
    "$jin2_view: Example": 598.4300000000003,
    "Mithril: Architecture Example": 849.4199999999983,
    "React: Example": 1226.619999999988,
    "React: React + Backbone.js": 3274.5050000000047,
    "React: Scala.js + React": 2424.179999999993,
    "React: TypeScript + React": 1082.600000000013,
    "React: React + Alt": 1248.7699999999968
    

    Хотя скорость - это не главная "задача" AL, простота разработки важнее.

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 26 декабря 2015 г. 0:04, спустя 5 часов 57 минут 26 секунд

    Не подскажите ребята для каких характеристик проекта какого уровня и какие фреймворки лучше выбрать. Типа, например, если то-то то-то, то достаточно будет jQuery и тд. ?

  • Oleg

    Сообщения: 11 Репутация: N Группа: Адекваты

    Spritz 26 декабря 2015 г. 11:26, спустя 11 часов 21 минуту 55 секунд

    @kostyl, приложения с двумя кнопками уже удобней делать с Angular Light, а вообще зачем выбирать используйте jQuery и Angular Light вместе (брать преимущества обоих), см. статью: Angular Light для jQuery/JS разработчиков [habrahabr.ru]

  • Oleg

    Сообщения: 11 Репутация: N Группа: Адекваты

    Spritz 26 декабря 2015 г. 11:40, спустя 13 минут 41 секунду

    Если у вас задача где много зависимостей друг от друга, типа excel - таблица, где одна ячейка зависит от другой, тогда по хорошему нужно взять FRP библиотеку и прикрутить к фреймворку.
    Если вам кажется что React (react-подобный) подход проще в разработке, то можете его попробовать, только из-за скорости или серверного рендеринга его брать нет смысла.
    А в основном большинство фреймворков конкурируют - "любые задачи можно сделать на любом фреймворке", там уже выбираете по факторам: простота использования, скорость работы, вес файлов, способ отслеживания изменений, инструментарий, популярность и т.п.

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 26 декабря 2015 г. 11:42, спустя 2 минуты 10 секунд

    1 runs average:
    {
    "Angular Light: Example": 199.29999999999563,
    "AngularJS: Example": 498.67000000000553,
    "AngularJS: AngularJS Optimized": 483.3349999999955,
    "AngularJS: TypeScript & AngularJS": 534.75,
    "Aria Templates: Example": 712.1949999999961,
    "Backbone.js: Example": 365.6850000000013,
    "Backbone.js: Enyo & Backbone.js": 14428.01999999999,
    "Backbone.js: TypeScript & Backbone.js": 628.0699999999997,
    "CanJS: Example": 4951.855000000003,
    "CanJS: Require.js & CanJS": 4944.705000000009,
    "Chaplin: Example": 299.320000000007,
    "ComponentJS: Example": 4681.684999999998,
    "Dijon: Example": 1349.7149999999965,
    "Dojo: Example": 849.035000000018,
    "DUEL: Example": 2146.3899999999994,
    "Ember.js: Example": 1194.339999999982,
    "Enyo: Example": 14952.13500000001,
    "JavaScript: Vanilla JavaScript Example": 335.24499999999534,
    "js_of_ocaml: Example": 2796.665000000008,
    "jQuery: Example": 1431.020000000004,
    "$jin2_view: Example": 301.0200000000041,
    "Mithril: Architecture Example": 426.3300000000163,
    "Olives.js: Example": 478.1450000000041,
    "Polymer: Example": 443.36000000001513,
    "PureMVC: Example": 1418.2799999999988,
    "rAppid.js: Example": 662.2050000000017,
    "React: Example": 864.9050000000134,
    "React: React + Backbone.js": 2977.0150000000285,
    "React: Scala.js + React": 1906.8750000000146,
    "React: TypeScript + React": 765.6749999999884,
    "React: React + Alt": 907.695000000007,
    "scalajs-react: Example": 2018.6700000000128,
    "scalajs-react: React": 847.3849999999802,
    "scalajs-react: React & Backbone.js": 2811.7150000000547,
    "Spine.js: Example": 4903.514999999985,
    "Thorax: Thorax & Lumbar": 99.71999999997206,
    "TypeScript: TypeScript & AngularJS": 498.14500000004773,
    "TypeScript: TypeScript & Backbone.js": 732.9849999999569,
    "TypeScript: TypeScript & React": 847.5699999999488,
    "Vue.js: Example": 243.25500000003376,
    "WebRx: Example": 478.33499999999185
    }

    не всё полезно, что в swap полезло
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 26 декабря 2015 г. 23:34, спустя 11 часов 52 минуты 22 секунды

    @Oleg, спасибо

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 28 декабря 2015 г. 22:50, спустя 1 день 23 часа 15 минут

    А кто то юзал ReactJS? У меня пару вопросов:
    - что не нравится?
    - что использовать с ним лучше для Ajax и Store?

  • Oleg

    Сообщения: 11 Репутация: N Группа: Адекваты

    Spritz 29 декабря 2015 г. 0:05, спустя 1 час 15 минут 22 секунды

    @kostyl, У реакта идея хорошая, но с ним тоже не все гладко, тоже куча проблем и сложностей, судя по SO и тостеру.
    Если вы используете jQuery, а он почти в каждом серьезном веб проекте, то у вас серверного рендеринга не будет.
    Он медленней чем Ангуляр, судя по тестам.

    Но больше всего мне интересно, как реакт разработчики работают с дизайнерами? С ангуляром - понятно, дизайнер дал мне пачку html файлов, я вставил "метки" где нужно - все заработало. А с реактом что? мне нужно все дербанить на куски, конвертировать в jsx, впихивать логику/js и т.п. Что потом делать когда дизайнер поправит или доработает дизайн? Наверно реакт разработчик должен быть и верстальщиком в одном лице.

    Кстати у реакта уже появилось ~20 конкурентов (vdom реализаций).

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2015 г. 12:43, спустя 12 часов 38 минут 1 секунду

    то у вас серверного рендеринга не будет

    @Oleg, а можешь пояснить почему, а то я не шарю?

    Спустя 77 сек.

    @CTAPbIu_MABP можешь рассказать почему ты проголосовал за реакт плиз?

  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 29 декабря 2015 г. 13:27, спустя 43 минуты 42 секунды

    дарова

    мне не очень нравиться постановка вопроса в голосовании
    я бы не ставил angular и react рядом с остальными
    то есть я бы поставил их в ряд с extjs
    a knockout я бы сравнивал с ember
    но это сказки

    реальный вопрос: кто сильнее кит или слон.
    и ответ на него зависит от среды на которой ты кодишь

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

    
    .service 'modalService', [
      '$modal'
      ($modal) ->
        modalDefaults = 
          backdrop: true
          keyboard: true
          modalFade: true
          templateUrl: 'templates/modal.html'
        modalOptions = 
          closeButtonText: 'Close'
          actionButtonText: 'OK'
          headerText: 'Proceed?'
          bodyText: 'Perform this action?'
    
        @showModal = (customModalDefaults, customModalOptions) ->
          if !customModalDefaults
            customModalDefaults = {}
          customModalDefaults.backdrop = 'static'
          @show customModalDefaults, customModalOptions
    
        @show = (customModalDefaults, customModalOptions) ->
          #Create temp objects to work with since we're in a singleton service
          tempModalDefaults = {}
          tempModalOptions = {}
          #Map angular-ui modal custom defaults to modal defaults defined in service
          angular.extend tempModalDefaults, modalDefaults, customModalDefaults
          #Map modal.html $scope custom properties to defaults defined in service
          angular.extend tempModalOptions, modalOptions, customModalOptions
          if !tempModalDefaults.controller
    
            tempModalDefaults.controller = ($scope, $modalInstance) ->
              $scope.modalOptions = tempModalOptions
    
              $scope.modalOptions.ok = (result) ->
                $modalInstance.close 'ok'
                return
    
              $scope.modalOptions.close = (result) ->
                $modalInstance.close 'cancel'
                return
    
              return
    
          $modal.open(tempModalDefaults).result
    
        return
    ]
    

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

    и еще один факт в копилку: ангуляровское добро цепляется за готовый html
    и надо следить, что бы они друг другу соответствовали

    теперь немного про реакт
    сам по себе реакт это просто описания жизненного цикла компонентов типа как backbone
    фреймворком он становиться после спаивания с react-route (history), bootstrap (react-route-bootstrap, react-bootstrap) flux и прочими либами
    и вроде как модульность это хорошо, но, сука, они там со своими модулями заебали - это с этим работает, а с другим нет и в версиях полный бардак.

    большое преимущество дает поддержка es6/7 чувствуешь себя на пике горы,
    он восторга спасают тормоза бабеля, которым это все собирается
    плюс eslint имеет модуль для работы c jsx - тоже удобно для чистоты кода
    flow, правда, прикрутить так и не удалось - не хватило терпения

    
    "use strict";
    
    import React from "react";
    
    export default class DeleteDialog extends React.Component {
        render() {
            return (
                <div className="modal fade" id="confirmDeletionModal" tabIndex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                    <div className="modal-dialog">
                        <div className="modal-content">
                            <div className="modal-header">
                                <button type="button" className="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                                <h4 className="modal-title" id="myModalLabel">Confirm delete</h4>
                            </div>
                            <div className="modal-body">
                                <p>Are you sure?</p>
                            </div>
                            <div className="modal-footer">
                                <button type="button" data-dismiss="modal" id="buttonConfirmCancel" className="btn btn-primary">Cancel</button>
                                <button type="button" data-dismiss="modal" id="buttonConfirmDelete" className="btn btn-danger">Delete</button>
                            </div>
                        </div>
                    </div>
                </div>
            );
        }
    }
    

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

    тесты можно писать на чем угодно, мои на mocha

    там еще говорили про серверный рендеринг, удобно, чо!
    но если бы увидел jxs который бросает sql запросы вырвал бы руки

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2015 г. 16:36, спустя 3 часа 8 минут 34 секунды

    @CTAPbIu_MABP, большое спасибо

  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 29 декабря 2015 г. 18:04, спустя 1 час 28 минут 23 секунды

    Если вы используете jQuery, а он почти в каждом серьезном веб проекте, то у вас серверного рендеринга не будет.

    @Oleg, это кстати неправда
    реакт вполне себе жизнеспособен без жуквери в отличии от ангуляра
    то есть конечно жуквери делает жизнь намного проще
    но react-bootstrap написан без жуквери и не уступает оригиналу по функциональности

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2015 г. 18:58, спустя 54 минуты 22 секунды

    но react-bootstrap написан без жуквери и не уступает оригиналу по функциональности

    @CTAPbIu_MABP, так а Ajax использовать с помощью чего?

  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

Пожалуйста, авторизуйтесь, чтобы написать комментарий!