Why are there so many packages that do the same thing?


I’m completely new at all things Ionic. I’m curious as to why there are so many packages with different names that seem to do that same thing. For example, on the matter of receiving Push Notifications we have:
Ionic Push

Now you might say “Mike this is a new platform and everyone’s doing their own thing” but in the case of all 4 of these frameworks:

  • Ionic Push, in its own tutorial, tells you to install phonegap-plugin-push, and it seems like all Ionic Push does is add its own syntactic sugar that is not totally necessary
  • $cordovaPush, in the above link, both references Ionic Push and the now deprecated PushPlugin, which is now phonegap-plugin-push
  • PushPlugin appears to be what is now phonegap-plugin-push, but many old tutorials and stack overflow questions still reference the old PushPlugin and its syntax

When I look for tutorials and questions about Push Notifications I get Google results for all 4 of these despite the fact that they are NOT interchangeable when it comes to troubleshooting.

I’m a little boggled as to why there so much confusion and fragmentation in what should be a single component. And it would be one thing if these were all independently created, but it looks like they are all close enough to not be unique, yet different enough to not be interchangeable. Are people just not updating documentation?

I’m new, so maybe I’m missing something obvious. Is there a definite one package that I should use? And where can I find comprehensive fully developed documentation on said package? One package where everyone agrees that this is the one I definitely need to use?

Sorry if this seems obvious to those of you who are experienced, but for a newbie like me, I just don’t understand what’s going on.