Maybe intent was good, but some advices are harmful. For example, 1 and 7. While in general it's not lie, but they can lead to thoughts "eat everything you want, just try to eat more "healthy" things, and "don't go to screenings at all".
Angular 2 exists in 3 forms: TypeScript, Dart and ES5. And a lot of ideas came to ng2 from AngularDart.
It's the question of preferences. Dart gives great tooling (IDE, debugging, testing) and more advantaged language, but universe of Dart is much smaller, so there are pros and cons, as always. There is no one ideal size of shoes.
My understanding is that Dart is being used directly, just not in any mainstream browsers. I believe Google Fiber uses Dart for their set-top boxes, but there is also use internally at the company (i.e. intranet).
There is a lot of good and even awesome things in ReactJS universe, except JSX. Thousands of developers took their lessons in PHP/Perl/Python about mixing logic and representation, and now in nightmares they will generate HTML from logic, especially by parts and in worst case - using conditional cases. Everybody who tried to change design of website, written using something like "if ($birthday) $html .= getBirthdayButton()", will understand me.
Maybe JS developers should go through it, through this circle of hell, to avoid it in future, so JSX is necessary evil.
//despite of that, I sincerely thankful for people behind React, for their new ideas and how they changed fields of JS frameworks and mobile apps. Big respect!
You might be confusing "logic" and "business logic" terms, I talk about "logic" exactly.
Any logic and conditional cases makes design very difficult to change, because you can't anymore just move one piece of HTML (tags) to another place, or replace all classes with ctrl+f - it becomes very complicated with logic used to build it.
I get the feeling that you're just arguing for the sake of arguing. You can't in one comment say that it's hard to move things around and then in the other comment say that of course it's not hard to move things around.
The distinction you're making between "HTML" and "facility for encapsulating generated HTML" seems pretty arbitrary.
I was making a simpler point, though.
That's all I was saying. The semantic argument between "components" and "HTML" is totally uninteresting to me. The important point, regarding ease of moving "bits of UI" around, is that React makes it astonishingly easy to do that. It's one of the selling points of React.
Hm.. I didn't say a word about separation of technologies. If you have one non-broken piece of HTML and related piece of JS to make it "live" - it's one thing. If you use JS/php/python/ruby/lua/whatever to generate HTML, composing it by small pieces into one (inside one component) - it's another thing and it's exactly what I'm talking about.
You are just throwing unrelated links around. Parent's point was that in this case, logic and representation are one and the same concern. What you're doing is similar to using SoC to defend having to split up class definitions into .h and .cpp files.
You are using your gut feeling, but that's not how React works at all.
JSX is not HTML, mixing logic/presentation is not a concern because you're not dividing your rendering between backend/frontend, and finally you don't even have to care about the final HTML representation of your component, it's just an implementation detail.
Finally, it's all declarative since you're never modifying a DOM tree - and declarative is a pre-requisite for good UI frameworks.
I use my years of experience, I don't need gut feeling for it.
I really don't talk about backend, absolutely. While we have "createElement", we will use it with conditional cases and as result we will have mess of NOT-BUSINESS-logic and HTML code.
It's not a generalization but absolutely truth about all people who don't use password managers. They use same password for multiple accounts or invent some "complex" rule to create passwords by url or title or something else. And second option is in light years away from secure way of storing passwords :)
They know only 1 part of the bridge, but without second part is not the bridge, but shameful biased grunt "oh oh, will we still make money on C++ or we need to learn something new to keep our income?". And question is answered before they company existed. They even dare enough to recommend others don't learn Rust in favor of C++ - so biased recommendation makes whole grunt even more pointless.
Don't get me wrong, I understand difference between constructive criticism and biased grunt of grumpy C++ programmer.