In my foolish, not-too-distant past, I have taken pride in being a javascript purist. In an effort to keep my sites as lightweight as possible, I avoided front-end frameworks and libraries like the plague. After all, any semi-capable JS developer should be able to write their own tools. Or so I thought.

Over the past several months I have been diving into Angular and have begun to realize the folly of my ways.

Any semi-capable JS developer should be able to write their own tools

I almost hate to say it, but I love working in Angular. It is so incredibly powerful. While forcing myself to use only vanilla javascript in the past has given me a firm grasp on the fundementals of the language, it left me trying to reinvent the wheel every time I wanted to do something new. Once I gained the humilty to admit to myself that my solution would not be as elegant or robust as a solution created by Google's top web developers, I began to tinker with their framework. And it's fabulous. I wish I could go back in time and slap some sense into my former self.

The way Angular handles it's object bindings feels like magic. It just works! Typescript solves many of the irritations I had with javascript, and type-checking enforces some much need structure. The way each component limits the scope of their styles leads to a much more maintainable pattern that I greatly prefer.

It just works!

At work I am spearheading an effort to redo the front end of one of our applications. While we are not yet in a position where we can implement an Angular powered front end, I am advocating to make the swap, and we as a company are slowly moving in that direction. In the meantime, I am attempting to implement similar patterns so that eventual switch goes smoothly

So in the space of a couple months, I have gone from avoiding anything other than vanilla js to wanting to use Angular for everything. It's that fantastic. It's my newest hammer, and everything is starting to look like a nail.

BTW, I'm working on a new side project (spoiler: it's a custom CMS), and you better believe it has an Angular front end.