# What happens if Google halts support for Angular 1.x?

**URL:** <https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379>\
**Category:** Development\
**Tags:** angular\
**Created:** [March 18, 2016, 2:40am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379 "2016-03-18T02:40:00Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [March 18, 2016, 2:40am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/1 "2016-03-18T02:40:00Z")

</div>

I know I’ve made my personal opinions on AngularJS known, but I wanted to raise a valid question we need to ask as a community:

Currently, we use Angular 1.x and we should be (at least considering) migrating that code to Angular 2.x. What are our plans if Google decides to say that they will no longer support Angular 1.x?

That migration strategy makes me uneasy moreso than the framework itself.

---

<div class="post-metadata">

**Author:** ![pascal](https://talk.openmrs.org/letter_avatar/pascal/32/6_22734026db12803ebb3e059622ac3534.png) [@pascal](https://talk.openmrs.org/u/pascal)\
**Post date:** [March 18, 2016, 2:45am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/2 "2016-03-18T02:45:26Z")

</div>

I guess the same thing everyone does when version X of a piece of software goes out of date. Upgrade? 🙂

---

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [March 18, 2016, 2:45am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/3 "2016-03-18T02:45:49Z")

</div>

Yes, but only recently did they even make the path clear.

---

<div class="post-metadata">

**Author:** ![michael](https://talk.openmrs.org/user_avatar/talk.openmrs.org/michael/32/15070_2.png) [@michael](https://talk.openmrs.org/u/michael)\
**Post date:** [March 18, 2016, 2:46am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/4 "2016-03-18T02:46:46Z")

</div>

Does this outline for us a path forward?

> **[Angular 1 and Angular 2 integration: the path to seamless upgrade](http://blog.angularjs.org/2015/08/angular-1-and-angular-2-coexistence.html)**
>
> Have an existing Angular 1 application and are wondering about upgrading to Angular 2?  Well, read on and learn about our plans to support ...

---

<div class="post-metadata">

**Author:** ![pascal](https://talk.openmrs.org/letter_avatar/pascal/32/6_22734026db12803ebb3e059622ac3534.png) [@pascal](https://talk.openmrs.org/u/pascal)\
**Post date:** [March 18, 2016, 2:47am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/5 "2016-03-18T02:47:34Z")

</div>

Sure, it may not be easy, but it’s not impossible. I’m not defending Angular, and it’s something that we should definitely think about, but it could happen to any framework.

---

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [March 18, 2016, 2:51am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/6 "2016-03-18T02:51:48Z")

</div>

We should also be migrating out code to ES6 entirely and maybe standardize on the airbnb style guide

---

<div class="post-metadata">

**Author:** ![dkayiwa](https://talk.openmrs.org/user_avatar/talk.openmrs.org/dkayiwa/32/179_2.png) [@dkayiwa](https://talk.openmrs.org/u/dkayiwa)\
**Post date:** [March 18, 2016, 7:24am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/7 "2016-03-18T07:24:10Z")

</div>

@r0bby you remind me of when i heavily invested in GWT and then Google abandoned it. 😄

---

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [March 18, 2016, 9:42am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/8 "2016-03-18T09:42:40Z")

</div>

@darius, I do apologize for constantly bashing Angular – it’s bad – I know. But I’m trying to make this as constructive as I can 🙂

---

<div class="post-metadata">

**Author:** ![lluismf](https://talk.openmrs.org/user_avatar/talk.openmrs.org/lluismf/32/770_2.png) [@lluismf](https://talk.openmrs.org/u/lluismf)\
**Post date:** [March 18, 2016, 11:04am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/9 "2016-03-18T11:04:21Z")

</div>

It’s not bad if you provide arguments 🙂

I recently saw a video from Matt Raible (web frameworks guru) comparing Angular, Ember and React, very interesting. I really want to learn some but not sure which one ☹

---

<div class="post-metadata">

**Author:** ![wyclif](https://talk.openmrs.org/user_avatar/talk.openmrs.org/wyclif/32/19607_2.png) [@wyclif](https://talk.openmrs.org/u/wyclif)\
**Post date:** [March 18, 2016, 2:42pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/10 "2016-03-18T14:42:23Z")

</div>

To Robby’s point, this is why personally tend to be hesitant to jump onto new JS technologies, most of them get abandoned soon or later and I see the same happening for angular. I like Jquery because it has been around for a while.

---

<div class="post-metadata">

**Author:** ![lluismf](https://talk.openmrs.org/user_avatar/talk.openmrs.org/lluismf/32/770_2.png) [@lluismf](https://talk.openmrs.org/u/lluismf)\
**Post date:** [March 18, 2016, 2:56pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/11 "2016-03-18T14:56:58Z")

</div>

But jQuery is a library, not a framework. A framework forces you to do things in a certain way.

---

<div class="post-metadata">

**Author:** ![wyclif](https://talk.openmrs.org/user_avatar/talk.openmrs.org/wyclif/32/19607_2.png) [@wyclif](https://talk.openmrs.org/u/wyclif)\
**Post date:** [March 18, 2016, 3:41pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/12 "2016-03-18T15:41:58Z")

</div>

I just meant to mention JQuery as an example of a library that has lasted and not as an alternative to angular

---

<div class="post-metadata">

**Author:** ![darius](https://talk.openmrs.org/user_avatar/talk.openmrs.org/darius/32/8082_2.png) [@darius](https://talk.openmrs.org/u/darius)\
**Post date:** [March 18, 2016, 6:00pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/13 "2016-03-18T18:00:47Z")

</div>

Thanks, @r0bby, for raising this issue in a constructive way. It’s a valid question, and the situation is quite complicated.

Today, significant groups in the OpenMRS community are committed to Angular 1.x (e.g. Bahmni, PIH, and AMPATH) because it was basically the “best” javascript framework available ~3 years ago, when decisions where being made.

If we were starting from scratch today, we probably wouldn’t choose Angular 1.x, but we’re not in a green field situation. But it’s still a quite good technology, and it’s not limiting us today, so there is no burning need to move away from it preemptively.

Note that as a community we don’t have the resources to migrate our entire codebase to some other javascript framework. At the same time no web framework that was best of breed 5 years ago is still best of breed today, and the same pattern will hold true 5 years from now. So we _do_ need to keep our tech stack evolving.

There a couple of things we are doing today that help us mitigate risks:

1. The reference application is built out of independent parts, and it’s not a single monolith.

- Today Rafal is leading a sprint to build concept management screens as an OWA, that uses Angular 1.x.
- Suppose that a year from now we build a new set of patient summary screens in React or Ember…we won’t have to rewrite the concept management screens to do this.
  - I’d further note that usage of AngularJS in the reference application is actually quite limited. E.g. the patient summary and visit dashboard screens don’t use it.

1. Doubling down on REST and HTML(5).
2. Pascal is starting to look at a framework-independent javascript library. I.e. [this thread](https://talk.openmrs.org/t/openmrs-js-javascript-api-wrapper/5355).

So, to your specific question of

> What happens if Google halts support for Angular 1.x

…my answer is that we’ll deal with the specifics of this when (not if) it actually happens. But for now I would focus our efforts on the risk mitigation efforts above, rather than worrying about the exact upgrade path to Angular 2.x, which is still only in beta. (Thousands of people will be facing this in the coming years, including groups that are better-resourced and more dependent on Angular than we are. We don’t have to be the trailblazers on this particular issue.)

---

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [March 18, 2016, 11:57pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/14 "2016-03-18T23:57:38Z")

</div>

Well said @darius ❤

---

<div class="post-metadata">

**Author:** ![kristopherschmidt](https://talk.openmrs.org/user_avatar/talk.openmrs.org/kristopherschmidt/32/888_2.png) [@kristopherschmidt](https://talk.openmrs.org/u/kristopherschmidt)\
**Post date:** [March 19, 2016, 11:05am UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/15 "2016-03-19T11:05:40Z")

</div>

I think another important risk-mitigation step will be ensuring that whatever is written is done so in a component-oriented as opposed to controller-oriented design. It might be worth investigating/incorporating things like [https://github.com/ngUpgraders/ng-forward](https://github.com/ngUpgraders/ng-forward). Even if not going that far toward Angular 2, practices like this: [http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html](http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html) (which gave me a real a-ha moment when I first read it) would make a smoother transition into any future technology. This, along with a ‘Smart Component / Dumb Component’ architecture feels very close to React, for instance.

---

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [March 19, 2016, 12:04pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/16 "2016-03-19T12:04:36Z")

</div>

> [@kristopherschmidt](#):
>
> I think another important risk-mitigation step will be ensuring that whatever is written is done so in a component-oriented as opposed to controller-oriented design. It might be worth investigating/incorporating things like [GitHub - ngUpgraders/ng-forward: The default solution for those that want to write Angular 2.x style code in Angular 1.x](https://github.com/ngUpgraders/ng-forward). Even if not going that far toward Angular 2, practices like this: [Refactoring Angular Apps to Component Style](http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html) (which gave me a real a-ha moment when I first read it) would make a smoother transition into any future technology. This, along with a ‘Smart Component / Dumb Component’ architecture feels very close to React, for instance.

☝ – I feel strongly about this.

---

<div class="post-metadata">

**Author:** ![burke](https://talk.openmrs.org/user_avatar/talk.openmrs.org/burke/32/17_2.png) [@burke](https://talk.openmrs.org/u/burke)\
**Post date:** [May 12, 2016, 4:27pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/17 "2016-05-12T16:27:31Z")

</div>

> [@kristopherschmidt](#):
>
> Even if not going that far toward Angular 2, practices like this: [Refactoring Angular Apps to Component Style](http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html) (which gave me a real a-ha moment when I first read it) would make a smoother transition into any future technology.

Really like [that article](http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html) for any Angular 1.x dev. Thanks for the link! 👍

[https://twitter.com/ekrub/status/730796125712588800](https://twitter.com/ekrub/status/730796125712588800)

---

<div class="post-metadata">

**Author:** ![sunbiz](https://talk.openmrs.org/user_avatar/talk.openmrs.org/sunbiz/32/520_2.png) [@sunbiz](https://talk.openmrs.org/u/sunbiz)\
**Post date:** [May 12, 2016, 6:35pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/18 "2016-05-12T18:35:38Z")

</div>

I am so glad @burke, our Chief Architect agrees that we need to be doing components!!

---

<div class="post-metadata">

**Author:** ![burke](https://talk.openmrs.org/user_avatar/talk.openmrs.org/burke/32/17_2.png) [@burke](https://talk.openmrs.org/u/burke)\
**Post date:** [May 12, 2016, 9:05pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/19 "2016-05-12T21:05:19Z")

</div>

> [@sunbiz](#):
>
> I am so glad @burke, our Chief Architect agrees that we need to be doing components!!

I’ve tasted scope soup. Yuck! 🍲 🤕

---

<div class="post-metadata">

**Author:** ![r0bby](https://talk.openmrs.org/user_avatar/talk.openmrs.org/r0bby/32/6479_2.png) [@r0bby](https://talk.openmrs.org/u/r0bby)\
**Post date:** [May 12, 2016, 10:35pm UTC](https://talk.openmrs.org/t/what-happens-if-google-halts-support-for-angular-1-x/5379/20 "2016-05-12T22:35:03Z")

</div>

So happy to see :burke: is onboard – I want this community to thrive and I don’t want our code to become outdated!
