kensign
His proposed strategy doesn't really makes sense and seems like misdirection and lip-service. You can't change the way people use Facebook, but you can forgo any pretense of privacy, which may be the only thing that can honestly and realistically be done.
:/
Otherwise I have to say this is the worst advice for any engineer building a commercial website. Maybe if someone went back in time 10 years, this might look like a solution, but there is a reason all of this is left behind. I've been a web developer for 20 years now and browser development has finally graduated to real software engineering.
The author has a laundry list of grievances based on their own experiences. It's clear that these are merely opinions though, and they can be taken at face value.
"Frameworks and complexity === insanely long cycle times"
This is simply not true and it's purely subjective. Any developer using Continuous Development can roll out changes to production in a matter of hours, if not a few days. Sophisticated apps need to be modular and engineered for a simple workflow, automated testing and a clear separation of concerns. There is no point to setting yourself up for defeat, and if anyone followed this advice, that's exactly what would happen.
There's a clear distinction between the FUD of naysayers compared to people with more sophisticated levels of development experience. I am not sure someone with this mindset could even get past a phone screen. egad.
Compare the differences and consider the trade offs with complexity vs simplicity. It's worth a consideration.
https://github.com/aurelia/web-components
remember too, the ES6 is transpiled. Also, I am done with the nerd war. If you have questions, use the gitter channel.
http://aurelia.io/hub.html#/doc/article/aurelia/framework/la...
1. There is no adherence to the living standard
2. Web components are meant for this exact purpose
3. The added complexity and burden on the browser runtime will only create headaches as the application begins to scale.
4. There is no clean separation of concerns.
5. Writing HTML in js files is an anti-pattern.
6. The browser runtime, CSS and DOM obviate what React is trying to accomplish, especially with web components being added to the living standard.
7. Browser networking, workers and server-side events are much more powerful ways to scale complexity.
8. CSS3 is not hard to understand.
9. There is no way to bypass the browser's rendering engine.
10. The business scenarios for our software product did not align with the use of React after a very thorough ATAM.
11. Much better technologies exist that do not cross-cut concerns the way React does. Aurelia is what I ultimately recommended because it did not violate points 1-10.
React isn't pragmatic and if anything, the lack of examination of its internals distinctly reflects the zealotry of arguments that oppose reasonable points. Every dissenting argument I have ever encountered, especially the ones on this thread are rationalizations and opinions. I haven't seen one technical advantage that solid software engineering, the browser API, and HTTP do not already provide.
Discussions like this are meant to become arguments based on facts, zealous or not. As always, fact trumps opinion.
What you're misunderstanding is the basic foundations of solid software principles. Popularity does not equal tried and true. That's not logical. I understand React, or else how could I possibly nail it to the wall? You assume I use some sort of JQuery paradigm to develop UI applications, that a pretty presumptive claim on your part and it is absolutely not true.
>Working directly with the DOM means mutating it in-line and your state and you have to become a manual book keeper to make sure your App state and DOM mutations stay in-sync. It's slower, more tedious to maintain, harder to debug and visualize your App's state, etc. There's a reason why the world and all major SPA fx's has moved on from jQuery, you're clinging on to the past JS development model.
No, this is not what it means, this is your opinion. What do you think you're doing when you manage the state of a React component? If you cannot debug your app and understand its and runtime state, you need to look at your complexity bottlenecks. The browser runtime is an event-driven framework. Custom events avoid implicit calls and runtime race conditions.
What I am clinging to is the living standard and a clean separation of concerns in software development. I am standing on the shoulders of giants. I cannot help what choices developers make and what shortcuts they make to understand the browser's inherent technology. I've actually built enterprise SPAs and I have been doing it for the last 16 years, since the DOM was actually introduced.
Decompose React yourself. I've laid out my argument. It's not a rant, it's reality. React may have attractive advantages, but I don't think its adoptees understand the seriousness of the trade-offs they're making.
We've done amazing things with Aurelia. More and more, it's beginning to feel like an extension of HTTP wired directly into the UI. I'd like to think that it will become The Next Big Thing, but it will probably stay relegated to a lesser seen community of devs like those of the Django community. Architects, engineers and developers will love it while many may not realize just how beneficial an agnostic system really is.