Traubenfuchs on React is winning by default and slowing innovation 3 weeks ago link | |
Why do we need innovation? What are people doing nowadays with react and next.js version 100 that was too hard or impossible with JSF, jQuery, Angular 1? |
|
nrawe on React is winning by default and slowing innovation 3 weeks ago link parent | |
I think you hit the nail on the head: React is a good fit for certain solutions (like interactivity rich web applications), while not a good fit for others (like adding minor interactivity into a form). There are trade offs to React vs Vue vs Angular vs Vanilla and which is best is contextual to the problem you are solving, rather than a more moralistic "X is THE winner" stance. |
|
ksimukka on React is winning by default and slowing innovation 3 weeks ago link | |
The cycle repeats? I’ve enjoyed the innovation of the progressive web from jQuery to Angular, but React burnt me out. I learned the hard way that investing too much time and innovation into a JavaScript framework is a net loss. And it was always painful when the next person rewrites it into the next “thing”. |
|
spanishgum on React is winning by default and slowing innovation 3 weeks ago link parent | |
What metric would you use to define the leading frontend framework, and what is it? I'm familiar enough with Angular, React, Flutter, Vue, and Svelte as big names in the ecosystem, but have really only done scrappy development with React and not much with the others. Google trends seems to show React is still a leader [1], and React has more than double the amount of Github stars than any of the others I've mentioned except Flutter, by which it still leads a healthy margin. - [1] https://trends.google.com/trends/explore?cat=32&date=today%2... |
|
rmunn on React is winning by default and slowing innovation 3 weeks ago link parent | |
Upvoted despite your final sentence being incorrect. :-) You're absolutely right that React is miles better than Angular, but Svelte and Vue (which feel very similar to each other, I just switched from one project written in Svelte to a different project written in Vue and a lot of my knowledge is carrying over) are quite a lot easier than React. When I write in React I have to think about the hooks and when I'm initializing them; when I write in Svelte or Vue the $state/ref() systems just work and I don't have to think about them. I can even initialize a $state inside an if block if I need to; I admit I'm no React expert, so I should ask you. If you needed to create a piece of state inside an if block in React, how would you do it? Is the only answer "Move the hook call outside the if block, and just don't use it if the if block doesn't run"? |
|
Quitschquat on React is winning by default and slowing innovation 3 weeks ago link | |
Our front end team doesn’t settle for ONE framework - they have several, all in the same application’s code base. There’s React, AngularJS, Angular, Vue (I think they started on that??) and even a bit of Jquery. Is it an SPA? Well it’s an SPA per framework per page! No one has the patience to port all the old code, and no one has any leadership to guide them. They’re just adding in flavor of the month and making it work somehow (kinda, well depends on who you talk to) |
|
WuxiFingerHold on React is winning by default and slowing innovation 3 weeks ago link parent | |
No OP, but I've also used Angular, React, Vue, Solid and Svelte in real world projects and my default choice is Vue, because it's on par with Solid and Svelte (and with Vue Vapor those three are basically the same) but with the larger ecosystem (vuerouter, vueuse, nuxt, nuxt-ui, primevue, nuxt-content, ...). I must also say that React was by far the most unpleasant and unproductive to use. |
|
nosefurhairdo on React is winning by default and slowing innovation 3 weeks ago link parent | |
It's hard to build non-trivial web UI with any technology—React is just what's familiar. If Angular had won (god forbid) we'd be seeing all the same articles written about how bad Angular is. |
|
mythrwy on React is winning by default and slowing innovation 3 weeks ago link parent | |
I did switch over to Vue. Well not technically switch, I never learned React properly because I didn't like it when it first came out and by the time I gave it a second look there were already a gazillion React devs so I just stuck with Vue. Vue just seems much more intuitive and sane to me. Sane is relative for front end frameworks of course. Don't get me started on Angular I got PTSD and couldn't code for a couple of months from a large Angular project with an offshore team. I do get the benefit of using these framework for teams, and they are nifty once you get what is happening, but I still scratch my head when I see all the steps and files to do simple things I used to bang out in a few dozen lines of jQuery. |
|
spartanatreyu on React is winning by default and slowing innovation 3 weeks ago link parent | |
Angular is used a lot in enterprise apps/services when they need a low risk one-way to do things (e.g. Apple's App Store developer portal). React is used in enterprise when teams need to move fast and break things (e.g. Microsoft Edge's UI after switching from Trident/Spartan/EdgeHTML to Chromium) and tend to be replaced with something else when dev teams / managers realise that they need to rebuild it anyway just to keep it maintained and/or gain more performance. (e.g. Edge "WebUI 2.0" moving their browser UI from react to web components) Vue is used a lot in Asian enterprise markets. |
|
ern on React is winning by default and slowing innovation 3 weeks ago link parent | |
Angular was bigger than react until 2018/19-ish in the enterprisey places I worked at. |
|
apsurd on React is winning by default and slowing innovation 3 weeks ago link parent | |
it's not about html purity it's the opposite. Why pretend we're using HTML when it's not? so with react it becomes a js flavor, jsx, which some people hate but it's very clear that it's a made up language IN real javascript. my issue with angular is it's neither real html nor any programming language. its made up pseudo-programming language for no other reason than it fools people into thinking "it's just HTML". that's my gripe. |
|
spankalee on React is winning by default and slowing innovation 3 weeks ago link parent | |
> the fact that you can only pass strings as attributes This isn't true at all though. It's a lie started in the early days by React engineers that just won't die, unfortunately. Web components are objects and they can have properties and accessors like any object. The vast majority of declarative template systems like React, Lit, Vue, Angular, Svelte, Solid, etc., will declaratively set properties - which can carry any type of JavaScript value, including complex objects and function - on web components which can then be used to update the component's DOM. |
|
rickcarlino on React is winning by default and slowing innovation 3 weeks ago link | |
There are certainly good reasons to be concerned about a front end monoculture, and what follows is a curious observation rather than an attempt to discount the points being made here. Ten years ago, we had the opposite of a monoculture. We had new frameworks hitting the front pages of HN every week. We had the shitshow that was Angular 1.x -> 2.0. We had people inventing terms like JavaScript fatigue to express the pain of being a frontend dev at the time. The dust has finally settled and React has undeniably won. I am still kind of groggy from the whole thing and am going to avoid learning web components until it hurts my career to avoid it. I am not singing the praises of React (I don’t like hooks and my opinions really don’t matter), but I am at least happy that it is not 2015 any more and I can focus on building. It is interesting to me that enough time has passed and the sentiment is slowly changing. |
|
sfn42 on React is winning by default and slowing innovation 3 weeks ago link parent | |
React is totally fine for solving simple problems. I'd classify pretty much all frontend web development I do as simple. It's pretty much just boring internal websites, I definitely don't need react for them. Could have made the same thing with any other frontend framework, could have made it server-side rendered. React is totally fine for that. The backend is generally more exciting than the frontend. React is totally fine. The main problem I see is that most other developers are really ass at their jobs and just overcomplicate everything. I've seen very simple apps have a super complex React codebase, and due to the complexity they're always full of bugs. It's much more rare that I see an elegantly simple React app, or any other app for that matter. Everyone just always overcomplicates everything. Using React doesn't in any way require you to make it complex. You can make React apps dead simple. And if you are comfortable working with react you'll already know all the solutions to all the problems which makes your job extremely easy. You can breeze through and make the entire simple app in a few days if you know what you're doing. Or you can pick up some new fancy tool, hey let's try Svelte. And now instead of a few days we're gonna spend a few weeks and end up with a codebase that reflects our Svelte experience. And hey look it's time to onboard a new team member - hey guy, we have these three apps - this one's made with Angular because one dimwit wanted to learn that, here's a Svelte app we made last year and lastly here's a HTMX app we made when that was hot. Good luck learning 3 new technologies you'll probably never use again! |
|
lbreakjai on React is winning by default and slowing innovation 3 weeks ago link parent | |
React's benefit was absolutely technical. Its component model and one-way data binding was so much simpler to reason about and elegant than Angular. So much so that they ended up copying it in Aungular 1.6 and Angular 2.x. One of the biggest criticisms at the time (And perhaps still now) was that it wasn't opinionated at all. It didn't make assumptions as to how to do routing, or to fetch data, or to handle state. The community eventually converged towards a handful of solutions, like redux, but it was easy for each project to have its own combination of flavours and patterns. Angular was an all-batteries-included MVC framework, with DI, testing framework, and one true way to do things. The reason why it's harder to introduce very low quality code in React is because React is just functions, returning JSX, executing when the function parameters change. On the other hand, angular had comically large footguns due to its very high complexity. Have a look at the legacy documentation, the page about "scopes" by itself is longer and introduces more concepts than the entire "Thinking in react" page. |
|
apsurd on React is winning by default and slowing innovation 3 weeks ago link parent | |
I think you've nailed it. It does come down to user preference. React is a whole new way of thinking. Back in the days of jQuery it was very painful to stitch together web experience across HTML+CSS+JS. jquery provided much needed DX around utilities to navigate across these pieces. But it was still way too easy to treat HTML like your database and model user-state across a Frankenstein of server, json, html, and javascript. React was a paradigm shift. "Screw it, everything is javascript." The web depends on js runtime, we know we're going to need it, and it's a complete programming runtime. So it makes the best future-forward sense to use the full extent of the runtime environment. From DX pov this was spectacular to speed up prototyping. And you can finally truly model state purely from data. What followed was a huge a mess (redux), but I always say, what do we expect? The web is a mess, and it's great because it's useful. Humans are a mess! --- VUE: similar to angular I just don't align with "super-powered html attributes". It just doesn't make sense as a mental model. Because it's _not_ HTML. The more powerful the framework gets the more we reinvent a pseudo-programming language _through_ HTML. Angular was full-stop a no-go when I first saw it's for-loops in HTML. |
|
ForHackernews on React is winning by default and slowing innovation 3 weeks ago link parent | |
Angular is so much nicer and more batteries-included than React. React somehow manages to be massively yet incomplete: add a router, add state management, add react-hook-form... |
|
giveita on React is winning by default and slowing innovation 3 weeks ago link parent | |
Maybe us backenders help. If I need to do front end I learn as little as possible. React does the job. It could have been Angular that ended up being in the boring throne, and I would have said just use Angular. Just use what the world uses! |
|
fuzzy2 on React is winning by default and slowing innovation 3 weeks ago link | |
Is it winning? Of course, everyone has a different perspective on the software industry. From my (super limited!) view, Angular is winning. And for the first time in almost 10 years, I can now confidently say: Rightly so. “Components become targeted DOM operations”? Yes. “Updates flow through signals”? Yes. (Dunno about Qwik, never heard of it.) It was a long and arduous journey, but they pulled through. Also, it is rather batteries-included. I encourage everyone to give it a whirl. Zone.js is no longer needed and with Signals and Standalone Components it is now proper good. Developer experience, too, with Vite and esbuild. |
|
thomaslord on React is winning by default and slowing innovation 3 weeks ago link parent | |
Honestly I think React DX kinda sucks, at least in some areas. Performance is one of the worst (`useMemo` and `componentShouldUpdate` are way to easy to ignore, constant re-renders are the norm and writing performant React code requires conscious effort to avoid footguns) but it's also just less self-explanatory than the alternatives I've tried. I started doing web dev before reactivity frameworks were a thing, and I found Vue to be the most intuitive of the frameworks available when I first needed reactivity. To me, Vue feels like HTML with superpowers while React feels like a whole new way of thinking about webapps. I'm honestly a bit surprised that the article doesn't mention Vue, since Vue is (and has been for a while) the most popular "not React or Angular" framework option. Newer versions of Vue even support the "disappearing framework" feature Svelte was built for, which I'm excited to take advantage of when my biggest work project finally moves to Vue 3. |
|
Marazan on React is winning by default and slowing innovation 3 weeks ago link parent | |
I cannot upvote this comment enough. I am so glad to be old and have lived through the transition from Angular to React. To understand why we have React. In fact I am so old I have lived through the transition from Adobe Flex to Javascript Frameworks first. And the thing that is clear to me is that wave of Javascript Frameworks, of which Angular was one, looked at Flex and leanred all the wrong lessons (I'm looking at you two-way data binding) whilst React got second mover advantage and learnt all the right lessons. |
|
ipaddr on React is winning by default and slowing innovation 3 weeks ago link parent | |
It won by marketing and the angularjs to Angular breaking change. If they kept going with angularjs or had an upgrade path react wouldn't be default in the enterprise stack. That's all on Google. Meteor was node framework. jQuery is probably still more popular but it is only a lib. Vue had a Chinese language problem. React won because a framework by Facebook felt safe. |
|
lambdaone on Malware in Ngx-Bootstrap 3 weeks ago link | |
Recent versions of the widely-installed ngx-bootstrap Angular module appear to contain a serious malware payload. Discussion here suggests this may be limited to only a few recent versions, but this is still a nasty exploit: |
|
bangaroo on React is winning by default and slowing innovation 3 weeks ago link | |
realistically i've worked at very few companies whose delivery is held back meaningfully by the framework something is built in. when there's friction, it's much more likely to come from poor planning, or constantly adding more functionality without stopping to reconsider architecture, or one of a thousand more organizational issues. the innovation delivered by basically anyone working in software is extremely rarely a function of the tools they use to build the software, and many extremely successful products effectively started as CRUD apps, just organized in a way that really served a specific use case well. the stuff i recall that truly transformed the way i've experienced the web - (what was at the time) AJAX, webGL, the canvas tag, websockets - tend to be shipped in the browser, and function equally well in basically any framework. i don't really think that i can point to a single new framework that truly changed the way i experience the web meaningfully. react is probably the closest i can recall, but primarily because it was the one that caught on and made building really rich SPAs fashionable after the long slushy period of knockout and angular and backbone and handlebars and the thousand other disparate things cobbled together by every company. it catching on and taking over most of the industry meant people could move between jobs easier, contribute more quickly, and take easier advantage of countless libraries because they were either natively made for react or there was plenty of documentation and support for integrating them. having that broad a universe of support might actually be a main source of innovation, when you think about it. having it be effortless to integrate basically anything in the js universe into your project because it's well-documented and has been done a thousand times means you can focus more easily on the unique parts of your project. i'm definitely a little jaded, and 20ish years into my career i'm more business-minded than i was when i started, but i struggle to imagine a framework so profoundly and uniquely enabling of new things, that would have such a meaningful impact on my bottom line, that i would choose it and the trouble of hiring experienced engineers comfortable with it (or training new ones) when i could just bring on literally anyone in the entire industry, because basically all front-end devs are comfortable in react. |
|
frabonacci on React is winning by default and slowing innovation 3 weeks ago link | |
Really thoughtful piece. It reminds me of how Angular once dominated by default, until its complexity and inertia gave space for React. The same dynamic could be repeating now - React’s network effects create stability, but also risk suffocating innovation |
|
suchanlee on React is winning by default and slowing innovation 3 weeks ago link | |
React is good, and is good enough. That and the ability to easily find React devs makes it a good enough choice for almost all front end applications. For a new framework to be the default, it has to be a major step function improvement over React, like React was compared to other frameworks at the time like Angular, Ember, etc. I don't think I've seen that in any new frameworks yet. |
|
OtherShrezzing on React is winning by default and slowing innovation 3 weeks ago link parent | |
I always thought Angular 1.x was _fine_, so long as you had incredible discipline in your team and stuck to predefined patterns. React’s main benefit wasn’t technical, it was organisational. It’s so opinionated that it’s difficult for an incompetent developer to introduce very low quality code into the project. Meanwhile in AngularJS, a developer with a clever implementation idea was a terrifying prospect for future productivity. |
|
EGreg on React is winning by default and slowing innovation 3 weeks ago link | |
Well, if you want a more lightweight alternative, that is actually more powerful, spend an hour with this: I will release a playground soon on qbix.org so you can try it out. You can use it alongside React and Angular |
|
notapenny on React is winning by default and slowing innovation 3 weeks ago link parent | |
For sure it isn't the perfect solution for everything, and I say that as someone who spends most of their time in either React or Angular now. For application-like development or just sites with tons of interaction it's become as standard as reaching for Spring or PSQL though. I can't speak to the complexity you've encountered, but for me it's pretty much zero. A button component is just a function. React-Router is good enough and code splitting is pretty much just changing how to import something. Component state is dead-easy to write by just adding a useState hook. Bundlers pretty much handle everything these days so not to much concern about size. Your view on front-end developers having been mediocre in the past isn't far off though, at least in my experience. I noticed a big difference between the people who wanted to build nice looking pages and the ones that wanted to build applications myself. Even today it amazes me how many people have never unit tested their code, have no idea about layering an application and have poor JS/TS fundamentals. It's gotten a lot better though. Ultimately it isn't perfect for everything, but for a lot of people it's an easy choice. And for me personally, the tons of other JS frameworks do very little in that area that I'd pick them. I'd rather spend my time working on the product. Lol, maybe its just the default because its the default at this point. |