So I took my first dive into Google's AngularJS. Now to prefix this entire review, I am a major fan of jQuery, they have made my life a million times easier when dealing with javascript, ajax, and json. I have built some crazy things in jQuery (see my block code in projects). On top of that, I am all but married to my DRY backend frameworks suchas Django or Ruby on Rails. So it was with some serious reservations and doubts I approached my first AngularJS project.

A little background on the project. The project was first and foremost a data reformatter. The part that was tricky was the incoming data was never in the same format, and the output depended on a long set of rules that were unique to each file. In this particular case we were outputting files to XML based on the values of certain fields. We had a developer working on a solutions using C#.NET with MVC, but it was a new framework and language for him and he was met with nothing but problems. So much so that he ended up doing most of the files by hand or using FoxPro.

I took a look at the problem and mapped it out on a whiteboard in about an hour. I wrote out my models and main functions by hand, then slowly connected the dots until I had a front to back Solution. At that point I was ready to dive into django, when I paused for a second to consider if there were better ways of doing it. That is when I decided to take a crack at AngularJS.

At first I was thoroughly confused. It claimed to be a MVC framework, but didnt require the separation of models or controllers. The templating system reminded me a lot of django's Jinja2, but it was much more closely tied to HTML5. It took a while to figure out the tied the scope of the functions and variables to the actual tags themselves, which I have to admit was clever. The documentation was scarse beyond the basic tutorials, but there was enough interest on stackoverflow to find what I was looking for after figuring out what the correct question was.

It wasnt until after I started understanding and refractoring the code that I began to see the whole concept of SPA (single page applications) and the power of angular. By the time I was done, a mere 10 hours later, I had a complete product, that responded instantly, processing data as i typed or filled out forms. And the entire thing was less than 220 lines of code in 2 files.

I was floored.

Here was a project, albeit relatively small, but it was as readable as HTML and it was functioning better than if I had written an entire library in jQuery to handle it.

If you are a web developer of any kind, I highly recommend at least giving AngularJS an indepth try. It will be mentally challenging at first, but I think it will be well worth it. I have already began to look for ways to integrate this into my django and rails projects, as well as seeing if it can replace all my jQuery needs.