Evan Schultz

**This post currently reflects an earlier version of Angular, and may not be up to date or reflect the current release. ** Angular 2 has greatly simplified services since Angular 1 . In Angular 1, there was a service, factory, provider, delegate, value, constant, etc. and it wasn't always clear when to use which.

Even though this post was written in 2016 the concepts still hold. In that time the reselect library has had several new releases, be sure to read their updated API's here.

If you're using Angular 1.x and you're interested in Redux this post is still quite relevant today, just make sure to check out the latest documentation.

I have been a fan of JavaScript for a number of years now. It's a dynamic and flexible language which gives it a great deal of power. However, unlike compiled languages it is easy for syntax errors and accidental globals to creep into your code without realizing it until you actually try and run the code.
