Why I decided to start with AngularJS instead of Angular 2 - angularjs

I am clarifying this question after I have been developing SPA for the past 5 months using AngualrJS. In the beginning, I was researching if I should start with Angular 2 instead.
During my research, I came across this article:
https://angular.jsnews.io/why-learning-angular-2-was-excruciating/
https://hackernoon.com/why-learning-angular-2-was-excruciating-d50dc28acc8a
I then realized that I have faced a lot of the issues referenced in that article.
Also, when I started with the offical Angular websites https://angularjs.org/ and https://angular.io/ and followed the recommendation:
I spent several days using the various resources learning Angular 2 based on the above websites and faced a lot of difficulties. I remember I started with this 5 MIN QUICKSTART:
http://a2.hubwiz.com/docs/ts/latest/quickstart.html
Which took me several hours to complete, with several scary error messages in red color.
Later, I started using other resources such as w3schools.com and stackoverflow.com, and I see mostly reference to script tag as follows:
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
Which is clear that it was referencing AngularJS. Finally, I realized that learning Angular 2 to start taking advantage of the newly added feature, will cost me a lot of time and effort. Finally, I decided to stay with AngularJS especially I was able to find a solution to each and every business requirement for the complex Forms Application Development I was working on.
Also, I read the other post which is suggested as an answer for my question. What is mentioned there is that Angular 2 is in developer preview:
However, the official websites doesn't mention that. So, the post above is not relevant anymore and I cannot depend on it.
So my recommendation, if you have enough time to spend in learning Angular 2 and deal with the issues that might show-up then of course this is the recommended path, otherwise, best to stay with AngualrJS.
Tarek

you are using angular 1 exactly 1.4.8. it's in the link. Most of the tutorials on the internet for angular 1 that's why everything works ok for you.unless you specify angular 2 in the search you will get angular 1 tutorials that's cause angular 2 is pretty new

Related

In 2019, how much is it necessary to migrate a site from Angularjs to another framework?

I'm a project manager of a market place and I'm trying to find solution for my concerns. For two years a ago we decided to develop market place.
In front layer we decide to use angularjs and our team professional implement front layer using AngularJS. We add dependency injection for first time to angularjs 1.3 and solve google analytic crawling in SPA website.
But when google announce On July 1, 2018 AngularJS entered a 3 year Long Term Support period. As a project manager I have a big concern because We living in 2019 and after two years whats happen for our website ?
But my biggest question is how optimistic how long can we use Angularjs?
how much migration is necessary for this framework and
Is it possible that the sites written with Angularjs are not able to work after 2021?
Google announced:
All AngularJS applications that work now, will continue to work in the future. All published versions of AngularJS, on npm, bower, CDNs, etc will continue to be available.
For more information, see
Angular Blog - Stable AngularJS and Long Term Support
AngularJS Version Support Status
It’s out of date now, and new projects should absolutely not be built using it. This isn’t to say it was ever a particularly great choice. AngularJS came out of nowhere and became popular by default, rather than because it had particularly great design. It has a difficulty curve better suited to a great roller coaster than a decent framework, and a bunch of weird architectural and terminology choices. What the hell is a $scope, anyway? And what is a directive? What does transclusion actually mean? Meaningless terms that AngularJS has created. AngularJS does some things that are fundamentally wrong, such as creating invalid attributes on HTML markup. Even Google doesn’t use Angular for their own apps, like Gmail, and there’s a reason for that.
In fairness, AngularJS was always a poor choice. Its idiosyncratic code means that unlike other frameworks, it’s not good at implementing an agnostic, javascript solution. AngularJS code looks unfamiliar to anyone not super experienced with the weird intricacies of AngularJS itself.
Thankfully, this decision is well made for you – AngularJS is now quite thoroughly dead, and only legacy projects will continue to be using it. We should be grateful for what AngularJS has given us, and respect the position it held, but we should be just as pleased that it’s gone.1
The change is only about "support" and it means, no more bug fixes and no more improvements. Other than that, everything will be the same. Although, you should consider some disaster scenarios after LTS.
I saw some posts about running AngularJS and Angular side by side and I think it can be a good solution for your problem. Since you have enough time to migrate, your team can develop new features on Angular and you can also maintain your current AngularJS. Eventually you can get rid of AngularJS depending on your project size and development capacity.
Please check these scenarios.
Running AngularJS 1.6 in Angular 5 (side by side)
Running Angular and AngularJS frameworks side by side
For Angularjs support, you can find the previous discussion on this portal: angularjs 1.x support lifecycle and end-of-life
And the question regarding migration, in my personal opinion migration is a better option as the latest Angular version provides Boost in performance, Mobile-driven approach, code Maintainability & optimization, and most importantly Reduced development time and costs with better support.
And if asked about the migration approach, I would suggest a complete re-write that can be the most cost-effective strategy. If you’re a manager, put your team through Angular training (live, online, videos, books). Allocate time and budget for getting your developers up to speed with Angular as the learning curve is steep and prior experience with AngularJS is not overly helpful. Then your developers will write the new version of the app as per best practices recommended for Angular/TypeScript projects.
And finally, it’ll definitely pay off in the end. And, secondly, the newer versions of Angular won’t let you systems become outdated or irrelevant.
There is a team called XLTS.dev who are providing extended support for AngularJS beyond December 2021.
We have used Angular JS extensively in our company for enterprise projects, mobile applications and continue to use it. Google's decision to stop development of AngularJS and put it on a EOL will definitely make developers to panic. But 3 years to migrate away from it is a long time and you can plan accordingly.
If your plan is to migrate to Angular, then you can follow their official guide to upgrade using ngUpgrade. You can find numerous articles online that explain how they upgraded existing AngularJS apps to Angular.
If your plan is to consider migrating to a totally new framework, then this will involve some work. You should take a look Web Components spec. Your existing directives/components can be re-written, with less effort, as web components (shadow DOM) or custom components (without shadow DOM). There are libraries that help you write these generic components - supported on most browsers today - Stencil JS, lit element and a few others.
The advantage of using Stencil JS is that it provides tools to compile your web components to target different frameworks (Angular, React, Vue, Ember).
The latter solution seems feasible as it allows you to migrate directives one by one over a period of time, without having to re-write the whole application in one go. In the future you can also re-use your components in the framework of your choice.
As for your question about will it continue to work after 2021 - yes it will continue to work. The problems you might face might not really be of technical nature, but related to hiring resources to work on it or maintain it.
I am AngularJS developer and I do continue to use this framework for some of my projects. I am aware that in not too distant future this library will be completely outdated (as some of you can say it's the case now), however:
AngularJS ecosystem gives you still lots of choice/support (as framework is very mature)
my main libraries as ag-grid, highChart or others, help to build great apps out of the box with little time
I still do enjoy to work with this framework for it's simplicity and flexibility
If you should build brand new app I would recommend React or Vue (or other framework) especially if you do not have significant experience with Angularjs. However if Angularjs is not new for you, you need to go fast - just use your experience and go for Angular.
Taking into account what you wrote:
My main concern is after 3 years of support. Whether after the 3 year end of support, Angularjs sites can continue to work without problems
Angularjs apps won't just stop to work like that, from one day to another.
As your project requires long-term maintenance, needs to be built from scratch and will take lots of effort - Angularjs ecosystem is then probably not the best choice for you (I do insist "for you").

How to upgrade from angular 1.4 to angular 5?

To upgrade from angular 1.4 to Angular 5 is it possible to use ngupgrade and follow incremental approach or it is strictly applicable to use ngupgrade from version 1.5. According to the image the prerequisites mentioned 1.5 is used for ngUpgrade.
There is official upgrade guide:
https://angular.io/guide/upgrade or https://angular.io/guide/upgrade-performance
But as a person who have written a big AngularJS application and now is working on a big Angular project, I recommend to start a new fresh project and step-by-step write a complete new application in the newest Angular. By my experience, switching between both frameworks is really hard and time-consuming.
In Angular things work totally different (better) and the framework itself offers much more than AngularJS.
If you still want to go the upgrade way, do it in 2 steps:
Upgrade to 1.5 (because there must be a reason why it is required)
Upgrade to Angular
Take a look at this article: https://angular.io/guide/upgrade
And you can upgrade or downgrade services and components between two frameworks.
You should know that there are two ways to bootstrap a Hybrid App:
Using UpgradeModule - Bootstraps both the AngularJS (v1) and Angular (v6) frameworks in the Angular zone
Using DowngradeModule - Bootstraps AngularJS outside of the Angular zone and keeps the two change detection systems separate.
I have tried both ways. And I recommend using DowngradeModule - it's better for performance and memory leaks.
If you google angular hybrid you will find a lot of articles and examples on github
Certainly look at https://angular.io/guide/upgrade to start. It's been a while since I've looked at it and it appears to have significant updates, which is nice. The "Preparation" section still reminds me of the joke: "How to be a millionaire and not pay taxes? Step 1: Get a million dollars." One section of preparation is "Using a Module Loader" which tells you why, but you're still on your own to figure out how to go from, say, grunt to webpack. It's beyond the scope of that page, sure, but that feels like big amorphous step to sort out.
I did find a developer, Sam Julien, that put together a guided video "course" which takes an app and walks through converting it. It is at https://www.upgradingangularjs.com and is certainly more comprehensive than any blog post I've seen. I'm not affiliated but it has gotten me started on laying out some of what we need to change.
It's not a trivial undertaking but being able to see the stages laid out ahead of time has made it seem incrementally possible. (Luckily, we are pretty close to the angularjs style guide already, which is another preparation step.) Good luck!

Angular 2 or 4 or 5 [duplicate]

This question already has answers here:
What is Angular 4 and from where I can learn more about it?
(6 answers)
Closed 5 years ago.
I am posting this question to get some opinion from fellow developers on which version of Angular to start to learn when migrating from AngularJS to Angular.
I have been working with AngularJS 1.3.7. I have realized that AngularJS 1 is pretty old now and there have been more than significant changes in Angular 2 and higher versions. Also Angular 5 just come out.
I have plans of learning Angular and currently confused with which version to start. I am assuming that Angular 2 is currently trending in market now followed by Angular 4(I might be wrong though).
Should I take a sequential approach and start from Angular 2 and then higher versions or is is safe to jump directly to Angular 4 or 5 without having any Angular 2 knowledge ? Or probably my question should be, can I learn Angular 4+ directly without have any prior knowledge of Angular 2 ?
A lot of companies that have now been using AngularJS for years are still using it, and don't have immediate plans to migrate to 2+. So there's marketability, plus the inevitable requirement of knowing both as an Angular developer.
I know my question is broad and might get some downvotes and red flags, but I am curious to hear from folks who have experienced the transition from 2 to 4+.
Also, I wanted to know about the key differences between AngularJS 1 and Angular 2+. Are they completely different, or will some of the knowledge transfer?
And lastly, I would like to know some of the good resources/tutorial to learn Angular.
They are basically the same. The Angular project moved to Semantic Versioning, which means every breaking change results in the major version to be increased.
Angular 5 is just a newer version of Angular2.
Just use the newest.
http://angularjs.blogspot.co.at/2016/10/versioning-and-releasing-angular.html?m=1
You should use the newest version of Angular for new projects and for learning.
Difference between versions
The difference between Angular v1 and Angular v2/3/4/5+ is drastic, as the platform was completely rewritten in TypeScript, and with different conventions.
The difference between Angular v2/3/4/5+ is simply that breaking changes were released between each major revision; however, they're still the same platform and tutorials / documentation will generally remain applicable between these 4 versions.
Semantic Versioning
Angular now follows the semantic versioning scheme. Patch releases (e.g. 5.0.X) will not change the functionality, minor releases (e.g. 5.X.0) will contain only additive changes, and breaking changes (e.g. X.0.0) are reserved for major releases.
Originally, the rewrite of AngularJS was called "Angular 2" by the team, but this led to confusion among developers. To clarify, the team announced that separate terms should be used for each framework with "AngularJS" referring to the 1.X versions and "Angular" without the "JS" referring to versions 2 and up.

How to easily switch to angular 2

So I learn angularJs not long ago, and I'm just getting started to get comfortable with it. But angular 2 is on the way and I have 2 major question:
1) Should I stop learning and working with angular 1 and start learning angular 2 instead?
I know a little about angular 2 and I know almost every thing has changed. So
2) What I know from angular 1 is any good in learning angular 2? Or should I learn angular 2 like it's a whole new framework? Is there any good way or guide to switch from angular 1 to 2?
Thanks in advance for your answers.
I learn angularJs not long ago
Then, this is the perfect time to start learning Angular 2, too. Starting a new language version while you have not already spend a lot of time on another one is a good choice in my opinion. However since Angular 2 is still in RC you should not completely leave learning Angular 1.x and start with Angular 2.
1) Should I stop learning and working with angular 1 and start
learning angular 2 instead?
No, even though the future of Angular framework seems to be Angular 2, this version is still in RC and building large apps using it would be a high risk.Angular 1.x compared to Angular 2 is more stable on this aspect. Angular 2 is constantly evolving, every few weeks there are totally new concepts included.
You should not stop learning Angular 1.x but, you should start learning Angular 2, too.
2) What I know from angular 1 is any good in learning angular 2?
Although there are a lot of changes like between these versions they still have similarities.For instance, in Angular 2 the concept of controllers does not exist, but they use Components. ng-if and ng-for directives from Angular 1.x look like *ngIf and *ngFor in Angular 2. The best resource to compare the two versions is their official website which you can find here here.
Is there any good way or guide to switch from angular 1 to 2?
Although you can still find very useful information about upgrading from Angular 1.x to Angular 2 on their official website
I would suggest that you treat Angular 2 as a completely new framework and start it from zero.Also the knowledge you already have about Angular 1.x will be helpful since there are concepts that have not changed that much. There are plenty of tutorials available online for free that you could use.
My favorite YouTube playlists are:
Angular 2 Start
Angular 2 Basics Course
Build Angular 2 Weather App
Well , This is the major question for all angular2 beginners who knows angular1 ... ,
Just imagine you don't know angularjs1 then Definitely you are more comfortable with angular2 ... The thing is Angular is the future that is the unwritten truth ... Definitely Angular1 is not going to die ...but It may be loose from the competition ... You have to consider following things to choose angular2 ...
Type Script (Great Coding Structure)
Componets (Great Library Support )
Rich Third party library Support
Creator the Giant (Google )
Finally You have to go with the future ... (Angular2)

Ionic 1 AngularJs 1 vs Ionic 2 AngularJs 2?

I want to move from IOS to Ionic. But i don't have any idea that which version is best for starting, because i did't know nothing about AngularJs 1 and its update version AngularJs 2 features and differences. And also i did't find any related help from internet with difference of both versions. Can anyone please tell me pros and cons or difference between them. Or which one is best. And if Ionic 2 is best so from where i can watch video tutorials of this.
Thanks
If I remember correctly the podcast episode of Adventures in Angular, John Papa recommended starting new projects with Angular 2.
Since Ionic is built on top of Angular 2 it will be lagging a bit behind. If you want to go into production now with an Ionic 2 app I suppose it's not recommended using it. Since Angular 2 is in RC we might expect that they will release in the near future, and with that Ionic 2 will be some time behind that. Therefore, I recommend using Ionic 2 if you don't plan to go into production in the nearest future.
When it comes to the differences, this article has a nice write up on the differences between Angular 1 and 2.
Edit: It's been a while since I wrote this post and I have followed the development of ionic 2. I would now recommend using ionic 2.
Right now is quite unfortunate time to choose between Ionic/Angular v1 and v2. If you can afford that I would advise you to wait 1 year and the just pick Ionic 2. Most of the problems you will face today when dealing with Ionic/Angular 2 will be already solved here in stackoverflow 12 months from now.
Currently I would say it does not matter that much if you pick Ionic 1 or Ionic 2. In the first case you will move fast now, but waste time later trying to upgrade your app from ionic 1 to ionic 2. If you choose Ionic 2 now, you will waste similar amount of time just trying to make it work and adopt newer versions of Angular 2.
if You beginner you can start ionic-1 and angular-1,because lots of resource available like angularJS essential , Inter mediator and advance video tutorial in youtube and many other training provider.
if you want to include oops concept and other important script like typescript,move on to ionic2.
If you are developing a mobile app, the question is ionic vs ionic 2 vs alternative frameworks. A lot of work has gone to making ionic 2 fast, and unless you already have a lot of apps in ionic there is no point learning it now.
Regarding Angular 2, the benefit of Ionic is that you don't have to learn it to get started. You can create real apps using just Ionic, and when you do need Angular (for http for example) then there are plenty of examples around.
You can find videos on most of the pay learning sites, but to really learn it take an existing app such as https://github.com/driftyco/ionic-conference-app, which includes enough Angular 2 (Javascript and Typescript flavours) to see how a real app can be put together.
You can also play with the Ionic components with https://github.com/driftyco/ionic-preview-app.
The only reason for going Ionic 1 these days would be an edge case supporting an older version of Android, but if you need to go to a version earlier than 4.4 you will also find solutions that Ionic 2 can use.
================= UPDATE Jan 2017 ================
There is a great starter project which has a number of app features built in, such as app settings, api connection, registration and login, welcome tutorial which can be found here https://github.com/driftyco/ionic-starter-super

Resources