Why moving from one version of Angular to another is so painful ? Is Angular a right choice for the client side development ?

41 views
Skip to first unread message

Skini

unread,
May 14, 2018, 3:07:56 PM5/14/18
to Angular and AngularJS discussion
I started development of a product with Angular 1.0, after some time Google released Angular 2, so we had to write the client side code and retest the entire product.
When Google released Angular 4 (there is no 3...), backward compatibility was partial and again we had to re-write some portion of code, but retest the entire applications. We found some bugs in the Angular 4 & reported the same. Google has not fixed these bugs in 4 and has released Angular 5 along with bugs reported in 4, but again lot of compatibility issues. Hence again I have to resolve the compatibility issues and retest the entire application. 

If it continuous like this, my product will never go live and I will spend my entire life only in fixing the compatibility issues. I am not able to understand what process/policy followed by Google for version upgrade. Why they are not fixing the bugs in the same version ? Why the newer versions are not backward compatible ? Why Google is not bothered about the pain of application vendors ?

If you look at Microsoft products, I have never faced this kind of issue. 

Did I make a mistake by choosing Angular ? 

Tito

unread,
May 14, 2018, 3:21:12 PM5/14/18
to Angular and AngularJS discussion
this is not anything new with any framework. I think at some point you have to say I will go with v4.0 release it and then keep it that way until you see a benefit of moving to the next version.
upgrade to the next version is not really required

Sander Elias

unread,
May 14, 2018, 11:48:16 PM5/14/18
to Angular and AngularJS discussion
Hi Skini,

In an addendum to what Tito said, Between version 2 and version 4 were no breaking changes, and to version 5 only a few small ones. I upgraded a large number of projects to version 6 already and did run into anything major. Can you point out the things you were able to do, you can not do anymore in version 6?  afaik, there is only one true big change, and that is that is around the lifecycle hooks, and that's a really mild change.
They added a couple of new things, and if you want to use them, you might want to refactor some code. But you don't have to.
From version 6 on, the cli will even have tooling to automate away most of the breaking changes. (look what they did for RXjs 6!)

Also on MS products, talk to someone that has used Visual Basic, FoxPro, any SQL server version, and so on. MS is known for breaking their own API's on every upgrade. Or even abandon complete product-lines. 

If you have real bugs, report them on github, complete with a test, or at least a minimal reproduction in something like stackblitz and those will get a solution, or at least an answer/workaround.

Regards
Sander

Zlatko Đurić

unread,
May 15, 2018, 2:27:20 AM5/15/18
to Angular and AngularJS discussion
In addition to the other two answers, I will add another line of thought, perhaps a little controversial.

The answer to your question might be " yes", you have made a mistake by choosing Angular. We're all focused on different fields and front-end development might not be your strong side.

I'm saying front-end here, and not just Angular, because in the last decade there's been so many changes that if you're not in the field, you can be simply overwhelmed by the amount of things changing on almost daily basis.

Web standards themselves are being extended constantly. Browsers (including Microsoft browsers) are adding and changing functionality with every release, every few weeks.

That's not to say it can't be done. It might just be the case that your team's skills could use some dedicated training. Or you could benefit a lot from hiring an expert to verify your architecture and do a proper code review.

E.g. if you have to "retest the entire application" on each upgrade, your test coverage might be too low or your tests might be suboptimal.

So perhaps you don't need to look into your technology looking for faults. Maybe it would be better to upgrade yourself a little, so to speak.

Please take this criticism as constructive. I'm not implying that you don't know angular. I'm merely trying to say that if there are teams doing things successfully, where yours is not, this could be one contributing reason and addressing it might help you make a release.

sski...@gmail.com

unread,
May 17, 2018, 12:09:52 PM5/17/18
to Angular and AngularJS discussion
Thanks for the response, does't it mean we have to re-work & re-test the application every time ? This is leading to over heads & increase in cost of the solution/project. Incase of fixed cost project, clients will not pay a single penny extra. 

Sander Elias

unread,
May 17, 2018, 12:17:44 PM5/17/18
to Angular and AngularJS discussion
Hi sskini76,

No, there is almost no re-work needed between version 2 and 6. There are some breaking changes, but those should be easy to fix, and have only low impact. And they occur only if you did some special stuff with injection-tokens. Some of the I18n stuff did change also. When you used a lot of this, you might have a couple of hours extra work. If you are in a project of this size, you probably have automated tests. It's a good idea to rerun those. Retesting your app is a good idea on every release.
On a medium sized app (200K lines) there is usually less as a day work to upgrade it to a new version.

Things might be a tad more work if you are on an older beta or release candidate.

Regards
Sander



Reply all
Reply to author
Forward
0 new messages