Live data from Hacker News

Opinionated Comparison of React, Angular2, and Aurelia

github.com

101–110 of 169 posts

Re: Opinionated Comparison of React, Angular2, and Aurelia

#101
post #76

Earlier quoted context omitted.

Ah, so jQuery spaghetti has now been replaced by React messes. I can also contribute that I've seen some Angular abominations and - a year or two back - some baleful Backbone projects. It's almost like whatever the framework or the library you give developers to use, regardless of its quality or scope, they're capable of making a mess with it! Hard to imagine, I know.

Except Vue projects seem to be succeeding. This is good for clients, but bad for freelancers getting paid lots to clean up messes. The good components, and the docs are the biggest reasons. But also it's a very well thought through thing based on web specs, using html technology. People can get useful work done almost right away, and what they made is self contained by default, limiting their damage. It also works fo…

What component library do you recommend for Vue?

Re: Opinionated Comparison of React, Angular2, and Aurelia

#102
post #30

I'm working on my first Angular2 app (inside Ionic 2) and have not been overly impressed. Most (all) of these will be first-project-pain but I'll list them anyway: * The massive coupling in app.module.ts and app.component.ts * Coming as a backend dev, the coupling of services to the view layer * Terminology of service/provider, and the general standard of documentation (3rd parties are far better than the official do…

I have a feeling that the Angular 2 docs are still a work in progress. For a long time, for example, the testing docs were still unfinished, even after the release.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#103
post #98
post #85

Earlier quoted context omitted.

It really isn't a template language as the term is commonly used. If you feel so strongly about the weird syntax you can write equivalent code in javascript syntax instead. return React.createElement( button, { className: "square", onClick: () => this.setState({value: 'X'}) }, this.state.value ); If you think your code is written in a template language, then the code I just wrote must also be written in a template la…

That looks like JavaScript. Yes, of course you can use that - but which react projects do it that way? It seems this is mostly pulled out when people go... ewwwwwwww, stinky... Most use the html+javascript language which is compiled and then spits out JavaScript and html. This is pretty much identical to PHP - which is a preprocessor template language. Anyway, facebook says it reminds me of a template language, so I'…

> Most use the html+javascript language which is compiled and then spits out JavaScript and html. This is pretty much identical to PHP - which is a preprocessor template language.

No, it spits out javascript (the exact same javascript that I wrote), which returns shadow DOM trees (which are javascript objects), which the renderer looks at to modify the actual DOM.

Also not sure what you mean by "looks like" javascript. It's clearly javascript - just a function call with 4 arguments.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#104
post #56

> There are a few more frameworks I would have loved to try, including Polymer and Vue.js. There just wasn't enough time to do a deep dive with all of them. I hope he gives Vuejs a try. As a javascript beginner, who tried Angular, Angular2, A bit of React and VueJS, I just loved the flexibility and approach of VueJS. I was instantly productive thanks to the amazing documentation and vue-cli that just worked out of th…

Agreed. I've used Angular 2, React+Redux, and now Vuejs on different projects (and on personal projects, stuff like om, elm, etc). Vuejs feels like they cheated somehow. For people in Redux-land: they took the reactivity of MobX and gave it Redux' level of debuggability. One important way, I think, is that Vuex formalizes the 'actions-dispatching-actions' use case of Redux middlewares (which redux says 'is not a part…

For our team React + Redux + Redux Saga + TypeScript has been a great way to develop our complex SPAs. We do use MobX selectively (dynamic forms), but the big benefits of the combination is the ability for our team to work productively without stomping on each other. Big factors are the explicit layout for domain models in the store, clear points for mutation, testable orchestrations via sagas, JSON schema validation and type generation.

The downside is the ceremony around it all but everything is so predictable and reliable it's a huge relief. Velocity is now good. We didn't choose this combination first off (via GraphQL, MobX, thunks), but the team decided that this combination was the best way for us to solve the issues we had encounter in the past.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#105
"Some of us dynamically generate this for various reasons. You can just copy the important script tags into your html but it still seems weird and invasive."

You can use the ng eject command to add the webpack configuration to your project root and it'll add and print a set of npm commands too.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#106
post #91
post #64

Earlier quoted context omitted.

> React integrates really well with flow[1] (which is not surprising because they're both developed at Facebook) It can integrate just as well with TypeScript. > flow's typesystem is more powerful (OCaml inspired) It lacks access control for class properties/methods, I wouldn't call that powerful. https://flow.org/en/docs/types/classes/

> It lacks access control for class properties/methods, I wouldn't call that powerful. You mean `private` and such ? Well JavaScript don't support taht either yet, and flow is a type-system for JavaScript, it's not a new language on its own. About the «powerful» word: Flow has had an algebraic data type (ADT) from the beginning, the kind of type system you'd find in functional programming languages, whereas TypeScrip…

Typescript has had Discriminated Unions as long as I can remember (pre 1.0). Why do you think they've been hacked in?

Re: Opinionated Comparison of React, Angular2, and Aurelia

#107
post #85
post #75

Earlier quoted context omitted.

It's not JavaScript, and it mixes in almost-html... but it's not a template language? Wrong. It's a template language, even if Facebook tells you otherwise.

It really isn't a template language as the term is commonly used. If you feel so strongly about the weird syntax you can write equivalent code in javascript syntax instead. return React.createElement( button, { className: "square", onClick: () => this.setState({value: 'X'}) }, this.state.value ); If you think your code is written in a template language, then the code I just wrote must also be written in a template la…

That's not a good thing.

I want to write this, and have it actually be HTML:

    
        
        
    
I like HTML.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#108
post #33

Earlier quoted context omitted.

> But you probably mean: the comparison excluded some crucial details. Exactly. You have to compare these kind of frameworks/libraries in "real world" situations and not just build two subpages and create some simple components to form an opinion. Real world single page applications need much more than just the view layer and a router.

Please please go read the article before making this type of statement.

Please don't imply that others haven't read the article.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#109
post #60

I always hear Angular 2 ppl talk about how awesome it is, because of TypeScript and RxJS, as if they're the main good things about it. If you really like these two things, try CycleJS. It's basically "Angular 2 the good parts"

Personally I don't see any appeal in either Typescript or RxJS.

Re: Opinionated Comparison of React, Angular2, and Aurelia

#110
post #97
post #87

Earlier quoted context omitted.

Partially, you're right. Some logic happen in reducers, but not all, because they must be pure. For example, you can't call new Date() in a reducer, because it's not pure. Imagine you have a TodoList with Items that have: a priority and a createdDate. TodoList is always sorted by 'priority, created DESC'. There's also an email service that gives you a high-level overview of the TodoList like so: High Prio (3 items) M…

The common solution seems to be using redux-thunk to shoehorn all of this business logic into the action creators. I think that's an absolutely terrible idea. IMO redux-thunk muddies up the terms "dispatch" and "action creator" and essentially creates a huge noob trap where new programmers don't even know what an action creator is anymore and they use the wrong terminology for everything. Having said that, I think th…

Thanks for the input. This reflects what my problem is as a beginner with all this stuff: Where do I actually put everything? There's no universal answer of course, but this is why I (and certainly many others) feel intimidated by the JS ecosystem as a whole.
Post reply on HN