3 ms·
AFAICT the upgrade path is still the same (0) and...it looked pretty painful when I first looked at moving from 1.x to 2. I maintain a sizable 1.x codebase and
by filoeleven 7y ago
AFAICT the upgrade path is still the same (0) and...it looked pretty painful when I first looked at moving from 1.x to 2.
I maintain a sizable 1.x codebase and am deciding what to move to, since 1.x is dead next year. I just don’t see a good reason to go to 2+. It’s a different framework. All of the UI libraries we built upon (ng-grid, angular-ui) are either gone or different enough that we will have to redo all of our code no matter what. If I have to switch frameworks anyway, I want to go with something simpler (no custom module nonsense, no annotations, no hierarchical dependency injectors, hell, no classes!) with a healthy ecosystem.
React with hooks, bootstrapped with CRA, is the clear winner for me. It’s just so much more straightforward to reason about, and way faster to build things with too. I made a toy app in Angular a year ago to check it out, and had a hell of a time even getting the simple data model working right. With React, day two had me already wiring up a dashboard with charted details that responded to a calendar widget I had customized to show QoS at a glance. I was looking at Vue too before I read up on react hooks, but once I saw functional components everywhere I was...erm...hooked. Sorry.
Now if only I can convince them to let me use ClojureScript...
(0) https://angular.io/guide/upgrade#using-a-module-loader https://angular.io/guide/upgrade#using-a-module-loader
- ErikAugust 7y agoAngularJS is dead next year, but really that doesn't stop you from using it indefinitely. Of course it can be fun to rewrite everything.
- filoeleven 7y agoGoogle declaring end of support is enough to make us have to move. Banks are kinda picky about security updates. We’ve had a bunch of long-standing state management bugs and performance issues too ($watches, $watches everywhere, nor any prop’s in sync) that we built a lot of cruft around trying to fix, mostly due to two-way binding and our weird use case. Some were unfixable due to the framework and others due to bad early decisions. But This Time!! It will definitely be fun to rewrite. The app is so much like a web-based dumb terminal that a view-layer library like React was probably always a better fit for us, had we known about it when we started the project. Plus the JS ecosystem is a lot nicer now: arg destructuring and VS Code’s intellisense thanks to es6 imports are both big productivity wins. Also, not having to maintain a gulpfile is its own blessing.
- dfsegoat 7y agoFWIW, A lot of AWS Console apps are on 1.5.x. TurboTaxes interface is still using it as well I believe.
- rubicon33 7y agoWhat is with this bazaar conviction that classes are bad?
- filoeleven 7y agoI caught the Clojure strain of the functional bug. OOP is the devil, and mutable state is his pitchfork. “this” was a mistake. The more I can compose with pure functions that operate on immutable data, the happier I am.
- e12e 7y agoObjects and messages good, classes and inheritance mostly bad. Except maybe for modelling/simulating concrete classes of objects (ie, as in Simula, the language). Proper multiple dispatch (a la common lisp CLOS) seems rare - I'm guessing java/c++ seemed like a sane trade-off for some type safety - but they probably should've stuck to self/smalltalk (for Java) or looked to standard ml/common lisp (c++). I still don't understand why Javascript got classes, rather than some paint on the prototype system.
- woodpanel 7y agoHaving ported some Angular SPAs from 1.x to 2++ I have to say: Looked more painful at the onset, was actually quite easy in the end. Having used React for some years now, I have to say: I wouldn't compare the two. React's atomic ecosystem is perfect if your stack of tools you embed doesn't grow too large. However as soon as you want the feature set Angular provides out of the box IMHO you're screwed.