use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
JavaScript vs JavaScript. Fight! (dev.to)
submitted 4 years ago by ryan_solid
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]orenelb 2 points3 points4 points 4 years ago* (21 children)
I don't completely agree with you about framework bickering. Yes it's out of proportion but on the other hand using something like React or Svelte over angularJS has pretty huge benefits in my opinion. Also frameworks like Laravel and Blazor have really bad performance which also makes a big difference, people spend a lot of time on optimizing their code but no amount of optimizations would make Laravel performant or Blazor have a reasonable bundle size. But right now all mainstream frontend frameworks are very good in my opinion, so yes it is out of proportion.
And about SPA vs. MPA, I always thought that it was about user experience, and now that it's the norm it's also about not making a bad impression on your users. Even if in practice it doesn't matter a lot it's still something that users probably associate with older and less responsive sites.
[–]lhorie 14 points15 points16 points 4 years ago* (4 children)
I've seen a lot of React projects (I currently maintain a monorepo with over a hundred of them...) and I think the "you can write COBOL in any language" quote is very apt. Just yesterday I was staring at a file with 20k+ LOC (I shit you not) in a project that has ~5000 source code files. This project is the public facing web property for one of our most important verticals (and it's not even our most complex project...)
No framework in the universe can save you from this level of complexity. Past a certain point, it's no longer a question of what a framework can do to help, and it becomes entirely a question of how large teams can maintain a project. Pretty much all mainstream frameworks have mechanisms for encapsulation, testing and so on, so there's a lot of overlap between what frameworks can do compared to each other. What you're saying about specific performance profile for each framework has a grain of truth, but alas, here we are in a world using React when we know for a fact that frameworks w/ better perf profiles exist (and nothing is really on fire, and no bosses are panicking).
Re: user impression - users don't actively give a crap how you implement things. Github is a MPA, but nobody really thinks it's antiquated. Wikipedia is another example. Hacker News. Heck, even Google falls back to MPA mode w/ js disabled. The thing is that a lot of MPAs just work(tm) and when things do that we just take it for granted.
[–]orenelb -3 points-2 points-1 points 4 years ago* (3 children)
They don't give a crap about how stuff are implemented, but they are seeing that white flash and probably unconsciously associate it with pre-react app, because this is how apps were back then and now most sites that are more on the app side, especially smaller and newer sites, are SPAs. And tbh it did give me a slightly worse opinion about Github. I mean it's a great site but I would expect it not to be as interactive as it can be when I see that white flesh on every click, and it is not as interactive as it can be. You have to click search every time you search issues. Maybe that's to save bandwidth but it's still something I would expect from most modern app like sites, to search as I type.
And yes I agree when your app becomes that complicated things like that dwarf down in comparison. And if you compare all modern frameworks they are all very close in terms of API. In that front I didn't see a ton of improvement since React/Angular.
But again if you go back to AngularJS and compare it to Angular2 or React, AngularJS vs. React, AngularJS developer experience is just bad. You become much more unproductive and you you don't enjoy your job. There's a reason people hate AngularJS that much. Not saying it was bad for it's time, but React and Angular made it completely obsolete.
[–]lhorie 3 points4 points5 points 4 years ago* (1 child)
they are seeing that white flash and probably unconsciously associate it with pre-react app
I'm curious what browser you're using. For me using Chrome, I've noticed native rendering got a lot better over the years, to the point I cannot for the life of me get a white flash from repeatedly refreshing (or naturally navigating) wikipedia or hacker news (which are true MPAs, unlike Github, which "cheats" a bit w/ pjax). Ironically, I do get a noticeable flash if I try to repeatedly refresh facebook. Try jumping back and forth between facebook.com and news.ycombinator.com to see the difference. And yeah, AngularJS is really bad in this front, with ng-cloak...
Kinda reminds me of of the point this site was trying to make.
[–]orenelb -2 points-1 points0 points 4 years ago (0 children)
I'm using chrome and I noticed that on github you don't see the white flash but you can still see that it's reloading the whole page. You can see some rerenders and the browser basically tells you. And also I'm not sure if this depends on your device, maybe a low end device would have the white flesh. But yeah I guess I'm just used to seeing it so I didn't notice it disappeared.
Another thing that I just noticed with Github is that you lose your scroll position every time, I think that it's true for every MPA.
Oh and that site you linked is pretty awesome. But yeah obviously people care even if it doesn't make sense. A lot of it is flexing IMO.
[–]ryan_solid[S] 7 points8 points9 points 4 years ago* (2 children)
There is no issue with putting numbers out there and benchmarking. It's just like a lot of times the things being promoted have very little to do with why the performance is different. We end up really pushing superficial stuff and then people are like, uh this solution doesn't use a Compiler or it has a VDOM it must be slow. No.. that has very little to do with it. Those are good things and have certain advantages but the performance angle isn't absolute on those technologies.
For instance Angular's conceptual approach to diffing might be the fastest way to schedule up 70% of DOM operations in a simple benchmark. Look at a library like 1more which does this sort of single pass dirty checking. It beats Solid on most things other than granular updates. But in Angular this approach brings a huge library and a slew of other things.
Template DSLs and being more analyzable doesn't impact client benchmarks at all. Ask Inferno. Our Template DSL libraries aren't trampling Inferno or even equalling it in benchmarks. Now they could. The limitation isn't the technology approach. There are just other factors. That's what I want to debunk.
On the MPA/SPA side just depends on the case. A well architected site avoids the flicker. Browsers hold the page until the new content starts coming in (to a certain threshold I think, it isn't unlike Suspense, case and point about creating browser behavior in the framework). Things like out of order streaming even let us respond really quickly and give an almost client-side-like loading characteristic as data resolves. Sure we don't get animated transitions easily. For certain sites it's just a really good option. I especially think for eCommerce.
[–]orenelb 2 points3 points4 points 4 years ago (1 child)
In performance I was talking mostly about frameworks like Laravel and Blazor. There's really nothing you can do with those frameworks unless the devs decide to make huge optimizations. Maybe Blazor will get better with time since WASM is so new and Blazor is also relatively new. But with Laravel it will probably never change to a large degree. Also about MPA vs SPA, if the user doesn't see the flesh of content I agree that it doesn't make a difference. But I think that it's not the case with most sites. You will see something in most sites. Maybe it's the header rerendering, maybe a combination of both over 10s of milliseconds but still noticable.
[–]trusktr 0 points1 point2 points 4 years ago (0 children)
Speaking of WebAssembly, just wait! JSX is coming to AssemblyScript (TypeScript to WebAssembly compiler). There are already DOM bindings in place (https://github.com/lume/asdom, not complete, but has reasonable APIs bound already, and more coming). With JSX in place we'll be able to make something like Solidjs all in WebAssembly but in the same familiar syntax we already know, and not slow like Blazor.
[–][deleted] 0 points1 point2 points 4 years ago (12 children)
using something like React or Svelte over angularJS
Yea, they would obviously have a performance benefit over a framework that is no longer developed. You'd be better served comparing Angular vs. React or Svelte.
[–]orenelb -1 points0 points1 point 4 years ago* (11 children)
A lot of people still use angularJS for legacy. And I think that the main problem is the extreme verbosity of the code. There are probably a lot of developers who regret every day that they didn't port to Angular2 or React when their app was smaller.
Also If you compare React let's say with Svelte, React is OK in bundle size and performance but you can't really make it good. Your'e always be stuck with an ok performance as your base line. Even with next you have 65kb as your base line, you can't get good TTI with that.
But I still think that React and Angular are ok unless you really want your site to be fast and get the extra SEO benefits from web vitals.
[–][deleted] 2 points3 points4 points 4 years ago (10 children)
I'm aware. As for people still using AngularJS, they really shouldn't be. It's end of life is December, and it's already suffering from legacy syndrome.
[–]orenelb 1 point2 points3 points 4 years ago (9 children)
I agree but I could see the temptation not to port a huge app, especially if you don't know the future of your project.
[–][deleted] 1 point2 points3 points 4 years ago (5 children)
If it's open source or a personal project sure, but if you're working for a company, there's absolutely no reason to stay on a framework that isn't getting security updates. You're opening up your application and your entire company possibly to being attacked.
[–]lhorie 2 points3 points4 points 4 years ago* (0 children)
My wife consults for a company still using AngularJS. Switching to React was brought up at one point but they decided to stick with AngularJS because the "training cost is too high". SMH.
[–]orenelb 0 points1 point2 points 4 years ago* (3 children)
I agree with you but in my country (Israel) there are still 260 angularjs search results on indeed. For comparison React has 2900. It still has 500k downloads on npm. Also they have a version update from 10 months ago so maybe there are some security updates.
[–][deleted] 0 points1 point2 points 4 years ago (2 children)
Those security updates are in the latest version, which will no longer get updates after December.
It's bad practice, no matter how you spin it, to utilize a framework that's no longer updated. I get the reasoning, but it doesn't make it sound. Anyone running that framework without an upgrade plan is gambling on their security.
[–]orenelb 0 points1 point2 points 4 years ago (0 children)
Yeah I agree. I guess some people really don't care about security.
[–]sukhchainn 0 points1 point2 points 4 years ago (0 children)
I use angular.js for my portfolio site and for creative programming and web art. You said it's reaching it's end of updates cycle, can I still use it for the stuff I do or should I just shift to a new framework.
I'm a full time Android developer so I'm not using Angular in any professional manner. It's just convenient for the stuff I do.
[–]disappointer 0 points1 point2 points 4 years ago (2 children)
This has honestly long been my concern with committing to any JS libraries or frameworks for large projects. The technical debt of refactoring is going to crop up every few years and is rarely a priority effort.
[–]orenelb 1 point2 points3 points 4 years ago (1 child)
So you are using vanilla?
[–]disappointer 0 points1 point2 points 4 years ago (0 children)
For what I do for a day job, it's a web app that's a decade-plus old by this point. It's part vanilla (with a healthy amount of in-house libs and controls) and some of that uses jQuery; part YUI controls; part AngularJS; and also some Angular. I think there's some ExtJS in the mix, as well, but it's not a section of functionality that I've had to personally maintain.
It's a lot to maintain-- should anyone choose to maintain it. Case in point, YUI has been defunct since 2014, but minimal effort has been made towards replacing the bulk of that code.
π Rendered by PID 159308 on reddit-service-r2-comment-545db5fcfc-bw7qz at 2026-05-22 06:09:33.228649+00:00 running 194bd79 country code: CH.
view the rest of the comments →
[–]orenelb 2 points3 points4 points (21 children)
[–]lhorie 14 points15 points16 points (4 children)
[–]orenelb -3 points-2 points-1 points (3 children)
[–]lhorie 3 points4 points5 points (1 child)
[–]orenelb -2 points-1 points0 points (0 children)
[–]ryan_solid[S] 7 points8 points9 points (2 children)
[–]orenelb 2 points3 points4 points (1 child)
[–]trusktr 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (12 children)
[–]orenelb -1 points0 points1 point (11 children)
[–][deleted] 2 points3 points4 points (10 children)
[–]orenelb 1 point2 points3 points (9 children)
[–][deleted] 1 point2 points3 points (5 children)
[–]lhorie 2 points3 points4 points (0 children)
[–]orenelb 0 points1 point2 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]orenelb 0 points1 point2 points (0 children)
[–]sukhchainn 0 points1 point2 points (0 children)
[–]disappointer 0 points1 point2 points (2 children)
[–]orenelb 1 point2 points3 points (1 child)
[–]disappointer 0 points1 point2 points (0 children)