DEV Community

Discussion on: Angular struggles in 2020

Collapse
 
martinspire profile image
Martin Spierings

So Angular hasn't been doing well for a while now. Many devs have stepped away from the framework when it moved to 2.x and its not weird to see that happening. But I still think there are enough companies remaining to keep the framework alive. Something needs to happen at google to reorganize and perhaps take a few major steps (like removing some of the toxic but brilliant minds to get a more stable work environment). I don't believe the people that left are really the issue, there's a few guys leading the project that are difficult to handle and its time to get rid of them. Even if they mean a lot to the project.

Next a couple of things about the issues mentioned. Every project has those and its not that uncommon.

  • Bazel is neat but its not a must have. I feel that there's a lot of "oh this looks cool, lets see if we can get it working" without really realizing that many projects aren't really looking for that. Similar to that the stuff we need to do to set up projects and improve performance go beyond the issue. Sure you can optimize the start with 2ms but your code just got 10 times more difficult to read and understand. In the meantime devices are getting faster, less people use IE11 and whatnot, so all those optimizations are still insignificant for many projects, especially those in the western world (where still the majority of the framework lies)
  • TSLint is not that big of a problem. I recently tried to put ESLint on the project and noticed it wasn't really working out, so its clear it needs more work. If there's really a major issue with it, they could always fork it and fix whatever needs fixing. Is it a shame? Sure. Is it a big issue? Nah.
  • Angular Material is doing its thing and imo thats fine. Its a shame its not really going to be a good example for how you normally would set up a styling kit, but as long as the output is usable I don't really see an issue. Google wants things to be easier to manage, so be it. We still have lots of alternatives too and right now Bootstrap is still a big contender anyways (which will probably do something similar). I think styling overall could use an overhaul in how you develop it and how much baggage you get in each component. It should be easier to inherit parent styling and global styling without duplicating lots of code.
  • Ivy remains a difficult topic but its clear why and it just needs time. Meanwhile the project is still usable and migrations are coming along. If you thought this was going to be done in a month or so, you were mistaken. Again, switching something major like that is going to give issues and migration periods. Big whoop.
  • Protractor. While I see there's an issue, its not impossible. Plus I think right now Cypress is getting a lot of traction and moving to that is no big issue (when you got the right setup working, which the Angular team could port), moving to that wouldn't be an issue. I recently moved to it and it was a blessing on how easy it was to debug my E2E tests and still work with the framework. If Cypress keeps developing like it is, I can see them switching in the future. Same with Jest, though Karma/Jasmine is still much faster than that. But I found it to be much easier to work with. With stuff like this its up to the team to decide whether maintaining their own system is worth it. I already find that some of the stuff I use for testing (NG Mocks and NG Spectator) should be part of the framework to improve/simplify/speed up testing.
  • Angular Elements is nice but I never really saw that as a solution. Angular is best when its working as a package deal to do an app rather than components. Still, this is a development that will keep moving on. But I still think that React is a better fit for that, but that doesn't mean it should replace Angular.
  • ZoneJS has always been a sort of temporary solution. Again, if it really becomes an issue, there will be a temporary fix to fork it or whatever. Having ES2018 bundles is neat but still nothing useful for 90% of projects that still need to support older browsers. Mobile doesn't always get updates, especially for hybrid apps, and lots of corporate systems use old browsers. Its a similar situation where Android developers or pc app/game developers are in: people aren't always updating their shit and it will not change. I think that 2021 is only really going to make such a shift when most Edge browsers on Win10 systems have been replaced with the Chromium thing and more Android browsers are updated. Again, not a pressing issue.
  • Packages get abandoned all the time. From stuff that was launched with Angular 2, a lot isn't really supported. New frameworks come and go. Its how the web has always functioned. Lots of people jump on the bandwagon, see that its all more difficult than expected and either drop it or move to something different. And if you really look at some of em, there wasn't really a future in it anyways. The list for Angular 1.x is longer imo, even when it dominated the market.
  • The issues list, sure there's issues but that has always been the case. But has it been rising because of major issues with the project or because more stuff was found because people work from home and perhaps have more time to do their projects and whatnot. And with the changes in the angular project, you can't expect 100% productivity either (combined with issues for working from home and such). You are making conclusions that aren't really warranted. Yet.
  • Roadmap. Yeah this is a thing that bothers me too but I think right now the roadmap is just: fix whatever is broken (especially with Ivy) and maintain whatever isn't. Some things on your list are nice to have, others I think shouldn't be a priority really. Sure the observable stuff and dynamic rendering would be handy but I can still work without them for the time being.

Right now I think we should give Google a moment to organize and see where this is going. If by the end of the year its still in terrible shape, people should consider forking the project and take control ourselves (or have some other company run things). I wouldn't be surprised if a company like Microsoft is willing to take over, seeing how much they have been investing in Open Source and TypeScript. Perhaps improving the compatibility and portability of C# to web or something fancy.

These past few years have made it clear that Google doesn't really have a lot of interest in Angular, but their alternatives are also slimming down. Lots of people move to their competitors (React/Vue) and it doesn't look like Polymer is really getting there either (that project is in worse shape imo).

Overall I don't really see a need to start using other products, especially in the app-style projects that Angular is currently being used for. But yeah, the community needs to take a look and wonder if its still in the best hands at Google or that things need to change. You made a nice list on where they could start to focus on, but I think we should give them a bit of time. And instead of turning articles into doomsday negativity, rather give them feedback to build on and work together to get the project back on track.

Collapse
 
gr3g5ki profile image
Greg Ski

I don't see how Microsoft is going to take over. They're pushing Blazor.

Collapse
 
layzee profile image
Lars Gyrup Brink Nielsen • Edited

As long as Blazor requires shipping a several MB client-side runtime or a chatty WebSocket connection, it only makes sense for enterprise. Angular shines in enterprises, so I guess it's a fair comparison.

Thread Thread
 
wa1gon profile image
Darryl Wagoner

Several MB that is cached on the browser isn't a big deal for enterprise users. Having a poorly supported framework with infighting between management and developers is.

Collapse
 
sebastienlorber profile image
Sebastien Lorber

Microsoft is investing in React and particularly ReactNative recently, with support for Windows et MacOS. Supporting TS does not imply supporting Angular ecosystem, we React devs also like TS.

Collapse
 
layzee profile image
Lars Gyrup Brink Nielsen • Edited
Collapse
 
mlcmlapis profile image
Miloš Lapiš

Be a bit serious. Using formulations like "Many devs have stepped away from the framework when it moved to 2.x and its not weird to see that happening." and pointing on the version 2.x, where everything was created from the ground, doesn't sound me as a serious argument. On the other hand, I understand that there are some people who still like AngularJS.