Yet what I see around me is enterprise customers on our projects adopting Angular as the official internal Framework, as React is seem as too advanced.
Yet what I see around me is enterprise customers on our projects adopting Angular as the official internal Framework, as React is seem as too advanced.
I think a lot is due to the unfortunate naming, people still confuse AngularJS (v1) with Angular (v2-v7). I totally believe a lot of folks will say "Used AngularJS (v1) won't use it again".
I had a friend (F) interview for a FE developer position. He was more of a React adopter and he spoke with the architect (A) of the team. The company was heavily invested into MS technologies (think a lot of WCF Services)
F: So, what technology stack are you moving into? A: We wanted to retain as much of our backend WCF stuff, while we move our front-end into Angular. F: So has there been a project that was started? A: Yes, we have started to move 8 of our enterprise apps to Angular. F: Any challenges so far? A: Well, the code seems to become a little too complicated for our developers to work on. We'd like to get it to a cleaner and more maintainable state. F: Have you considered other frameworks? A: Sadly, no. Company has invested more than 2 years in re-designing the app. And besides, Angular is backed by Google, hence, we seem to think that it will be the right tool for the business. We've invested a lot of time as well with it. F: But you are saying that productivity overall is low because the complexities of your Angular code base is taking a toll on your developers? A: Yes, in some sort of ways. There are Angular constructs which just does not make sense. And nipping the warnings and errors in the console is just a task that's too heavy and tedious. Although we like the fact that Angular can play nicely with our backend stuff with very minimal changes required on that side.
Practically, the architect was saying that the enterprise adopted Angular due to its immense popularity way back then and being heralded as an Enterprise framework.
Although my friend was offered a very good salary (by Canadian standards), he politely declined the offer, after inspection of some of the code base and the challenges that he would be facing.
Once enterprise chooses a tool, that tends to stay the tool for that project, then all of the team is competent in the tool after a couple of years working with it. There's a critical time-frame when new competing tools win a geographical majority [2].
[0] Link to facebook announcing Reach license changes: https://code.fb.com/web/relicensing-react-jest-flow-and-immu...
[1] Link to short article on MIT-Patents license in reack. Takeaway: This has never been litigated before https://hackernoon.com/4-lessons-from-the-react-patent-licen...
[2] Geographical majority http://www.businessdictionary.com/definition/geographic-mono... replace 'place' with 'technology tool'
(Which is often what you would expect of enterprise development: go with the solution "everybody else uses", whether or not everybody else enjoys using it. ;)
But it's not that hard to figure out based on comments, upvotes, stories on the front page, etc.
Consider it an educated guess from a relatively active HN member who's been here for 5 years :)
It feels like doing Haskell with JavaScript.
function MyComponent(props) { return <p>Hello {props.name}</p> }
import React from 'react';
export default ({name}) => <p>Hello {name}</p>;
So much nicer than Angular.It would be great if that was true. The fact is that you can not copy Haskell in any mainstream language (Lisp gets the closest), and that hurts.
React is easy the same way jQuery is. Easy, unstructured, foggy, too much permissive tool.
Far too easy to end-up with spaghetti-code.
I prefer not using it, Angular is far more organized.
// MyHello.jsx
import React from 'react';
export default ({name}) => <p>Hello {name}</p>;
Now do the same in Angular.But that is more of an issue for projects maintained for a long time. If you want to crank out small apps fast, your "example" is relevant, and React definitely is the better option.
But hey, most apps are simple, so no need for all the above. I would say Ng/Ember are more specialized / niche.