Learning Angular

I’ve been looking to build a new website, which pending a name I’ll just call the Beer Project. In considering how to build it, I wanted something really simple, preferably something I’ve had a bit of experience with.

The first option was web2py. I really like the ideology of the platform, and spent a couple weekends trying to get it running on my webhosting provider. Having failed at that, I setup a nice system with port forwarding, etc., that I could code with at home, figuring if it ever went live I could just host with Amazon’s AWS or Google’s App Engine. When I sat down to start digging into some web2py code, I kept running into the “where to begin” mental roadblock.

After considering it further, the annoyance of web2py not running on my webhosting provider became too much, so I decided to flip over to CakePHP. I quickly setup CakePHP on my provider, added the debugging modules, etc. that it recommends, and felt I was off to a good start, so I focused on database design for awhile.

Then, I did something stupid. I was reading Hacker News one day, and decided it was time to figure out what all the fuss was regarding Backbone, Ember, CanJS and Angular.

WOW. Client-side MVC! I’ve been a huge fan of jquery for the past three years, and this concept sounded better. After reading about them, I tried to determine which was popular, and which looked like it’d be something I could invest in. CanJS seemed the most promising at the start, but the example code didn’t seem for me. Backbone and Ember sounded too low-level for me, which left me with Angular. Apparently it’s done by Google (actually, founded by a Google employee and another guy, now continually maintained by the same Google employee and a couple other googlers).

So I start reading over the docs, and I just end up feeling stupid. Over a decade of code experience, and I just can’t get my head wrapped around it. Enter today. I see this article:

Diving into AngularJS

His second paragraph struck a real nerve with me:

Initially I downloaded the Angular source and launched into trying to build something simple with it but I found this a really frustrating experience. I consider myself a pretty competent JS developer but nothing really worked and the concepts didn’t click. Making me feel stupid is a quick way to turn me off of something.

After watching the same tutorial he watched, coupled with the Wine Cellar angular app–which uses the Slim Framework to provide REST web services, I’m now pretty damn excited to kickstart the Beer Project.